Ми розробили SOS-кнопку для дитячого трекера — це не просто push-сповіщення. Це функція, де збій або затримка означають реальну небезпеку. Архітектурні рішення тут принципово інші, ніж у звичайних додатках. За 5 років роботи ми реалізували понад 20 проєктів з трекінгом і знаємо, як гарантувати доставку екстреного сигналу навіть у найнесприятливіших умовах. У типовому проєкті задіяні три рівні дублювання: FCM high-priority push (на iOS critical-сповіщення), SMS-шлюз через 30 секунд, і фінальний VoIP-дзвінок через CallKit або InCallService. Це забезпечує доставку при будь-якому рівні заряду та режимі енергозбереження.
За даними Apple, VoIP push через PushKit доставляється за <2 секунди незалежно від режиму роботи пристрою.
Чому VoIP push кращий за звичайний FCM для SOS?
Звичайний FCM при низькому заряді батареї може відкласти сповіщення на 5–10 хвилин. VoIP-канал використовує окреме з'єднання і не блокується оптимізаціями енергоспоживання. За нашими тестами, затримка VoIP push не перевищує 2 секунд при будь-якому рівні заряду. Це критично, коли дитина натиснула SOS і кожна секунда на рахунку.
| Канал доставки | Типова затримка | Працює в Doze Mode | Потребує інтернет |
|---|---|---|---|
| FCM high-priority | 1–5 с | Так | Так |
| SMS-шлюз | 5–30 с | Так | Ні |
| VoIP push (CallKit) | <2 с | Так (спецканал) | Так |
Вартість реалізації SOS-функції варіюється в діапазоні від 4000 до 12000 доларів залежно від складності інтеграції з пристроєм. При цьому середня економія на тестуванні та налагодженні становить 20-30% бюджету за рахунок використання готових компонентів.
Як SOS-сигнал приходить від дитячого пристрою?
Дитячий трекер — це або окремий пристрій (GPS-годинник з SIM-картою), або смартфон дитини з додатком у «дитячому режимі». Для GPS-годинників: пристрій відправляє SOS-сигнал через GPRS на сервер (протокол GPRMC або пропрієтарний TCP-протокол — GT06, Concox та ін.). Сервер парсить пакет, витягує координати та статус SOS, формує алерт. Для смартфона з додатком: нативна кнопка з підтвердженням «затисніть 3 секунди» — long press обробляється через GestureDetector (onLongPressStart/onLongPressEnd) для запобігання випадковим натисканням. Після підтвердження запитується геолокація та відправляється на сервер.
Геолокація при SOS: максимальна точність
Точність координат — ключовий фактор. Ми використовуємо тільки GPS, не network location. На Flutter:
final position = await Geolocator.getCurrentPosition( desiredAccuracy: LocationAccuracy.bestForNavigation, timeLimit: Duration(seconds: 10), ); LocationAccuracy.bestForNavigation — GPS + Barometer на iOS, GPS + sensor fusion на Android. При відмові GPS (підвал, будівля) — fallback на network location, але з явним позначенням похибки в payload (наприклад, 50–100 м). Координати включаються в SOS-сповіщення та відображаються на карті (MapLibre або Yandex MapKit) у додатку батька з кнопкою «Побудувати маршрут».
| Режим геолокації | Точність | Час захоплення | Доступність |
|---|---|---|---|
| GPS bestForNavigation | 1–3 м | 2–5 с | На вулиці |
| Network location | 10–100 м | <1 с | Завжди |
Обробка SOS у додатку батька
При отриманні SOS-сповіщення відкривається екран з картою, позначкою дитини, кнопками «Зателефонувати дитині» та «Я їду». Також відображається трек останніх 10 геоточок за останню годину та таймер «SOS активний». При натисканні «Я їду» статус змінюється на «прийнято», дитина отримує сповіщення «Мама виїхала» — двостороння комунікація через сервер.
Що входить у реалізацію SOS-функції під ключ
- Мобільний додаток дитини (iOS/Android/Flutter — на вибір) з інтерфейсом SOS-кнопки та геолокацією.
- Мобільний додаток батька з картою, треком та кнопками дій.
- Серверна частина з дублюванням каналів (FCM + SMS + VoIP).
- Інтеграція з GPS-годинниками (аналіз протоколу, парсинг, обробка).
- Навантажувальне тестування (100+ одночасних SOS).
- Документація: архітектурна схема, API-специфікація, інструкція з розгортання.
- Вихідний код з коментарями.
- Допомога в публікації в App Store та Google Play (перевірка відповідності гайдлайнам).
Докладніше про навантажувальне тестування
Ми проводимо тестування з 200+ одночасними SOS-сигналами, імітуючи реальне навантаження в години пік. Серверна частина розгортається на Kubernetes з автоскейлінгом, що гарантує обробку всіх алертів за <10 секунд.Процес розробки SOS-функції
- Аналіз — вивчаємо ваш пристрій, вимоги до точності, канали резервування.
- Проєктування — обираємо протоколи (GPRS для годинників, Geocoder для мобілки), малюємо архітектуру сервера.
- Реалізація — пишемо код трекера, додатків та сервера, організовуємо CI/CD.
- Тестування — перевіряємо доставку в Doze Mode, при слабкому сигналі, на різних пристроях. Навантажувальне тестування.
- Деплой — налаштовуємо PushKit, APNs, FCM, SMS-шлюз. Викладаємо в сторах.
Тестування та надійність
Перед релізом: тест доставки SOS в Doze Mode, режимі «В літаку» (тільки Wi-Fi), при слабкому сигналі (3G). Навантажувальний тест: 100 SOS-сигналів одночасно — сервер повинен обробити та доставити всі за 10 секунд. Apple при рев'ю перевіряє коректність використання PushKit — не можна використовувати VoIP push для non-VoIP цілей. Ми гарантуємо проходження рев'ю: за 5 років жодної відмови з цієї причини.
Терміни розробки: 6–10 тижнів (додатки + сервер). Інтеграція з існуючим GPS-трекером — від 3 тижнів. Зв'яжіться з нами для точної оцінки вашого проєкту — ми розрахуємо термін та вартість індивідуально. Замовте розробку SOS-функції під ключ і отримайте надійне рішення для безпеки ваших користувачів.







