← все кейсы · Fitness Home & Away

Видео-тренировки для восстановления — по подписке.

Fitness Home & Away — мобильное приложение реабилитационных тренировок: курсы упражнений на восстановление и снятие боли, которые можно делать дома с подручным реквизитом. Каждое упражнение — это видео с разбором; курсы регулярно обновляются, а полный доступ открывается по подписке с автопродлением. Видео хранятся на Vimeo, подписки идут через сторы и RevenueCat, а контент-команда добавляет новые курсы через отдельную веб-админку — без участия разработчиков.

фитнес · реабилитация стек · Flutter + Firebase релиз · iOS + Android

01 · Идея и задача

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

Задача: сделать приложение с библиотекой видео-курсов, удобным плеером, подпиской с автопродлением через App Store и Google Play и регулярным обновлением контента. Важное условие — контент-команда должна добавлять и менять курсы и видео сама, через отдельную админку, без релизов и без участия разработчиков.

02 · Что было сложно

  • Подписка сразу в двух сторах. Покупки идут через App Store и Google Play, а права на контент нужно сверять одинаково на обеих платформах и восстанавливать при переустановке. Чтобы не сводить это вручную, статусы подписок собраны через RevenueCat поверх нативного биллинга — приложение спрашивает «есть ли активный доступ», а не разбирается в чеках каждой платформы.
  • Видео без своего видеосервера. Курсы — это десятки роликов, которые нужно надёжно отдавать и проигрывать, в том числе на слабой сети и в полноэкранном режиме с поворотом. Решение — хранить и стримить видео на Vimeo, а в приложении встроить плеер с управлением и фуллскрином. Не пришлось поднимать и обслуживать собственное видеохранилище.
  • Гейтинг контента. Часть материалов открыта, полный доступ — по подписке. Нужно было аккуратно закрыть платный контент, корректно показывать экран оформления и «Restore purchase», не давая обойти оплату, и при этом не раздражать пользователя на каждом шаге.
  • Контент меняется без релизов. Список курсов, описания, привязка видео и обложек живут в Firebase и пополняются через отдельную веб-админку. Контент-команда добавляет новый курс — он сразу появляется в приложении у всех, без новой сборки и публикации в сторах.
  • Уведомления и удержание. Push-уведомления через Firebase Cloud Messaging возвращают к занятиям и сообщают о новых курсах — важный механизм удержания для подписочного продукта.

Подписка в двух сторах, видео на Vimeo и контент, который меняется без релизов через веб-админку, — три решения, которые держат подписочный видео-продукт дешёвым в поддержке.

03 · Как устроено приложение

Курсы и видео

На главном экране — список курсов: разминка, «основа» тренировки и программы с разным реквизитом. Каждый курс раскрывается в набор упражнений, а каждое упражнение — это видео с коротким описанием и навигацией «предыдущее / следующее». Плеер умеет полноэкранный режим с поворотом, видео подгружается с Vimeo.

Экран упражнения: видеоплеер с разбором, навигация по упражнениям
Экран упражнения: видео с разбором, кнопки перехода между упражнениями и краткое пояснение — ролики стримятся с Vimeo, плеер поддерживает полноэкранный режим

Подписка

Полный доступ к курсам открывается по подписке с автопродлением. На экране оформления — тарифы, понятные условия автопродления, ссылки на политику и условия, кнопка восстановления покупок. Платёж проходит через App Store или Google Play, а активный доступ приложение проверяет через RevenueCat.

Экран оформления подписки с тарифами и автопродлением
Экран подписки: тарифы, условия автопродления, восстановление покупок — биллинг идёт через сторы, а права на контент сверяются через RevenueCat

04 · Результат

Контент Видео-курсыупражнения с разбором
Монетизация ПодпискаApp Store + Google Play · RevenueCat
Управление Веб-админкакурсы меняются без релизов
Платформы iOS + Androidодна Flutter-база

Получилось законченное подписочное приложение: онбординг, библиотека видео-курсов, плеер с полноэкранным режимом, оформление и восстановление подписки, push-уведомления. Сборки идут под iOS и Android из общей Flutter-кодовой базы, а контент-команда управляет курсами через отдельную веб-админку на Firebase.

Архитектурно продукт собран на управляемых сервисах: Firebase — данные о курсах, пользователи и уведомления, Vimeo — хранение и стриминг видео, RevenueCat поверх App Store и Google Play — подписки и права доступа. Своего сервера и видеохранилища нет, поэтому продукт дёшев в поддержке, а новый контент появляется без релизов в сторах.

05 · Что дальше

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

Связка Flutter + Firebase + Vimeo + RevenueCat — типовой и проверенный фундамент для подписочных контентных приложений: его легко масштабировать на новые курсы, языки и платформы, не переписывая ядро.

Похожий проект

Нужно видео-приложение с подпиской?

Курсы, тренировки, обучающие видео с подпиской и админкой для контента — на Flutter, Firebase, Vimeo и RevenueCat это собирается быстро и недорого в поддержке, без своего сервера и видеохранилища. В первом письме приложите ссылку на этот кейс и опишите свою идею — пришлём разбор с архитектурой и сметой в течение 24 часов.