Разработка мобильного приложения для онлайн-обучения (EdTech)
EdTech-приложения — одна из самых технически разнородных категорий. Мы сталкиваемся с этим каждый день: за простым интерфейсом «урок → видео → тест» стоят HLS-стриминг с адаптивным битрейтом, offline-загрузка зашифрованных видео, real-time взаимодействие в live-сессиях, gamification-механики, аналитика прогресса и часто — белая маркировка для B2B-клиентов. Оценим ваш проект за 2 дня и предложим решение под ключ.
Видео — главная техническая нагрузка
Большинство EdTech-приложений строится вокруг видеоконтента. Стриминг через HLS (HTTP Live Streaming): сервер нарезает видео на сегменты по 6–10 секунд, плеер выбирает качество в зависимости от скорости сети. На iOS — AVPlayer + AVPlayerViewController, с поддержкой HLS из коробки. На Android — ExoPlayer (Media3): HlsMediaSource с DefaultTrackSelector для адаптивного ABR. ExoPlayer даёт больше контроля над буферизацией, что критично для слабых сетей.
DRM. Платный контент должен быть защищён от сохранения экрана и копирования. FairPlay (iOS) и Widevine L1 (Android) — стандарт для EdTech платформ с монетизацией. Widevine L3 (программная защита) работает на всех Android-устройствах, но менее надёжен. L1 требует TEE (Trusted Execution Environment) — есть на Snapdragon 800-серии и выше.
Offline-просмотр. Загрузка урока для просмотра без интернета — ключевая функция. На iOS: AVAssetDownloadTask сохраняет HLS-поток в HLSAssetDownloadDirectory, FairPlay-лицензия кэшируется отдельно. На Android: DownloadManager в ExoPlayer с шифрованием через Android Keystore. Нельзя просто скачать MP4 — это обходит DRM. Правильный путь: зашифрованные сегменты на диске, расшифровка при воспроизведении через лицензионный ключ.
Почему HLS, а не MP4?
HLS позволяет адаптивно менять битрейт в зависимости от сети, а MP4 — только фиксированное качество. Для EdTech это означает меньше буферизации у пользователей с плохим соединением. Кроме того, HLS легко сочетается с DRM: каждый сегмент шифруется индивидуально. MP4-файл пришлось бы шифровать целиком, что увеличивает задержку при старте воспроизведения.
Как защитить контент от пиратства?
Используем комбинацию DRM и водяных знаков. DRM (FairPlay/Widevine) предотвращает копирование сегментов, а динамические водяные знаки (например, NexGuard) позволяют идентифицировать утечку через уникальные паттерны на видео. На мобильных устройствах также отключаем запись экрана через UIScreen.main (iOS) и FLAG_SECURE (Android).
Прогресс и аналитика обучения
Learning Record Store (LRS) и xAPI (Experience API) — стандарт для трекинга обучения: «пользователь X прошёл урок Y за Z минут, ответил правильно на 7 из 10 вопросов». Tincan.io как популярная реализация. Для корпоративного EdTech, где нужна интеграция с SCORM-совместимыми LMS (Moodle, Cornerstone) — SCORM 1.2 или 2004.
На мобильных xAPI-события отправляются в LRS через REST API: POST /statements с JSON-payload. При offline-использовании — очередь событий в SQLite (Room на Android, CoreData на iOS), синхронизация при восстановлении сети через WorkManager/BGTaskScheduler.
// Android — отправка xAPI statement через Room + WorkManager @Entity data class PendingStatement( @PrimaryKey val id: String = UUID.randomUUID().toString(), val statementJson: String, val createdAt: Long = System.currentTimeMillis() ) // При потере сети — ставим в очередь fun trackLessonCompleted(lessonId: String, durationSec: Int) { val statement = buildXApiStatement(verb = "completed", object = lessonId, duration = durationSec) db.pendingStatementDao().insert(PendingStatement(statementJson = statement.toJson())) WorkManager.getInstance().enqueueUniqueWork("sync_xapi", KEEP, SyncStatementsWorker) } Подробнее о спецификации xAPI читайте на Wikipedia.
Интерактивный контент и тесты
Квизы, задания с вводом кода, matching-exercises — это не просто список вопросов. H5P — открытый формат для интерактивного контента, поддерживается Moodle и многими LMS. Для мобильных: WebView с H5P.js или нативная реализация через JSON-схему заданий.
Оценка кода в browser-based sandbox: WebView + Monaco Editor или CodeMirror, выполнение через Pyodide (Python в WASM) для простых задач, или backend sandbox (Judge0, Piston) для компилируемых языков. На iOS WKWebView имеет ограничения на выполнение JS: WKWebViewConfiguration.preferences.javaScriptEnabled = true, но WASM работает с iOS 14+.
Gamification
Streak counter, badges, leaderboard, XP и уровни — стандартный набор. Технически: локальный счётчик + синхронизация с сервером. Streak требует аккуратной работы с временными зонами (пользователь путешествует, DST transitions). TimeZone.current на iOS и ZoneId.systemDefault() на Android — не хранить даты в UTC без поправки на локальную полночь пользователя.
Push-уведомления для удержания (streak reminder, «ваш курс заброшен»): Firebase Cloud Messaging + локальные уведомления через UNUserNotificationCenter (iOS) и NotificationManager (Android). Частота — не более 1–2 уведомлений в день, иначе отписка.
Белая маркировка и мультитенантность
Для B2B EdTech, где каждый корпоративный клиент хочет своё приложение с логотипом: мультитенантная архитектура с конфигурационным файлом per-tenant (цвета, шрифты, логотип, доступный контент). iOS: Remote Config через Firebase или собственный config endpoint, @Observable view-model с темой. Android: Dynamic theme через Material You dynamicColorScheme или собственный Theme.kt.
Отдельный App Store listing на каждого клиента — через App Store Connect API + fastlane deliver. Automation необходима при 10+ клиентах.
Что входит в работу
| Этап | Результат |
|---|---|
| Аналитика и прототипирование | Техническое задание, карта экранов, выбор стека |
| Проектирование архитектуры | ERD, диаграммы компонентов, план безопасности |
| Разработка MVP | Работающий функционал: видео, тесты, прогресс |
| Интеграция DRM и offline | Защищённый стриминг, кеширование с лицензиями |
| Тестирование | QA на реальных устройствах, нагрузочное тестирование |
| Деплой и поддержка | Публикация в App Store/Google Play, мониторинг |
Сроки: MVP — 4–8 недель, полное решение — от 3 месяцев. Стоимость рассчитывается индивидуально. Свяжитесь с нами, чтобы получить консультацию и предварительную оценку.
Закажите разработку EdTech-приложения под ключ — пишите, мы подготовим коммерческое предложение в течение 2 рабочих дней.







