Мы разработали 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-функции под ключ и получите надёжное решение для безопасности ваших пользователей.







