Розробка мобільного застосунку для коучингу
Уявіть: коуч витрачає 20% часу на ручне узгодження часу з клієнтами через месенджери. Кожна сесія — листування, нагадування, перенесення. Клієнти забувають оплатити, а коуч втрачає дохід. Коучинговий застосунок вирішує ці проблеми автоматизацією: бронювання, оплата, щоденник, трекер звичок — усе в одному місці. Але реалізація складніша, ніж здається: потрібно врахувати безпеку даних, часові пояси, гнучкі сценарії оплати. Ми розробили десятки коучингових застосунків за 5+ років і знаємо, як уникнути типових помилок. У цій статті розберемо ключові модулі: від колеса балансу до push-сповіщень. Покажемо, як реалізувати гнучке бронювання з урахуванням тайм-зон, і чому Stripe часто вигідніше вбудованих покупок Apple — економія на комісіях досягає 27%.
Бронювання сесій: гнучкий редактор доступності
Інтеграція з Calendly або власний booking flow. Власна реалізація — time_slots таблиця, аналогічно менторингу. Різниця: коучі часто працюють за строгим розкладом (наприклад, лише по вівторках 10:00–18:00), і потрібен гнучкий редактор доступності.
Редактор доступності коуча — шаблон по днях тижня + виключення. RecurringSchedule модель: dayOfWeek, startTime, endTime. Виключення (відпустка, свята) — blocked_dates. При бронюванні — обчислюємо доступні слоти на найближчі N тижнів з урахуванням зайнятих і заблокованих.
Часові пояси — обов'язково. Коуч у Москві, клієнт у Лондоні. Усі слоти зберігаються в UTC, конвертуються в локальний час на клієнті. TimeZone.current (iOS) / ZoneId.systemDefault() (Android) для визначення зони пристрою. DateComponentsFormatter для людиночитаного відображення "через 2 години".
Вибір між Calendly і власною розробкою: Calendly дає швидкий старт і готовий UI, але обмежує кастомізацію та вимагає оплати API. Власний booking flow потребує 1–2 тижнів розробки backend, але дає повний контроль над дизайном і логікою — наприклад, можна додати кастомні правила доступності або інтеграцію з CRM. Для проектів з унікальними вимогами другий варіант окупається гнучкістю.
Інструменти коучингу в застосунку
Колесо балансу — кругова діаграма по 8–12 сферах життя (кар'єра, здоров'я, стосунки, фінанси тощо). Клієнт оцінює кожну сферу за шкалою 1–10. Малюємо через Core Graphics / Canvas в Compose: UIBezierPath для секторів на iOS, Path в Compose на Android. Анімація при зміні оцінок — withAnimation (SwiftUI) / animateFloatAsState (Compose).
Історія коліс балансу — показуємо зміни за місяць/квартал. Два накладені колеса (поточне і минуле) — прозорість через UIColor.withAlphaComponent().
Щоденник прогресу — щоденні/щотижневі записи клієнта. Markdown або rich text через UITextView з кастомним тулбаром для жирного/курсиву. Зберігаємо локально (Core Data / Room) + синхронізація з сервером. Коуч бачить записи лише якщо клієнт явно поділився — через toggle в налаштуваннях.
Рефлексивні запитання — коуч створює шаблони запитань для домашніх завдань. Клієнт відповідає в застосунку. Запитання + форматований текстовий відповідь + можливість прикріпити голосову нотатку (через AVAudioRecorder).
Трекер звичок — простий чеклист звичок на день. UITableView з UISwitch або Compose Checkbox. Streak — серія днів поспіль, мотивуючий елемент. Calendar.current.dateComponents([.day], from:to:) для підрахунку стріка.
Як реалізувати безпечне зберігання згоди на запис сесії?
Відеосесія — вбудована (100ms, Daily.co) або зовнішнє посилання. Після сесії — поле для конспекту від коуча (основні інсайти, наступні кроки). Клієнт отримує сповіщення, що конспект додано.
Аудіозапис сесії (з згоди клієнта) — AVCaptureSession з AVCaptureAudioDataOutput. Записуємо в M4A, завантажуємо на сервер. Зберігання згоди на запис — окремий consent флаг з timestamp у базі.
Транскрипція аудіо — SFSpeechRecognizer (iOS, offline на пристрої для підтримуваних мов) або OpenAI Whisper API через сервер для точності та багатомовності.
Чому для коучингових застосунків частіше обирають Stripe, а не App Store?
Stripe PaymentSheet для одноразових сесій і Stripe Billing для пакетів. iOS App Store підписки (StoreKit 2) тільки якщо коучинг продається як "контент всередині застосунку" — але більшість коучингових застосунків працюють через Stripe (веб-форма оплати) без IAP. Пакет 10 сесій — Product з type: .nonConsumable у StoreKit (використано 1 раз, не відновлюється при видаленні застосунку). Або пакет як підписка з обмеженим терміном використання.
Порівняння підходів до платежів:
| Аспект | Stripe (зовнішні платежі) | App Store / Google Play (IAP) |
|---|---|---|
| Комісія | ~2.9% + $0.30 | 15–30% на дохід до $1M |
| Гнучкість | Повний контроль над продуктами | Обмежені типи підписок |
| Звітність | Інтеграція з будь-якою бухгалтерією | Тільки звіти Apple/Google |
| Користувацький досвід | Веб-форма, перемикання контексту | Безшовно всередині застосунку |
Stripe обходиться дешевше в 5–10 разів при типових обсягах продажів сесій.
Що входить у роботу
- Технічне завдання та прототип UI/UX
- Розробка backend (REST/GraphQL) + клієнт (iOS/Android)
- Інтеграція платежів (Stripe / StoreKit)
- Публікація в App Store і Google Play
- Документація по API та адмініструванню (Swift Package Manager для залежностей, Fastlane для CI/CD)
- Передача доступів і навчання команди
- Гарантійна підтримка 3 місяці
Процес та терміни
| Етап | MVP | Повний функціонал |
|---|---|---|
| Бронювання + профілі + відеосесії + push | 5–7 тижнів | 2–3 місяці |
| Колесо балансу + щоденник + звички + рефлексія + підписки | — | 2–3 місяці |
Вартість розраховується після аналізу вимог. Зв'яжіться з нами для оцінки вашого проекту — ми підберемо оптимальне рішення під ключ. Отримайте консультацію з архітектури вашого застосунку — розповімо, як уникнути типових помилок при виборі стека.







