Сигнал тривоги від охоронця має дійти до диспетчера за 300 мілісекунд. Стандартні push-сповіщення на Android можуть затримуватися на 10 хвилин через Doze Mode — це неприйнятно. Ми будуємо архітектуру, в якій WebSocket — основний канал (затримка 100–300 мс), а FCM — резервний. При натисканні тривожної кнопки автоматично створюється наряд на найближчу вільну групу реагування. Час реакції на інцидент знижується з 5–7 хвилин до 30–60 секунд, операційні витрати ЧОП — на 25–40%. Для підприємства з 50 об'єктами економія на зарплаті диспетчерів та оптимізація маршрутів для 200 об'єктів дають значну економію.
Які завдання вирішує застосунок для ЧОП?
Застосунок обслуговує три групи користувачів:
- Клієнт: запит виклику охорони, статус об'єкта (охороняється чи знято), історія тривог, документи (акти, договори), особистий кабінет з контактами групи швидкого реагування.
- Охоронець: чек-лист обходу з геолокаційними точками, фіксація подій (початок/кінець зміни, обхід виконано, інцидент), тривожна кнопка, зв'язок з диспетчером, навігація до об'єкта.
- Диспетчер: карта з нарядами в реальному часі, вхідні тривоги, розподіл нарядів, журнал подій.
Кожному профілю потрібна своя частота оновлення даних: клієнту — раз на 5 хвилин, диспетчеру — менше секунди, охоронцю — в реальному часі при русі.
Як гарантувати доставку тривожного сигналу?
Тривога від охоронця має дійти до диспетчера максимально швидко. WebSocket (Laravel Broadcasting + Pusher або власний Socket.io) дає затримку 100–300 мс. Push через FCM — резервний канал, але FCM не гарантує доставку за секунди. Для клієнтського сигналу (паніка-кнопка на об'єкті) ми додаємо автоматичне створення наряду на найближчу вільну групу реагування.
В результаті час реакції на інцидент скорочується з 5–7 хвилин до 30–60 секунд. Операційні витрати знижуються на 25–40%.
Як вирішити проблему фонової геолокації на Android?
Охоронець має підтверджувати присутність в геозоні. Використовуємо flutter_background_geolocation (комерційний плагін) або geolocator у зв'язці з foreground service. На Android без foreground service фонова геолокація вбивається Doze Mode — особливо на Xiaomi та Huawei. Рішення: foreground service + wake lock + онбординг з інструкцією по відключенню оптимізації батареї.
Дані геолокації пишуться в PostGIS — це дозволяє будувати звіти по траєкторії зміни та верифікувати обхід точок маршруту через ST_DWithin. Точки обходу — геозони на карті об'єкта. При підході охоронця на 10 метрів — автоматична відмітка. Можна додати NFC-мітку для додаткового підтвердження через flutter_nfc_kit.
Порівняння підходів на iOS та Android
| Платформа | Технологія | Фоновий режим | Особливості |
|---|---|---|---|
| Android | Foreground Service + flutter_background_geolocation |
Працює при постійному сповіщенні | Doze Mode пригнічує після 2–3 годин без взаємодії |
| iOS | Significant-change location service (CLLocationManager) | Обмежена фонова робота | Потрібен дозвіл "always" та justification |
Покроково: оберіть плагін, налаштуйте foreground service зі сповіщенням, додайте онбординг для відключення оптимізації батареї, налаштуйте геозони через PostGIS та ST_DWithin, проведіть стрес-тест на реальних пристроях Xiaomi, Huawei, Samsung.
Що входить в роботу
- Аналітика вимог та проектування трьох рольових інтерфейсів.
- UX/UI дизайн з урахуванням сценаріїв на мобільних пристроях.
- Розробка на Flutter 3.x з архітектурою feature-first.
- Стрес-тестування геолокаційних сценаріїв на реальних пристроях.
- Публікація в App Store Connect та Google Play Console.
- Навчання персоналу: охоронців, диспетчерів, клієнтів.
- Технічна підтримка 3 місяці після запуску.
Порівняння Flutter vs Native для ЧОП
| Критерій | Flutter (кроссплатформа) | Нативні (Swift + Kotlin) |
|---|---|---|
| Час розробки | 18–24 тижні (MVP) | 28–36 тижнів |
| Фонова геолокація | Потребує плагінів | Повний контроль на iOS |
Етапи та строки
Аналітика → проектування трьох рольових інтерфейсів → UX/UI → розробка → стрес-тестування геолокаційних сценаріїв → публікація → підтримка.
MVP з геомоніторингом нарядів, тривожною кнопкою та клієнтським застосунком — від 18 до 24 тижнів. Повна система з інтеграцією сигналізації, SIP-телефонією та розширеною аналітикою — від 32 тижнів. Вартість розраховується індивідуально після аналізу вимог.
Зв'яжіться з нами для оцінки вашого проекту — ми підготуємо комерційну пропозицію. Замовте консультацію інженера протягом 2 годин.







