Розробка мобільного застосунку для вебінарів

Ми займаємось розробкою мобільного застосунку для вебінарів під iOS та Android, які конкурують з Zoom та Webex у нішевих сценаріях — онлайн-курси, корпоративні тренінги, вебінари з аудиторією до 500 осіб. На відміну від готових рішень, наш застосунок дає повний контроль над інтерфейсом, монетизацією

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мобільного застосунку для вебінарів
Складний
від 2 тижнів до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    599

Ми займаємось розробкою мобільного застосунку для вебінарів під iOS та Android, які конкурують з Zoom та Webex у нішевих сценаріях — онлайн-курси, корпоративні тренінги, вебінари з аудиторією до 500 осіб. На відміну від готових рішень, наш застосунок дає повний контроль над інтерфейсом, монетизацією та збором даних. Основні вимоги: стабільне відео при нестабільній мережі, демонстрація екрану, чат з реакціями, гнучкі ролі учасників (організатор, спікер, слухач), запис сесій та відтворення. І все це із затримкою менше 500 мс. Наша компанія має 7 років досвіду (з 2017 року) та реалізувала 20+ подібних проектів, накопичивши досвід роботи з WebRTC, Livekit, Agora та власною збіркою SFU. Типова помилка — спроба адаптувати Jitsi Meet під кастомний UX, що призводить до конфліктів версій та сповільнення розробки. Ми уникаємо цього, обираючи SFU під конкретне завдання. Вартість розробки MVP становить від $15,000, а при використанні нашого self-hosted рішення економія до $2,000 на місяць порівняно з хмарними сервісами при 50+ користувачах. Надаємо гарантію на код 6 місяців та сертифікати фахівців.

Який SDK обрати для вебінарного застосунку?

Писати відеоконференцію з нуля на WebRTC — реально, але це 3-6 місяців тільки на медіа-движок. Для більшості продуктів правильний вибір — спеціалізований SDK, який закриває SFU, кодеки, адаптивний бітрейт та перевантаження мережі.

Livekit SDK — open source, self-hosted SFU, MIT ліцензія. iOS/Android/Flutter SDK. Стандарт для нових проектів, де важливий контроль над даними. Room, LocalParticipant, RemoteParticipant — проста object model.

Agora SDK — потужний, але хмарний з посекундною тарифікацією. Хороший, коли важлива глобальна CDN та мінімум DevOps. Однак при 100 учасниках вартість може бути в 2-3 рази вищою, ніж self-hosted Livekit.

Daily.co, 100ms, Whereby — хмарні альтернативи з різними pricing-моделями. Twilio Video — зрілий API, але Twilio заморозила розвиток Video у 2023.

Для self-hosted: Livekit + Janus + MediaSoup — три найактивніше підтримуваних SFU. Джерело: WebRTC та офіційна документація Livekit.

Чому ми обираємо Livekit для self-hosted?

Livekit дає повний контроль над даними — SFU, записи, стрімінг — все на ваших серверах. Економія порівняно з Agora: при 50 учасниках і 20 годинах вебінарів на місяць self-hosted обходиться в 2-3 рази дешевше. Крім того, Livekit Open Source (MIT) дозволяє модифікувати код під специфічні завдання.

Реалізація адаптивного відео під мобільні мережі

Головна проблема мобільних вебінарів — перехід між Wi-Fi та LTE посеред виступу. SFU з simulcast вирішує це: спікер надсилає 3 якості відео (720p/360p/180p), сервер обирає для кожного слухача оптимальну, виходячи з його пропускної здатності.

Livekit: simulcast вмикається флагом VideoPublishOptions(simulcast: true). iOS: LKLocalVideoTrack з CameraSource. Android: LocalVideoTrack + Camera2Source. Автоматичне зниження роздільної здатності при втраті пакетів — вбудовано в SFU.

Dynacast (Livekit) — автоматично паузує відео-треки спікерів, яких не бачить жоден із слухачів. Економить bandwidth на стороні сервера при >50 учасниках.

Аудіо: opus кодек, 48 кГц, AEC + NS + AGC вбудовані в WebRTC. Спікерфон vs earpiece: AVAudioSession.overrideOutputAudioPort(.speaker) / AudioManager.setSpeakerphoneOn(true). Автоматично при >2 учасниках — вмикаємо speakerphone, для 1-on-1 — earpiece.

Демонстрація екрану

iOS (ReplayKit). RPScreenRecorder.shared().startCapture(handler:) — працює з iOS 11, в iOS 12+ доступний з Control Center. Захоплення екрану повертає CMSampleBuffer — передаємо в WebRTC RTCVideoCapturer через кастомний RTCVideoCapturerDelegate. Обмеження: в RPBroadcastSampleHandler (Extension) не можна напряму викликати код основного застосунку — використовуємо App Group + CFMessagePort або Darwin notifications для передачі стану.

iOS 15+ RPSystemBroadcastPickerView — нативна кнопка запуску трансляції без коду.

Android (MediaProjection API). MediaProjectionManager.createScreenCaptureIntent() → користувач підтверджує → VirtualDisplay → захоплення кадрів через ImageReaderVideoEncoder → WebRTC VideoSource. Вимагає Foreground Service з типом mediaProjection (Android 10+). В маніфесті: <service android:foregroundServiceType="mediaProjection"/>.

Flutter: flutter_screen_capture (нативні біндинги до обох API) або нативний plugin з platform channels.

Чат, реакції, Q&A

Чат у реальному часі: WebSocket або Livekit DataChannel (LocalParticipant.publishData). DataChannel працює через те саме RTC-з'єднання — не потрібен окремий WebSocket сервер.

Реакції (👏🔥❤️): миттєва анімація у всіх учасників. Відправляємо через DataChannel, рендеримо з particle animation поверх відео-гриду. iOS: UIViewPropertyAnimator + CAEmitterLayer. Android/Compose: AnimatedVisibility + LaunchedEffect.

Q&A: черга запитань з upvote. Зберігання на сервері (Livekit RPC або окремий REST). Організатор бачить пріоритизований список.

Ролі та права доступу

Організатор, співорганізатор, спікер, слухач. Різниця в правах: слухач не публікує відео/аудіо (економія bandwidth), може тільки підняти руку → організатор дає слово.

Livekit: ParticipantPermissioncanPublish, canPublishData, canSubscribe. Встановлюється сервером при створенні token або змінюється через RoomServiceClient.updateParticipant.

«Підняти руку»: DataChannel повідомлення {type: "raise_hand", participantId: "..."} → у організатора з'являється індикатор біля учасника.

Запис вебінару

Livekit Egress: cloud recording в S3/R2. EgressServiceClient.startRoomCompositeEgress() — записує composite view (відео всіх учасників у сітці) або track-by-track (окремі треки для монтажу). Формат: MP4 з H.264 + AAC.

Доступ до запису: presigned S3 URL з TTL 24 год. В застосунку — плеєр (AVPlayer / ExoPlayer) з позиціонуванням і швидкістю відтворення.

Що входить в роботу

  • Технічне завдання та архітектурна документація
  • Налаштування SFU (Livekit/Janus) та DevOps (K8s/Docker)
  • Розробка iOS (Swift/SwiftUI) та Android (Kotlin/Compose) застосунків
  • Інтеграція push-сповіщень (APNs/FCM), deep linking (Universal Links/App Links)
  • Налаштування User Auth (OAuth 2.0, Firebase Auth)
  • Підтримка App Store та Google Play: provisioning profiles, code signing, дотримання гайдлайнів (Section 4.2/5.1)
  • Навантажувальне тестування з 50+ учасниками
  • Передача вихідних кодів та доступів

Порівняння SFU для вебінарів

SFU Модель Self-hosted Краще використовувати коли
Livekit Open source (MIT) Так Потрібен повний контроль, економія при >50 учасниках
Agora Cloud, per-minute Ні Потрібна глобальна CDN, немає DevOps
Janus Open source (GPL) Так Кастомні сценарії, SIP-інтеграція
MediaSoup Open source (MIT) Так Чистий WebRTC, немає вбудованих SFU функцій

Етапи та строки

  1. Вибір SFU та налаштування сервера — 1 тиждень.
  2. Відео/аудіо-кімната, ролі — 2-3 тижні.
  3. Чат, реакції, Q&A — 1 тиждень.
  4. Screen share iOS + Android — 1 тиждень.
  5. Запис та playback — 1 тиждень.
  6. Тестування навантаження (50+ учасників) — 1 тиждень.

Разом: MVP-вебінарний застосунок — 6-8 тижнів. З реєстрацією подій, email-розсилками, аналітикою присутності — 10-12 тижнів.

Отримайте консультацію з архітектури вашого вебінарного застосунку — ми допоможемо обрати оптимальний стек та вкластися в бюджет. Зв'яжіться з нами для обговорення деталей — ми відповімо на всі питання та запропонуємо оптимальне рішення.