Gym Bro
Трекер силовых тренировок для iPhone, где подход записывается в одно нажатие, а подруга видит, ходишь ли ты в зал.
Pet-проектMobile
Коротко
О проекте
Gym Bro я делаю для себя. Я хожу в зал и записываю тренировки в заметки и таблицы на айфоне. Таблицы лагают, а чтобы увидеть прогресс, приходится листать десятки строк.
Готовые приложения мне не подошли. Одни перегружены, другие недоделаны, и почти все продают программы тренировок. А программы я составляю себе сама. Мне нужно одно: быстро записать подход и потом найти, что было в прошлый раз.
Ещё я хожу в зал с подругой. Я ей не тренер, просто хочу видеть, сколько раз в неделю она ходит, пнуть, если пропала, и порадоваться, если всё сделала. Такой функции я не встречала ни в одном спортивном приложении, и мне захотелось её сделать.
Контекст
Пользоваться приложением будут прямо в зале, между подходами. Руки заняты, отдых длится минуту, телефон приходится доставать на секунды. Любое лишнее действие в такой момент раздражает.
Задача
Спроектировать мобильное приложение, которое:
- записывает подход быстрее, чем заметки в айфоне;
- работает в подвальном зале без интернета;
- добавляет напарника так, чтобы он мотивировал и не превращал трекер в соцсеть;
- укладывается в ограничения PWA на iOS, потому что разрабатывать его буду я одна с помощью ИИ.
Что сделала
- Разобрала ограничения PWA на iPhone и перестроила под них порядок экранов и вход
- Спроектировала запись подхода в одно нажатие с подстановкой прошлого результата
- Придумала механику напарника из трёх слоёв: видимость, реакции, пинок
- Сформулировала правило пинка, которое опирается на цифры недели
- Собрала визуальный стиль: лаймовый акцент только для действий, пиксельный шрифт в шапках, персонажи в стилистике PS1
- Собрала компонентную базу и прототип
- Вела PRD и план разработки так, чтобы по ним можно было собирать приложение с ИИ
Роль и сроки
Всё сама: продукт, проектирование, визуальный дизайн, документы. Персонажей генерировала в ChatGPT по своим референсам и правилам стиля. В Figma и с документами работала в паре с ИИ-агентом: решения принимала я, а агент помогал с рутиной по компонентам, проверкой связей и отступов. Код тоже пишу с ИИ, план разработки разбит на шаги под это.
С сентября 2026 года, работа продолжается.
Результат
Дизайн готов, приложение в разработке. Метрик пока нет, приложение ещё не запущено. Как буду проверять результат, описано в конце.

Подробнее о процессе
Как будет устроена тренировка
Я прихожу в зал и нажимаю круглую кнопку «Начать» внизу экрана. Даю тренировке название, выбираю упражнения из справочника или повторяю прошлую тренировку.
Дальше рабочий экран. Упражнения раскрываются по одному, строки подходов уже созданы, а вес и повторы подставлены из прошлого раза. Сделала так же, как в прошлый раз, значит, нажимаю галочку. Сделала больше, значит, меняю число.
В конце итог: длительность, подходы по группам мышц и новые рекорды.
Подруга в это время видит у себя «тренируется сейчас», а потом мою тренировку в списке. На неё можно поставить реакцию.
С чего я начинала
Исследований с пользователями я не проводила. Главный пользователь здесь я сама, и у меня было три наблюдения из собственных тренировок.
Самое частое действие повторяет прошлое. В большинстве подходов вес и повторы такие же, как неделю назад. Значит, ввод должен начинаться с прошлого значения.
В зале нет интернета. Многие залы в подвалах. Приложение, которое ждёт сеть, чтобы сохранить подход, в зале просто не работает.
Вдвоём ходить проще. Когда мы с подругой договорились пойти, пропустить уже неловко. Хотелось, чтобы приложение давало это чувство и в те дни, когда мы тренируемся по отдельности.
Как я сформулировала задачу
Из этих наблюдений получились три задачи проектирования.
Записать подход быстрее, чем открыть заметки. Цель из PRD: подход без изменений записывается одним нажатием и быстрее чем за 2 секунды.
Работать без сети. Всё пишется на телефон, синхронизация идёт сама, когда появляется связь.
Видеть неделю подруги и реагировать на неё. Сколько раз она сходила, когда собирается следующий раз, и кнопка, чтобы поддержать или пнуть. Переписки и ленты нет.
В каких рамках я работала
PWA на iPhone. Приложение ставится с сайта на домашний экран. Это бесплатно и не требует App Store, но у Safari много ограничений, и они сильно повлияли на сценарии. Подробнее в первом ключевом решении.
Один разработчик. Приложение собираю я с помощью ИИ. Поэтому каждая функция в PRD оценена по сложности, а план разработки разбит на шаги, которые можно отдать ИИ по одному.
Что решила не делать в первой версии
В Figma спроектировано всё приложение, включая напарника. А разработка начинается только с ведения тренировки.
Механика напарника стоит около 14,5 дней работы. Если строить её поверх записи, которая ещё не проверена на реальных тренировках, любая ошибка в ядре ломает и напарника. Поэтому первая версия кода только про тренировку, а напарник выйдет следующим этапом.
Ещё я убрала из первой версии:
- Индикатор офлайна. Синхронизация идёт сама, пользователю незачем о ней знать.
- Графики прогресса. Осмысленный график требует хотя бы 8 недель данных.
- Кнопки ±2,5 кг над клавиатурой. Вес уже подставлен, а меняется он не всегда на один шаг.
Таймер отдыха и совместную тренировку в реальном времени я не делаю совсем. Таймер мне не нужен. Общий лог сложно синхронизировать, а паре, которая стоит в одном зале, он ни к чему.
Ключевые решения
1. Платформа диктует порядок экранов
Я начала с привычной схемы: вход, потом главная. Потом разобралась, что умеет PWA на айфоне, и схему пришлось поменять.
Пуши работают только после установки на домашний экран. У вкладки в Safari их нет. А на пушах держатся напоминания и весь напарник. Поэтому установка стала первым экраном: короткая инструкция «Поделиться → На экран Домой» до всего остального.
У Safari и у установленного приложения разные хранилища. Если войти по ссылке из письма, ссылка откроется в Safari, и человек окажется залогинен не в том приложении. Поэтому вход сделан кодом из 6 цифр: его вводишь там, где уже находишься.
Регистрация не стоит на пути к первому подходу. Сначала человек записывает тренировку анонимно, а почту привязывает уже после неё. Цель из PRD: от первого открытия до первого подхода меньше 90 секунд.
2. Подход записывается одним нажатием
Это самый частый сценарий в приложении, и на нём я проверяла каждое решение.
Строки подходов создаются заранее. Вес и повторы подставлены из прошлого раза и набраны серым. Если всё как в прошлый раз, достаточно нажать галочку, и цифры становятся белыми. Если нет, меняю только нужное число.
Клавиатура открывается сразу, когда раскрываешь упражнение. Над ней панель с переходом между полями и «Готово». Кнопки шага веса я убрала: вес уже подставлен, и чаще его вообще не трогают.
Рекорд показывается в итоге. Во время тренировки тост с рекордом перекрывал бы следующий подход, а два рекорда подряд накладывались бы друг на друга. В итоге рекорд виден спокойно, рядом с прошлым значением.
3. Напарник без ленты
Напарник это фича, которую я раньше не встречала в спортивных приложениях. И её легко испортить: стоит добавить комментарии и список активности, и получится маленькая соцсеть, в которую заходят вместо тренировки.
Поэтому механика держится на трёх слоях.
Видимость. Только факты: неделя подруги, её подходы по группам мышц, последние тренировки, статус «тренируется сейчас». Что из этого видно, каждый настраивает сам. Скрытое просто не показывается, без пояснений.
Реакции. Двойной тап по тренировке ставит сердечко, долгое нажатие открывает выбор реакций, как в Telegram. Реакция появляется прямо в строке тренировки. Отдельного списка уведомлений нет, потому что реакция относится к конкретной тренировке.
Пинок. Его нельзя отправить, когда захотелось.
Первая версия правила была такой: кнопка появляется, когда подруга уже не успевает выполнить норму недели. Потом я поняла, что пинок в этот момент бесполезен: неделя потеряна, и пинать каждый день человека, который ничего не может исправить, обидно.
Новое правило: кнопка появляется, когда у подруги не осталось ни одного дня запаса. Дней до конца недели ровно столько, сколько тренировок не хватает. Пропустит сегодня, значит, норму не выполнит.
| Норма 3 в неделю | Сделано | Дней осталось | Кнопка |
|---|---|---|---|
| Среда | 0 | 5 | нет, запас есть |
| Пятница | 0 | 3 | да, последний шанс |
| Суббота | 0 | 2 | нет, уже не успеть |
Плюс не чаще раза в день и не в первую неделю после того, как вы связались.
На такой пинок нечего обижаться: за ним стоят цифры недели.
Чтобы пинок чувствовался. По нажатию в аватар подруги влетает кошачья лапа, а у неё на главной появляется карточка с моим котом и сердитой мордой. Несколько секунд можно отменить, если нажала случайно.
Что убрала. «Я тоже иду сегодня» была расписана полностью. Но кнопка передаёт намерение, а всё остальное в механике опирается на факты. Настоящее действие уже есть на экране: кнопка «Начать». Кто пошёл, тот начал тренировку, и подруга видит «тренируется сейчас».
4. Визуал работает на сценарий
Лайм значит «можно нажать». Яркий лаймовый закреплён за действиями: кнопки, ссылки, круглая «Начать». Состояния вроде выполненного дня набраны приглушённым лаймом. Когда лайм был везде, на главной было пять акцентных пятен, и главное действие терялось.
Круглая «Начать» в центре панели. Это самое частое действие, и до него большой палец дотягивается не глядя. Во время тренировки кнопка меняется на «Продолжить».
Пиксельный шрифт только в шапках. Заголовки вкладок и логотип набраны точечным шрифтом Handjet, он даёт характер. Всё остальное набрано узким гротеском: в зале текст читают на бегу.
Персонажи там, где нужна эмоция. Меня вдохновила инстаграм-история «Зазеркалье» (@zazer.kalye): автор рассказывает её через персонажей в стиле старых игр на PS1. Мне понравилась рисовка, плюс сейчас все ностальгируют по старым временам, а ещё я очень люблю котов. Я взяла стилистику и переделала её под спорт: у меня свои четыре кота с повязками, со своими окрасами, в своём зале.
Коты стоят на установке, на пустой главной, на пустой вкладке напарника, в приглашении и на заставке. Это места, где человек ещё ничего не сделал, и пустой экран без характера выглядит мёртвым. На экранах с данными картинок нет совсем.
Аватар с настроением. Вместо фото можно выбрать кота и одну из шести эмоций: спокойный, довольный, уставший и так далее.
Карта мышц нарисована своим кодом. Здесь я отказалась от генерации. Карта бывает от 24 до 150 пикселей, подсвечивать надо конкретные мышцы, а цвет должен быть точным. Поэтому человек векторный, собран из граней в духе PS1, и каждую мышцу можно подсветить отдельно: основную лаймом, второстепенные приглушённым. Это совпадает с тем, как приложение считает подходы: жим лёжа идёт в грудь целиком и по половине в трицепс и плечи.
Как я работала с ИИ
ИИ был моим инструментом на всех этапах, но решения принимала я.
- Персонажи. Я сгенерировала их в ChatGPT по своим референсам и правилам стиля: один лист персонажей, по нему эмоции и сцены. Каждую картинку проверяла на то, как она читается в реальном размере.
- Figma. Рутину по компонентам, проверку связей прототипа и отступов делал ИИ-агент через плагин.
- Иллюстрации упражнений. Генератор ломал позы, поэтому иллюстрации собраны кодом из тех же граней, что и карта мышц.
- Документы и код. PRD и план ведутся вместе с макетом. План разработки разбит на шаги с готовыми заданиями для ИИ.
Результат
Дизайн готов: экраны, состояния, переходы, компоненты, PRD и план разработки. Приложение в разработке.
Как буду оценивать после запуска
Цели из PRD:
- второй и следующие подходы записываются одним нажатием;
- подход без изменений быстрее 2 секунд;
- от первого открытия до первого подхода меньше 90 секунд;
- ноль потерянных тренировок за 4 недели.
Первый круг пользователей: я, подруга и 5–10 знакомых из зала.
Приложение скоро



