Разработка мобильного приложения для онлайн-школы
Онлайн-школа в мобильном виде — это не просто «веб-сайт в WebView». Как только добавляем офлайн-доступ к курсам, видео с адаптивным битрейтом и прогресс ученика, синхронизирующийся между устройствами, сложность проекта уходит на уровень полноценного edtech-продукта. Мы разрабатываем такие приложения более 7 лет — реализовали 15+ edtech-проектов (от MVP до платформ с DRM и геймификацией). Наш стек — Flutter 3.x, Swift 5.9, Kotlin, Cloudflare Stream, Firebase. Свяжитесь с нами для бесплатной оценки архитектуры за 24 часа.
Почему видео без DRM — риск для бизнеса?
Учебное видео в онлайн-школе — не 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. Офлайн-просмотр: зашифрованная загрузка через flutter_downloader + AES-256 ключи, привязанные к deviceId — чтобы скачанное не работало на другом устройстве. Типичная ошибка: использовать video_player пакет без DRM. App Store не отклонит, но первый же скрипт для записи экрана снимет весь ваш контент. Средняя экономия на стриминговой инфраструктуре после оптимизации составляет $15,000–$25,000 в год.
Сравнение DRM-решений:
| Параметр | FairPlay (iOS) | Widevine (Android) |
|---|---|---|
| Поддержка | iOS 8+ | Android 4.4+ |
| Сложность интеграции | Средняя | Высокая |
| Лицензирование | Входит в 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 |
Средняя экономия клиентов после перехода на предлагаемый стек составляет $20,000 в год на инфраструктуре.
Публикация и ASO
Приложения онлайн-школ проходят ревью 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 дней.







