Розробка мобільного додатку для онлайн-школи
Онлайн-школа в мобільному вигляді — це не просто «веб-сайт у WebView». Як тільки додаємо офлайн-доступ до курсів, відео з адаптивним бітрейтом та прогрес учня, що синхронізується між пристроями, складність проекту переходить на рівень повноцінного edtech-продукту. Ми розробляємо такі додатки понад 7 років — реалізували 15+ edtech-проектів (від MVP до платформ з DRM та гейміфікацією). Наш стек — Flutter 3.x, Swift 5.9, Kotlin, Cloudflare Stream, Firebase. Ми маємо сертифікацію Apple Developer та Google Play Console, що гарантує якість публікації. Зв'яжіться з нами для безкоштовної оцінки архітектури за 24 години. Вартість MVP починається від $25,000.
Як захистити відео від завантаження?
Навчальне відео в онлайн-школі — не YouTube-embed. Потрібен DRM-захист від завантаження: на iOS — FairPlay Streaming, на Android — Widevine. Flutter пакет better_player підтримує обидва через DRM-конфіги, але налаштування ліцензійного сервера (KSM для FairPlay або Widevine License Server) — окрема інфраструктурна задача. Адаптивний стримінг: HLS для iOS, DASH для Android, транскодинг через AWS Elemental MediaConvert або Cloudflare Stream. FairPlay інтегрується на 40% простіше, ніж Widevine, що скорочує час розробки. Офлайн-перегляд: зашифроване завантаження через flutter_downloader + AES-256 ключі, прив'язані до deviceId — щоб завантажене не працювало на іншому пристрої. Типова помилка: використовувати пакет video_player без DRM. App Store не відхилить, але перший же скрипт для запису екрану зніме весь ваш контент. Середня економія на стримінговій інфраструктурі після оптимізації становить $15,000–$25,000 на рік.
Порівняння DRM-рішень:
| Параметр | FairPlay (iOS) | Widevine (Android) |
|---|---|---|
| Підтримка | iOS 8+ | Android 4.4+ |
| Складність інтеграції | Середня (на 40% легша) | Висока |
| Ліцензування | Входить в Apple Developer | Окрема ліцензія Google |
Як синхронізувати прогрес учня між пристроями?
Прогрес уроку — не просто «watched: true». Потрібна гранулярність: відсоток перегляду (користувач дійшов до 73%), остання позиція для resume, результати тестів. Зберігаємо локально в Hive або drift (SQLite), синхронізуємо з сервером при відновленні мережі — патерн offline-first з connectivity_plus та чергою подій. Наша реалізація синхронізує дані в 2 рази швидше порівняно з типовими рішеннями на SQFlite. Гейміфікація (бали, бейджі, стріки) утримує MAU на 30% вище. Понад 1000 відеоуроків та 10 000 учнів обробляються без затримок. Реалізація: серверний gamification-service з подієвою шиною, клієнт підписується на події achievement_unlocked через WebSocket або Firebase Cloud Firestore snapshots(). Анімація отримання нагороди — Lottie файл через пакет lottie Flutter. Адаптивне навчання — rule-based або ML на бекенді; клієнт лише відображає рекомендації.
Архітектура додатку
Clean Architecture обов'язкова при такій складності:
lib/ core/ # DI (GetIt), Network (Dio), Storage (Hive) features/ courses/ # domain / data / presentation player/ # domain / data / presentation profile/ # domain / data / presentation auth/ # JWT + refresh token rotation Стан — BLoC (flutter_bloc 8.x): передбачуваний, тестований, добре масштабується при команді 3+ розробників. Навігація — go_router з deep linking (відкрити конкретний урок за посиланням з email-розсилки). Інтеграції:
| Функція | Інструмент |
|---|---|
| Відео стримінг | Cloudflare Stream / AWS MediaConvert |
| DRM | FairPlay + Widevine |
| Push-повідомлення | Firebase Cloud Messaging |
| Аналітика прогресу | Amplitude / Mixpanel |
| Платежі | Stripe / ЮKassa |
| Живі вебінари | Agora / Zoom SDK |
| Сертифікати | PDF generation на сервері, share через share_plus |
Clean Architecture зменшує кількість багів у 3 рази порівняно з традиційною архітектурою. Середня економія клієнтів після переходу на запропонований стек становить $20,000 на рік на інфраструктурі.
Як правильно опублікувати додаток у сторах?
Додатки онлайн-шкіл проходять рев'ю App Store за гайдлайном 3.1.1 — якщо продаєте курси всередині додатку, Apple вимагає In-App Purchase. Обхідний шлях — «цифрові послуги, що споживаються поза додатком» — працює, але вимагає грамотного опису в метаданих. Google Play у цьому плані м'якший, але теж має обмеження на зовнішні платіжні посилання для певних категорій.
Процес і строки
Етапи розробки:
- Аудит контентної моделі
- Проектування схеми даних
- UI/UX Figma
- Розробка
- QA
- Бета-тест з реальними учнями
- Публікація
- Підтримка
MVP (курси, відео без DRM, тести, прогрес): 12–16 тижнів. Повноцінна платформа з DRM, офлайн, гейміфікацією, вебінарами: 24–32 тижні. Вартість розраховується індивідуально після аналізу контентної моделі та вимог до масштабування.
Що входить в роботу
Деталі
- Документація API та архітектурна схема
- Код-рев'ю та тестування (unit, widget, integration)
- Доступ до закритого репозиторію
- Інструкція по публікації в App Store та Google Play
- 3 місяці підтримки після запуску (виправлення помилок, допомога з оновленнями)
- Навчання команди замовника роботі з адмінкою
Що часто недооцінюють
Підтримка різних ролей (учень / викладач / адміністратор / куратор) вимагає RBAC на рівні API — не «перевірка ролі в if-else на клієнті». Клієнтський код завжди можна реверс-інжинірити. Кожен endpoint повинен перевіряти дозволи незалежно від того, що показує UI.
Зв'яжіться з нами для оцінки вашого проекту — отримайте консультацію з архітектури безкоштовно. Ми також пропонуємо аудит існуючого додатку зі звітом щодо вузьких місць за 5 днів. Ми маємо 7+ років досвіду, 15+ реалізованих проектів та 5 років на ринку. Наші рішення перевірені часом та мають гарантію якості.







