Прототип · клиентская часть и экран тренера

Тренировка по шагам

Рабочий прототип мобильного приложения вместо Google-таблицы. Экраны можно пройти пальцем: клиент открывает ссылку, ставит иконку, идёт по упражнениям, вводит вес и повторы, завершает тренировку и загружает видео отмеченных упражнений. Цифры и упражнения — пример заполнения, не данные клиента.

Вход по ссылке-токену Работает без интернета Обратная связь внутри приложения
19:42LTE

Экран сборки программы

Сетка ведёт себя как таблица: стрелки и Tab двигают по ячейкам, ввод идёт без входа в режим правки, Enter опускает на строку ниже. Скопированный из Google Таблиц блок вставляется целиком — приложение разбирает буфер и раскладывает по полям. Цвет заголовка повторяет ваш код из таблицы: тёмное заполняете Вы, янтарное — клиент.

Упражнение Подходы / повторения Запас RIR Отдых Рекомендации Вес, кг Сделано
1Велотренажёр, разминка8 мин0Пульс до разговорного темпа
2Вертикальная тяга нейтральным хватом4 по 12390 секЛокти вниз к карманам, корпус не раскачивать32,512
23511
3Горизонтальная тяга с упором грудью4 по 12290 секВИДЕО последнего подхода27,512
13010
4Жим гантелей лёжа под углом 30°4 по 1022 минОпускать до касания груди, без отбива
Заполняете Вы Заполняет клиент Запас RIR ставится отдельно на каждый подход

Вставка из Google Таблиц

Копируете блок в таблице, жмёте вставить в сетке. Приложение читает буфер, показывает предпросмотр «что куда встанет» и применяет. Работает и на весь день целиком, и на одну колонку.

«4 по 15» одной строкой

Пишете задание один раз в своей привычной записи — приложение разворачивает четыре строки подходов. Понимает «4х15», «4*15» и «3–4 по 12–15».

Новый цикл из прошлого

Одна кнопка вместо копии файла: берётся предыдущий цикл клиента со всеми ссылками и рекомендациями, дальше правите то, что меняется.

Упражнения помнятся

Приложение запоминает названия, которые Вы уже вводили, и предлагает их по первым буквам вместе с ранее вставленной ссылкой на видео. Клиент этот список не видит никогда.

Экран разбора тренировки

Видео играет прямо здесь, рядом с цифрами того подхода, на котором оно снято. Ничего не скачивается и не сопоставляется вручную: ролик пришёл из конкретного упражнения и к нему привязан. Файл идёт из хранилища в браузер напрямую, мимо сервера.

Входящие · 4
Ольга К.2 видео Тренировка 3 из 12 · сегодня 20:14
Артём М.без видео Тренировка 7 из 12 · сегодня 19:02
Ирина С.1 видео Тренировка 1 из 12 · вчера 21:40
Павел Д.видео позже Тренировка 5 из 12 · вчера 18:25

Ольга К. · Тренировка 3 из 12

9 сентября · 1 ч 12 мин · 28 подходов
0:09 / 0:34 7,4 МБ

3. Горизонтальная тяга с упором грудью

4 по 12 · отдых 90 сек
Запас RIRВес, кгСделано
1227,512
213010
313010
41309
Клиент: «На третьем подходе поясница включилась, дальше держала легче вес»

4. Жим гантелей лёжа под углом 30°

4 по 10 · видео приложено
Запас RIRВес, кгСделано
121810
222010
32208
42208

Общий итог тренировки

Остальные 7 упражнений без замечаний — можно не заполнять

Очередь, а не поиск

Тренировки приходят списком в порядке завершения. Пометка сразу говорит, есть ли видео и стоит ли ждать — «видео позже» значит, что клиент отложил загрузку.

Замедление и повтор

Четверть скорости и проигрывание по кругу включены сразу: при разборе техники ролик смотрится два-три раза, и каждый раз включать это заново — потерянные секунды на каждой тренировке.

Пустое поле — это ответ

Заполнять обратную связь под каждым упражнением не нужно. Незаполненное поле означает «без замечаний», и клиент видит именно это, а не пустоту.

Нагрузка на сервер

Видео идёт из хранилища в браузер напрямую. Сервер выдаёт только подписанную ссылку на час — это расчёт в памяти, без обращения к хранилищу и без трафика.