Розробка мобільного додатку для фітнес-тренера (персональні тренування)
Персональний тренер з 20+ клієнтами втрачає години на переписку: «яку вправу робити?», «я не пам'ятаю програму», «давай перенесемо тренування». Додаток закриває цей канал та дає тренеру інструмент продажу онлайн-програм без фізичної присутності.
Тренувальний план — найнетривіальніша частина
Конструктор тренувань — це не просто список вправ. Потрібна гнучка структура даних:
Program → Week → Day → Workout → Exercise Set
├── sets: int
├── reps: String // "8-12" або "до відмови"
├── weight: double?
├── rest: Duration
└── video_url: String?
Тренер створює шаблон програми, призначає клієнту, клієнт бачить свою версію. Прогресія навантаження (додати 2.5 кг до наступної тренування) — або ручна корекція тренером, або автоматична за правилом (якщо виконано всі підходи з запасом — збільшити). Зберігання: drift (SQLite через Dart) для офлайн-доступу до програми без інтернету в залі.
Таймер відпочинку між підходами — критична функція для утримання. Реалізація через flutter_local_notifications з androidAllowWhileIdle: true — інакше на Android 12+ таймер не спрацює, коли телефон у кишені.
Інтеграція з HealthKit та Google Fit
Клієнти хочуть бачити свої кроки, ЧСС та спалені калорії. На iOS — HealthKit через health пакет Flutter. На Android — Health Connect (новий API, замінив Google Fit з 2023 року). Запит дозволів повинен бути контекстним: не при запуску додатку, а коли користувач заходить у розділ «прогрес». App Store відхиляє додатки, що запитують HealthKit без чіткого пояснення цілі.
Монетизація для тренера
Два сценарії: B2C white-label (тренер платить підписку, отримує своє брендоване додаток) або маркетплейс тренерів. White-label проще технічно — один Flutter-проект, конфігурація через flavor та dart-define. Маркетплейс вимагає мультирендності, платіжного сплиту (тренер отримує 70%, платформа — 30%) через Stripe Connect.
Продажа програм тренувань: якщо продається «цифровий контент» через App Store — потрібен In-App Purchase (Apple забирає 30%). Якщо клієнт платить через сайт і лише переглядає в додатку — IAP не потрібен. Важливе архітектурне рішення на старті.
Стек та ключові компоненти
Flutter + Riverpod + drift. Відео вправ — Cloudflare Stream або Vimeo Private (не YouTube, тому що реклама конкурентів). Чат тренер-клієнт — Firebase Realtime Database. Аналітика прогресу (графіки ваги, обсягу навантаження) — fl_chart пакет. Push-напоминання про тренування — FCM + серверний scheduler (Laravel Scheduler або cron).
Часова шкала
MVP (програми, дневник тренувань, чат, розписання): 9–13 тижнів. З відео-вправами, HealthKit, продажею програм, аналітикою: 16–22 тижні. Вартість розраховується індивідуально після аналізу моделі монетизації.







