Розробка мобільного додатку для розумного будинку (безпека/камери)

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

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

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Розробка мобільного додатка для розумного дому (безпека/камери)

Відеонагляд у мобільному додатку — технічно найважча частина розумного дому. Стриміння з камер, сповіщення про рух, перегляд архіву, P2P-з'єднання без виділеної IP — кожен пункт несе нетривіальні рішення.

Відеопотік: протоколи та затримка

Три основні протоколи для IP-камер:

RTSP — стандарт для більшості NVR/DVR та IP-камер (Hikvision, Dahua, Reolink, Amcrest). Низька затримка (300–800ms), але немає нативної підтримки в браузерах та вимагає TCP/UDP сокетів. На Flutter: flutter_vlc_player (libVLC під капотом) або media_kit — обидва умають RTSP. На React Native: react-native-vlc-media-player.

HLS (HTTP Live Streaming) — працює везде, затримка 3–15 секунд. Сервер (FFmpeg, MediaMTX) бере RTSP-потік камери та отримує HLS. Для архіву — ідеально, для живого перегляду — прийнятно, для двосторонньої связи — ні.

WebRTC — мінімальна затримка (< 500ms), P2P без сервера-посередника. Використовується для intercom та baby monitor сценаріїв. На Flutter: flutter_webrtc. На React Native: react-native-webrtc. Вимагає STUN/TURN серверів для NAT traversal — coturn як self-hosted TURN або Twilio/Cloudflare TURN.

Для більшості домашніх додатків безпеки: WebRTC для живого + HLS для архіву.

P2P та NAT traversal

Користувач дивиться камеру дома, перебуваючи в роумінгу. Камера за NAT роутера без білої IP. Варіанти:

UPnP/Port Forwarding — користувач повинен сам налаштувати — нереалістично для потребительського продукту.

TURN relay — всі дані йдуть через relay-сервер. Працює завжди, але сервер коштує грошей та додає затримку.

Hole punching (ICE через STUN) — пряме P2P з'єднання через обмін зовнішніми IP/портами. Працює в ~75–85% випадків з Symmetric NAT. coturn як STUN: безплатно, deploy на VPS.

Туннелі (WireGuard, ZeroTier, Tailscale) — пристрої в домашній мережі підключені до VPN-мешу. Мобільний додаток підключається до того ж мешу. Tailscale SDK для мобільних є офіційним. Найнадійніший варіант, вимагає налаштування на стороні роутера/сервера.

Реальний проект: квартирна камера-домофон на Raspberry Pi + WebRTC + coturn. Hole punching працював у 80% випадків, для решти TURN relay. Середня затримка відео в P2P режимі — 180–250ms. Цього достатньо для домофона.

Сповіщення про рух

Камера детектує рух → сповіщення на телефон → користувач дивиться запис.

Детекція на рівні камери: більшість IP-камер відправляють HTTP webhook або MQTT при спрацюванні. Отримуємо на бекенді → FCM/APNs push з content-available: 1 (iOS silent push для фонової обробки).

На iOS: UNNotificationServiceExtension для додавання превю-зображення до сповіщення. Камера разом з webhook відправляє URL снімку — extension завантажує та прикріплює до notification. Користувач бачить сповіщення з картинкою прямо із шторки.

На Android: BigPictureStyle notification через Firebase Messaging. Завантажуємо зображення в NotificationCompat.BigPictureStyle builder.

Детекція руху через ML на мобільному клієнті (фонова обробка кадрів) — вбиває батарею. Не робимо це на телефоні.

Запис та архів

Локальний запис на SD-карту камери → перегляд через архів у додатку. NVR API (Hikvision ISAPI, Blue Iris API) для навігації по записах.

Часова шкала архіву — горизонтальна смуга часу з мітками руху. На Flutter: кастомний CustomPainter з Canvas.drawRect для кожного сегмента. Зум жестом (pinch-to-zoom) змінює часовий масштаб.

Хмарне сховище: завантажуємо фрагменти руху на S3/GCS. Нарізка через FFmpeg на сервері за сигналами webhook. Зберігання 7–30 днів з TTL-політикою.

Типові помилки

Використання Image.network для оновлення MJPEG-снапшотів кожну секунду — кожне оновлення пересоздає віджет, мерехтіння у UI. Використовуємо кастомний ImageStream з кешем або правильний MJPEG-плеєр.

Не думати про фоновий режим: на iOS PiP (Picture-in-Picture) для відеопотока вимагає AVPlayerViewController або явної підтримки через AVFoundation. flutter_vlc_player підтримує PiP починаючи з версії 7.x.

Строки

Одна камера, RTSP/HLS перегляд, сповіщення про рух — 5–7 тижнів. Мультикамерний вид, P2P/WebRTC, архів з часовою шкалою, двостороння зв'язок — 3–5 місяців. Вартість залежить від типів камер та вимог до хмарного сховища.