Рабочий процесс разработки мобильного приложения: UI-дизайн, бэкенд-интеграция и тестирование

Главные тезисы

Вовлечённость пользователя решается в первые 500 мс. Плитка с камерой должна открываться меньше чем за две секунды; задержка в одну секунду снижает конверсию на 7%. Android-приложения для видеонаблюдения, которые удерживают пользователей, выигрывают по задержке за счёт WebRTC (меньше 500 мс), ExoPlayer/Media3 и аппаратного ускорения кодеков.

Умные уведомления лучше, чем большое их количество. AI-фильтрация движения (человек против питомца против шевеления листьев) превращает 40 алертов в день в 3 содержательных уведомления и поднимает удержание на 30-й день с базовых 6% по индустрии до 30–40% — это уровень верхнего квартиля.

Тип foreground-сервиса — обязательное требование на Android 14+. Начиная с API 34 нужно явно указывать тип сервиса camera или mediaPlayback; без этого Play Store отклонит сборку.

RTSP на приёме, WebRTC на доставке — выигрышная архитектура. Камеры говорят на RTSP, людям нужна скорость воспроизведения уровня WebRTC. Мост с задержкой меньше 500 мс — это то, что отличает приложение, которое открывают по 4 раза в день, от того, которое удаляют на второй неделе.

Фора Софт реализовала этот стек в продакшене. Наш проект VALT обслуживает 2 500 IP-камер, 25 000 ежедневных пользователей и 650 организаций, включая полицейские департаменты США и центры медицинского образования. Закономерности по вовлечённости ниже — то, что мы видим работающим на реальных KPI.

Зачем Фора Софт написала это руководство

Мы зарабатываем разработкой программного обеспечения для видеонаблюдения. Девятнадцать лет наша команда выпускает продукты для систем наблюдения, видеоконференций и телемедицины — больше 600 сданных проектов, 100% Job Success на Upwork, более 400 честных отзывов клиентов. Android-видеонаблюдение лежит на пересечении трёх самых сложных задач: стриминг с низкой задержкой, фоновая работа с учётом батареи и удержание уровня «пользователь действительно открывает это каждый день».

Реальное подтверждение — V.A.L.T., система видеонаблюдения, которую мы построили совместно с Intelligent Video Solutions. Сегодня она обслуживает 2 500 IP-камер, 25 000 ежедневных пользователей и 650 организаций — комнаты допросов в полиции США, лаборатории медицинской симуляции, центры защиты детей. Android-приложение-компаньон BEAM превращает любой телефон в устройство наблюдения и отдаёт поток в ту же панель управления. Каждый паттерн по вовлечённости из этого руководства обкатан на этой кодовой базе.

Эта статья — не перечень фич. Это то, что мы говорим клиентам на первой встрече по оценке проекта, когда они спрашивают, почему у их приложения для мониторинга обрыв удержания 12% на седьмой день, — и что именно мы меняем, чтобы вытащить эту цифру обратно.

Застряли с приложением для видеонаблюдения, которое пользователи открывают раз в неделю?

Расскажите, как устроен ваш текущий стек, — за 30 минут мы покажем, что убивает вовлечённость и сколько стоит это починить.

Позвоните нам → Напишите нам →

Как выглядит хорошая вовлечённость в 2026 году

Прежде чем что-то оптимизировать, опирайтесь на реальные цифры. Приложения для видеонаблюдения ведут себя иначе, чем социальные сети: их не листают ради удовольствия, их открывают, когда что-то произошло. Это меняет само определение «вовлечённости».

Метрика Среднее по индустрии Здоровый уровень Верхний квартиль Что на это влияет
Удержание на день 1 25% 35% 40%+ Онбординг и время до подключения первой камеры
Удержание на день 7 10% 18% 25%+ Соотношение сигнал/шум в уведомлениях
Удержание на день 30 6% 15% 30–40% Реальная ценность каждого алерта, отклик через PTZ и двустороннюю связь
Stickiness DAU/MAU 13% 20% 25–50% Сценарии возврата по событиям
Время до первого кадра в плитке 3,0 с < 2,0 с < 0,8 с WebRTC/LL-HLS, прогретый сокет, аппаратное декодирование
Доля открытий уведомлений 8–12% 18% 30%+ AI-фильтрация, объединённые сводки

Самая полезная цифра — stickiness DAU/MAU. Социальные сети живут на уровне 50%, потому что Instagram открывают ежедневно по привычке. Для приложения мониторинга 20% — здоровый показатель, потому что в большинстве дней ничего не происходит, и это нормально. Всплески выше 25% обычно означают, что ваши алерты работают.

Задержка — это фича: выбирайте правильный стек протоколов

Любая метрика вовлечённости выше схлопнется, если плитка с камерой прорисовывается четыре секунды. Пользователь нажимает, ждёт, закрывает — и больше не возвращается. Поэтому самое первое архитектурное решение — это транспортный слой от камеры до телефона. В 2026 году таблица протоколов выглядит так:

Протокол Задержка «стекло — стекло» Android-клиент Масштабирование Где применять
WebRTC ~300 мс libwebrtc (интеграция с Media3) Среднее (нужен SFU) Live-плитка, двусторонний разговор, управление PTZ
LL-HLS 2–5 с ExoPlayer / Media3 Без ограничений (CDN) Публичные потоки для многих зрителей
HLS (стандартный) 8–12 с ExoPlayer / Media3 Без ограничений (CDN) Просмотр записей, архив
RTSP < 500 мс Свой клиент / libVLC Низкое (прямое подключение) Приём с камер (на стороне сервера)
SRT 1–2 с Свой клиент Точка — точка Аплинк с камеры по нестабильной сети

Берите мост RTSP-in → WebRTC-out, если: ваши IP-камеры говорят на ONVIF/RTSP «из коробки», а пользователи ожидают, что live-плитка на Android откроется по тапу меньше чем за секунду. Это практически любой современный продукт видеонаблюдения. Именно по такой архитектуре построен наш проект VALT.

На практике редко используется только один протокол. Канонический стек — RTSP на приём на сервере, WebRTC на доставку в Android для просмотра в реальном времени и HLS для перемотки архива. Media3 — пришедшая на смену ExoPlayer библиотека AndroidX, которую теперь поставляет Google, — нативно тянет HLS и DASH. Для WebRTC интегрируется libwebrtc или управляемый SFU: Janus, mediasoup или LiveKit.

Стройте движок уведомлений как полноценную функцию, а не как довесок

Если задержка выигрывает битву «быстрое ли это приложение», то уведомления выигрывают «полезное ли оно». Простое Android-приложение для видеонаблюдения, которое транслирует каждое размытое движение с камеры, выдаст 40–80 алертов в день на каждую камеру у обычного частного дома — и его выключат в течение недели. Кривая удержания почти полностью зависит от того, насколько хорошо вы фильтруете.

Четыре уровня качества уведомлений

1. Сырое движение. Срабатывает датчик, телефон вибрирует. Доля открытий 5–8%. Пользователи отключают канал за пару дней.

2. Классификация «человек/машина/посылка». AI на камере или на сервере фильтрует движение по классам объектов. Доля открытий поднимается до 15–20%.

3. Зоны и расписания с учётом контекста. Пользователь рисует зону вокруг крыльца, ещё одну вокруг подъездной дорожки, и приложение шлёт уведомления только по событиям в этих зонах и только в заданные окна времени. Доля открытий 25–30%.

4. Объединённые уведомления с пониманием контекста. AI собирает 90-секундную последовательность «курьер Amazon подошёл, поставил коробку, ушёл» в одно уведомление со сводкой («Посылка доставлена в 15:42») и шестисекундным GIF-превью. Доля открытий 30%+ — и, что важнее, после тапа сессия получается длинной.

Что необходимо реализовать на Android 14+

Уровень 4 требует трёх специфичных для Android элементов: отдельного NotificationChannel на каждый уровень важности (чтобы пользователь мог отключить «низкоприоритетное движение», не выключая «человек у входной двери»), MessagingStyle/BigPictureStyle для богатого превью и аккуратного FullScreenIntent, который применяется только для настоящих событий вторжения, — политика Google отклоняет приложения, злоупотребляющие этим механизмом.

val channel = NotificationChannel(
    "intrusion",
    "Intrusion alerts",
    NotificationManager.IMPORTANCE_HIGH
).apply {
    setBypassDnd(true)
    enableLights(true)
    enableVibration(true)
}

val notif = NotificationCompat.Builder(ctx, "intrusion")
    .setSmallIcon(R.drawable.ic_camera)
    .setContentTitle("Person at front door")
    .setContentText("3:42 PM — 6-second preview")
    .setStyle(NotificationCompat.BigPictureStyle()
        .bigPicture(previewBitmap))
    .setFullScreenIntent(intrusionPI, true)
    .setCategory(NotificationCompat.CATEGORY_ALARM)
    .build()

Нужен AI-фильтр, который реально отличает енота от грабителя?

Мы обучали модели распознавания объектов на устройстве и на сервере для продуктов наблюдения, которыми пользуются 650+ организаций. Давайте обсудим ваш.

Позвоните нам → Напишите нам →

Foreground-сервисы, батарея и подводные камни Android 14+

Приложение для мониторинга, которое сажает батарею, — это приложение, которое удаляют. Начиная с Android 14 (API 34) для каждого foreground-сервиса нужно явно указывать foregroundServiceType — и сама система активно убивает сервисы с неправильным типом. С Android 15 заработал контроль качества по батарее: Play Store отклоняет приложения, которые избыточно держат wake lock.

Четыре типа, важных для этой категории:

1. camera. Нужен, когда сам телефон выступает записывающим устройством — паттерн, который использует приложение BEAM в VALT, чтобы смартфон работал как точка наблюдения.

2. mediaPlayback. Для просмотра в реальном времени, когда пользователь активно смотрит поток с телефона в руке. PlayerNotificationManager из Media3 с этим типом стыкуется напрямую.

3. dataSync. Для фоновой загрузки записанных клипов по действию пользователя. Используйте API User-Initiated Data Transfer (UIDT) — он не учитывается в квоте wake lock.

4. remoteMessaging. Для push-конвейеров с алертами, которым нужна немедленная обработка (поднять сирену, инициировать звонок).

Берите планировщик с поддержкой Doze, если: приложению нужно опрашивать камеры на предмет здоровья/статуса. Используйте WorkManager с экспоненциальной задержкой вместо постоянного foreground-сервиса. Удержание wake lock ради пингов статуса — главная причина, по которой Play Store с его контролем по батарее помечает приложения наблюдения.

UX live-плитки: семь паттернов, которые двигают удержание

Всё выше — это инфраструктура. На самом деле пользователь видит сетку плиток с камерами, таймлайн и горстку кнопок. Вот семь паттернов, которые мы закладываем в каждое наше приложение мониторинга:

1. Предзагруженные превью плиток. В тот момент, когда отрисовывается сетка, показывайте последний известный ключевой кадр статичным JPEG и переключайтесь на live-видео, как только подъедет WebRTC-поток. Никаких пустых чёрных прямоугольников.

2. Тап для разворота с shared-element-переходом. Android-овский MotionLayout делает анимацию «плитка → полный экран» бесплатно. Воспринимаемая задержка старта потока падает, потому что пользователь ещё в середине анимации, когда приходит первый кадр.

3. PTZ-жесты в полноэкранном виде. Щипок для зума, двумя пальцами — пан. VALT показал: когда пользователям дали PTZ на мобильном, длина сессии в сценарии допросов в полиции выросла на 40%.

4. Кнопка push-to-talk. Двусторонний звук через WebRTC. Это единственная функция, которая превращает «только смотрящих» в ежедневных пользователей: крикнуть на воришку у крыльца гораздо приятнее, чем просто записать его.

5. Прокручиваемый таймлайн с AI-метками глав. Вместо сырого 24-часового таймлайна группируйте события: «Человек в 15:42», «Машина в 17:10». Пользователи проматывают день в 10 раз быстрее.

6. Picture-in-picture при навигации. enterPictureInPictureMode() оставляет поток на экране, пока пользователь идёт к двери. Длина сессии растёт, потому что не нужно «возвращаться» в приложение.

7. Поддержка Android TV и планшетов. Совместимость между телефоном, планшетом и Android TV позволяет приложению встраиваться в жизнь пользователя — классический сценарий — посмотреть на «бэбикам» на телевизоре в гостиной, пока готовишь. Закладывайте адаптивный Jetpack Compose с самого начала.

AI на устройстве, в камере или на сервере: где гонять «мозг»

Рынок сходится к гибрид-у: простые классификаторы в прошивке камеры, тяжёлая работа в облаке, запасной вариант на телефоне для офлайна. Неправильно подобранный микс жжёт трафик, батарею или деньги.

Где работает модель Типичные возможности Задержка Структура затрат Рычаг вовлечённости
Прошивка камеры (edge) Классы «человек/машина» < 50 мс Без регулярных платежей Первичная фильтрация алертов
Android-устройство (TFLite/ML Kit) Face unlock для PTT, сводка клипа на устройстве 100–300 мс Расход батареи Офлайн-устойчивость, приватность
Серверный GPU (тяжёлые модели) Реидентификация, анализ поведения, чтение номеров 200 мс–1 с Час работы GPU Умные группы алертов, поиск
LLM (вне устройства) Сводки клипов и поиск на естественном языке 1–3 с Поток-енно Вовлечённость с архивом

Паттерн, который снова и снова выигрывает в наших сборках: камера фильтрует «человек/машина», сервер крутит лёгкий трекер и Vision-LLM для сводок на естественном языке, а Android-клиент использует TFLite для локального face unlock и для «приватного режима», когда кадры не покидают устройство. О тренировочных данных для этого подхода мы подробно писали в нашем разборе AI-видеонаблюдения.

Эталонная архитектура Android-приложения для видеонаблюдения

Если сложить вышеперечисленные части, канонический конвейер выглядит так. Каждый блок ниже — отдельный деплой, который Фора Софт сегодня строит и поддерживает для клиентов.

Слой Компонент Роль Типичный стек
Приём RTSP-шлюз Забирает потоки с ONVIF-камер, демультиплексирует H.264/H.265 MediaMTX, GStreamer
Раздача в реальном времени SFU Рассылает WebRTC на N зрителей LiveKit, mediasoup, Janus
Архив Хранилище + HLS-упаковщик Сегменты и манифесты для перемотки S3/MinIO + ffmpeg-упаковщик
AI-конвейер Детекция объектов, трекер, генератор сводок Производит поток событий и метаданные YOLOv8/11, ByteTrack, Vision-LLM
Шина событий Pub/Sub Маршрутизирует алерты в push-фан-аут NATS / Kafka / Redis Streams
Push-шлюз Обёртка над FCM + Web Push Доставляет богатые уведомления Firebase Cloud Messaging
Android-приложение Сетка плиток + плеер + PTT UI на Jetpack Compose, Media3/WebRTC Kotlin + Compose + libwebrtc

Мини-кейс: VALT и Android-компаньон BEAM

Ситуация. Компания Intelligent Video Solutions пришла к нам с VALT — локальной платформой видеонаблюдения для полицейских допросов, медицинских симуляций и интервью в центрах защиты детей. Платформа уже обслуживала 450+ организаций через десктопные браузеры, но мобильное использование было почти нулевым: операторам приходилось сидеть за столом, чтобы просмотреть запись.

План на 12 недель. Мы спроектировали и выпустили BEAM — Android-приложение-компаньон, которое (а) позволяет любому уполномоченному офицеру или клиницисту открыть с телефона live-сессию или запись, (б) поддерживает PTZ и push-to-talk для сценариев допросов в реальном времени и (в) превращает сам телефон в мобильную точку наблюдения — паттерн foreground-сервиса camera. К каждому клипу прикрепляются заметки, временные метки и транскрипт с поиском по словам.

Результат. Сегодня VALT обслуживает 2 500 IP-камер, 25 000 ежедневных пользователей, 650 организаций и около 727 млн ₽ годовой выручки — а BEAM стал основным способом для оперативников в поле работать с системой. Продукт получил признание правоохранительных органов США за скорость, с которой записи превращаются в готовое к поиску доказательство. Хотите такую же оценку для своего продукта мониторинга? Позвоните или напишите нам — обсудим за 30 минут.

Сколько на самом деле стоит Android-приложение для мониторинга уровня «удерживает пользователя»

Ниже — реалистичные диапазоны оценок, которые мы получали на недавних проектах с нашим Agent Engineering-конвейером (Claude + старшие ревьюеры) — именно поэтому пропускная способность в часах у нас выше, чем у классического аутсорса. Принимайте это как точку отсчёта: на этапе детального обсуждения мы дополнительно ужимаем сроки и бюджет.

Объём Что входит Сроки Ориентировочный бюджет
MVP Android-клиента Сетка + live (Media3/HLS), перемотка архива, push через FCM 10–14 недель От 3,3 млн ₽
+ WebRTC live + PTT + PTZ Плитки с задержкой меньше 500 мс, двусторонний звук, жестовый PTZ +4–6 недель +1,8–2,6 млн ₽
+ AI-конвейер событий Серверная детекция, объединение событий, сводки от LLM +6–10 недель Считается по количеству камер
Поддержка продукта Релизы, изменения политик Play Store, масштабирование Ежемесячный ретейнер Team-as-a-service

Каркас решения — выберите стек за пять вопросов

Вопрос 1. Сколько одновременных зрителей на одну камеру? 1–5 — территория WebRTC. 50+ — HLS/LL-HLS. Промежуточный диапазон — это место, где окупается SFU с фолбэком на LL-HLS.

Вопрос 2. Нужен ли двусторонний звук или PTZ? Да → WebRTC обязателен. Нет → LL-HLS дешевле и лучше масштабируется.

Вопрос 3. Ждут ли пользователи алерт в течение 2 секунд после события? Да → серверный AI-конвейер + высокоприоритетный канал FCM. Нет → достаточно классификатора в прошивке камеры.

Вопрос 4. Регулируемая отрасль (HIPAA, CJIS, GDPR, SOC 2)? Да → локальное развёртывание или single-tenant-облако, шифрование в покое и в передаче, аудит-лог как полноценная функция. Закладывайте плюс 15–25% на инженерию соответствия требованиям.

Вопрос 5. Должен ли сам телефон быть камерой? Да → foreground-сервис типа camera + CameraX + собственный WebRTC-паблишер. Это и есть паттерн BEAM.

Пять ловушек, которые на второй месяц убивают вовлечённость

1. Превращать уведомления в экран настроек. Если пользователю с первого дня предлагают выбор между «все алерты» и «никаких алертов», он отключит уведомления за неделю. Сначала выкатите умные дефолты, а потом дайте «прокачанным» пользователям тонкую настройку.

2. Постоянный wake lock ради «всегда включённого мониторинга». Контроль Android 15+ отклонит такое приложение. Используйте push-побудку + JobScheduler.

3. Чёрные плитки в момент установления потока. Всегда сначала отрисовывайте последний JPEG-кадр и переключайтесь на видео, когда оно готово. Воспринимаемое ожидание падает с 2 с до 0 с.

4. Отсутствие офлайн-режима. Когда у пользователя пропадает Wi-Fi, а приложение показывает «нет камер», доверие рушится. Кешируйте локально последние 30 минут потока с каждой камеры и показывайте их с явной плашкой «офлайн».

5. Игнорировать Android TV и планшеты. 22% ежедневных сессий приложений уровня VALT приходят с телевизоров и планшетов. Внедряйте адаптивные раскладки Compose с первого дня, а не как переписывание во второй фазе.

Делаете Android-приложение для видеонаблюдения с нуля?

Мы реализовали этот стек для полиции США, центров медицинской симуляции и корпоративных систем наблюдения. Расскажите, что вы строите.

Позвоните нам → Напишите нам →

KPI: что измерять до и после каждого релиза

KPI качества. Время до первого кадра меньше 2 секунд на 4G; доля сессий с фризом потока меньше 1%; доля открытий уведомлений выше 18%; успешность PTZ-действий выше 97%.

Бизнес-KPI. Удержание на день 7 выше 18%; удержание на день 30 выше 15%; stickiness DAU/MAU выше 20%; доля пользователей с 2+ подключёнными камерами выше 60% к 30-му дню.

KPI надёжности. Доля сессий без сбоев выше 99,5%; ANR-rate ниже 0,2%; доля нарушений по батарее в Google Play — ноль; доля убитых foreground-сервисов ниже 0,3%.

Онбординг: подключить первую камеру меньше чем за три минуты

Удержание на первый день решается в первые пять минут после установки. Если пользователь за это время не получает хотя бы одну работающую камеру, приложение пополняет 75%, которые так и не возвращаются. Три паттерна, которые двигают эту цифру:

Подключение по QR-коду. Связывайте Android-приложение с облачным аккаунтом, сканируя QR на веб-панели. Никакого набора логина-пароля. Один экран.

ONVIF-автообнаружение. Сканируйте локальную сеть через NsdManager, выводите список ONVIF-камер с превью и добавляйте в один тап. Это куда лучше, чем вручную вбивать RTSP-URL на экранной клавиатуре.

Туториал с первым алертом. Через 60 секунд после подключения камеры пришлите синтетическое тестовое событие — чтобы пользователь успел пережить цикл «уведомление → тап → live-плитка» до того, как случится что-то настоящее. Это закрывает разрыв до «ага-момента».

Наблюдаемость: что инструментировать с первого дня

Нельзя улучшить ту вовлечённость, которую вы не видите. В каждом Android-приложении для видеонаблюдения мы с первой сборки снимаем со стороны клиента пять метрик и отправляем их в Firebase Performance или APM в духе Sentry:

время до первого кадра по каждой плитке, события фризов потока (разрыв > 800 мс), round-trip PTZ (от жеста до подтверждённого камерой движения), задержку от уведомления до тапа и события убийства foreground-сервиса. В сочетании с серверными метриками WebRTC (джиттер, RTT) этого достаточно, чтобы поймать почти любую регрессию по вовлечённости до того, как пользователи начнут уходить.

Поверх этого добавьте продуктовую аналитику — PostHog, Amplitude или Mixpanel — с пятью событиями: app_opened, live_viewed, alert_tapped, archive_scrubbed, ptt_pressed. Эту воронку и нужно еженедельно разбирать, чтобы выбрать цель следующего релиза.

Когда нативное Android-приложение делать не стоит

Не каждому продукту мониторинга нужна нативная сборка под Android с первого дня. Пропустите её, если выполнены все три условия:

(а) пользователи сидят за рабочим столом, и «мобильное» для них — это «иногда заглянуть», а не основной канал; (б) допустимая задержка 3–5 секунд, потому что сценарий — «просмотреть», а не «среагировать»; (в) ресурсов на постоянную работу с политиками Play Store у вас нет.

В таких случаях адаптивный PWA с Web Push даёт 80% ценности за 30% бюджета. Возвращайтесь к нативу, когда удержание упрётся в потолок или продукту понадобятся фоновые возможности уровня camera/mediaPlayback.

Базовое по безопасности, приватности и соответствию требованиям

Сквозное шифрование live-потоков и записей. SRTP для WebRTC; AES-256 для HLS-сегментов; ротация ключей на каждую сессию. Сделайте это аудируемым: покупатели в регулируемых отраслях сначала просят схему, и только потом — цену.

Тонкая ролевая модель доступа (RBAC). Кто, какую камеру и в какое время может смотреть; кто может экспортировать; кто может управлять PTZ. От этого зависит судебно-применимый процесс в VALT.

Защищённый от подделки аудит-лог. Каждый просмотр, перемотка, экспорт и движение PTZ фиксируется с ID пользователя, устройством и временной меткой. Для покупателей из правоохранительной и медицинской сферы это самый важный документ соответствия.

Раздел Data Safety в Play Store. Декларируйте все разрешения честно: камера, микрофон, геолокация, сеть. Неправильное декларирование — самая частая причина, по которой Android-приложения для наблюдения снимают с публикации.

Частые вопросы

На какую задержку должно ориентироваться Android-приложение для видеонаблюдения в 2026 году?

Время до первого кадра в live-плитке меньше 2 секунд на 4G — здоровый порог; верхний квартиль приложений укладывается в 800 мс. Для интерактивных сценариев (PTZ, push-to-talk) добивайтесь сквозной задержки WebRTC меньше 500 мс. LL-HLS допустим только для просмотра без интерактива — 2–5 секунд; стандартный HLS на 8–12 секунд ощущается как сломанный.

ExoPlayer всё ещё актуален или нужен Media3?

Правильный ответ — Media3. Отдельный репозиторий ExoPlayer объявлен устаревшим; Google теперь поставляет тот же движок в составе AndroidX Media3 с более чистым API и активной поддержкой. Переводите любой проект, который ещё сидит на com.google.android.exoplayer2, на androidx.media3.* до того, как добавлять новые фичи.

Как не дать приложению наблюдения умереть от системного оптимизатора батареи Android?

Указывайте правильный тип foreground-сервиса (camera, mediaPlayback, dataSync или remoteMessaging), запрашивайте соответствующее разрешение и останавливайте сервис ровно в тот момент, когда видимая пользователю работа завершилась. Для опросов статуса используйте WorkManager с окнами, дружественными к Doze; не держите wake lock.

WebRTC, RTSP или HLS — на каком протоколе действительно должно говорить Android-приложение?

Для просмотра в реальном времени на телефоне — WebRTC. Для просмотра архива — HLS/LL-HLS через Media3. RTSP в 2026 году — это не протокол для Android-клиента: он остаётся на сервере, где забирает потоки с ONVIF-камер до повторной упаковки. Выигрывает связка «RTSP на приём, WebRTC на live-доставку, HLS на архив».

Как добиться надёжной доставки push-уведомлений на китайских устройствах (Xiaomi, Huawei, Oppo)?

Одного Firebase Cloud Messaging на устройствах без Google Play Services недостаточно. Через фасадный слой подключайте вендорские push-SDK (Xiaomi MiPush, Huawei HMS Push, Oppo Push, VIVO Push) и держите запасной долгоживущий WebSocket для критичных алертов. Это частый источник жалоб «у меня уведомления приходят с опозданием» на азиатских рынках.

Нужен ли AI на устройстве или достаточно серверной детекции?

Начинайте с сервера — итерировать быстрее, и модели можно менять без релиза в Play Store. Добавляйте AI на устройстве, когда появится конкретная причина: приватный режим, в котором кадры не покидают устройство, офлайн-устойчивость или локальный face unlock для push-to-talk. TFLite/Google ML Kit аккуратно закрывают эти задачи на современном Android.

Сколько у Фора Софт занимает разработка MVP?

Android-клиент с сеткой камер, live-просмотром через Media3/HLS, воспроизведением записей и push через FCM мы сдаём за 10–14 недель. Добавление WebRTC-live, двустороннего звука и жестового PTZ занимает ещё 4–6 недель. Серверный AI-конвейер событий — плюс 6–10 недель, его объём считается по количеству камер. Наш Agent Engineering-конвейер ощутимо сжимает эти сроки по сравнению с классическим аутсорсом.

За счёт чего приложение для видеонаблюдения «приживается» дольше первой недели?

Три вещи, в этом порядке: уведомления, которым доверяешь (высокое соотношение сигнал/шум); просмотр в реальном времени, который ощущается мгновенным (< 1 с до первого кадра); и одно интерактивное действие сверх просмотра — push-to-talk, сирена или PTZ. Приложения, в которых сделаны все три, выходят на удержание 30-го дня 30–40%; приложения, в которых есть только live-просмотр, упираются в среднеотраслевые 10–15%.

Кейс

VALT: от готовой коробки до лидера индустрии

Как мы вырастили платформу видеонаблюдения до системы с годовой выручкой около 727 млн ₽, которой пользуются 650 организаций.

Разбор

Видеонаблюдение с AI: 6 преимуществ для безопасности бизнеса

AI-слой, который стоит за каждым умным алертом современных платформ наблюдения.

Инженерия под Android

Android WebRTC: полное руководство по реализации

Эталонный код для Android-клиента с низкой задержкой, который описан выше.

Стратегия

Кастомные решения для видеонаблюдения с AI-аналитикой

Когда коробочные VMS перестают масштабироваться и чем их заменить.

AI

Зачем использовать AI для детекции аномалий в видео

Модели машинного обучения, на которых работает тот самый фильтр алертов.

Готовы строить Android-приложение для видеонаблюдения, которое действительно открывают?

Формула Android-приложения для видеонаблюдения, которое даёт 25–40% удержания на 30-й день, простая до неинтересного: WebRTC-плитки с задержкой меньше 500 мс, AI-фильтрованные уведомления с превью-сводками, правильно объявленные типы foreground-сервиса, один интерактивный слой сверх просмотра (PTT, PTZ, двусторонняя сирена) и адаптивные раскладки Compose, которые позволяют телефону, планшету и Android TV делить один и тот же опыт. Пропустите любую составляющую — и вовлечённость встанет.

Мы выпустили ровно этот стек для полицейских департаментов, центров медицинской симуляции и корпоративных систем наблюдения — 25 000 ежедневных пользователей и счёт растёт. Если такая точка назначения подходит и вашему продукту, за одну встречу мы наметим 90-дневный маршрут до неё.

Давайте обсудим ваше Android-приложение для видеонаблюдения

30 минут, реалистичная оценка, конкретные следующие шаги — без обязательств. Пришлите бриф, и мы скажем, что реально сделать за 90 дней.

Позвоните нам → Напишите нам →

  • Технологии