SuperPower (ex. WorkoutMe)
Фитнес-приложение с тренировками на 1–5 минут дома и без инвентаря.

Экраны SuperPower из App Store: тренировки, профиль и отчёты о прогрессе.
Январь — февраль 2022 · React Native frontend
Моя роль
С нуля собрал экран прогресса: профиль, карусель отчётов, календарь, график недели, серию тренировок, активность друзей и галерею дудлов. Для нового экрана добавил TypeScript, алиасы путей, типографику и общие миксины в существующую JavaScript-кодовую базу.
- Экран прогресса
- Календарь занятий, серия тренировок и график активности
- Данные и состояние
- Загрузка отчётов из Firestore
- Тренировки и видео
- Короткие тренировки и видео на устройстве
Задача бизнеса
Аватар и несколько счётчиков не показывали динамику тренировок. Итоги пользователя, данные месяца и срез недели хранились в разных документах Firestore — их требовалось собрать в понятный экран, учитывая слабые Android-устройства.
Экран прогресса
Календарь и статистика тренировок
В шапке профиля — аватар и город. Календарь показывает дни занятий, график — активность за неделю, счётчики — число дней подряд и общее количество тренировок.


Отчёты в карусели
Месячные отчёты перелистываются карточками. Они рендерятся по мере просмотра, а не всей историей сразу.
Активность друзей и галерея дудлов
Экран дополняют активность друзей и галерея воркаут-дудлов автора. Платные отчёты имеют отдельные заглушки SuperPower.
Данные и состояние
Независимая загрузка блоков экрана
Итоги пользователя, документ месяца и последние семь дней читаются независимо из Cloud Firestore. Экран может показывать готовые блоки, не дожидаясь всех отчётов.
Профиль
Аватар и город пользователя.
Итоги
Серия и общее число тренировок.
Месяц
Документ для календаря и отчёта.
Неделя
Отдельный срез для графика последних дней.
Инженерные детали
Типизация нового экрана
Экран написан на TypeScript в проекте на JavaScript. Для него добавил алиасы путей, типографику и общие миксины стилей, которые затем использовала команда.
Состояние и доступ
Приложение использует Redux и React Navigation. Доступ к платным отчётам связан с подпиской SuperPower через RevenueCat.
Тренировки и видео
Тренировки на 1–5 минут
В SuperPower можно тренироваться без инвентаря по 1–5 минут. После занятия результат попадает в отчёты на экране прогресса.




Инженерные детали
Видео на устройстве
Приложение загружает архив видео с CDN и распаковывает его на устройстве. Во время тренировки видео воспроизводится локально. Загрузка отслеживается через Firebase Performance.
Сборки и обновления приложения
В существующем проекте сборки настроены через Fastlane и GitHub Actions, небольшие обновления — через CodePush.
Результат
Профиль и отчёты о тренировках
Разработал экран прогресса: профиль, календарь, график активности за неделю, серию тренировок и активность друзей. Добавил TypeScript и общие стили для нового экрана в существующее приложение.
- 4,6
- средняя оценка в App Store при 559 отзывах
- 350+
- упражнений с видео в каталоге приложения
Стек
- React Native
- TypeScript
- Redux
- React Navigation
- Firebase
- Cloud Firestore
- RevenueCat
- CodePush
- HealthKit
- Fastlane