Реализация SOS-кнопки для детского трекера в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация SOS-кнопки для детского трекера в мобильном приложении
Средняя
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация SOS-кнопки для детского трекера в мобильном приложении

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

Требования, которые меняют всю архитектуру

Стандартный FCM push может задержаться на минуты в Doze Mode. Для SOS — неприемлемо. Нужна гарантированная доставка с минимальной задержкой и дублирование каналов.

Типичная схема дублирования:

  1. FCM high-priority push — основной канал, iOS critical уведомление
  2. SMS через Twilio или SMS-шлюз — резервный канал если push не доставлен за 30 секунд
  3. VoIP-звонок через CallKit (iOS) или InCallService (Android) — финальный резерв

На iOS PushKit + CallKit — это специальный канал для VoIP, работает даже при заблокированном экране и заряде батареи <20%. Приложение регистрирует VoIP push credentials отдельно от обычных APNs.

let voipRegistry = PKPushRegistry(queue: DispatchQueue.main)
voipRegistry.delegate = self
voipRegistry.desiredPushTypes = [.voIP]

Payload VoIP push приходит в pushRegistry(_:didReceiveIncomingPushWith:for:) — здесь нужно немедленно вызвать CXProvider.reportNewIncomingCall(), иначе iOS завершит приложение через несколько секунд.

Детское устройство: как работает SOS

Детский трекер — это либо отдельное устройство (GPS-часы с SIM), либо смартфон ребёнка с приложением в «детском режиме».

Для GPS-часов: устройство отправляет SOS-сигнал через GPRS на сервер (протокол GPRMC или проприетарный TCP-протокол конкретного производителя — GT06, Concox и др.). Сервер парсит пакет, извлекает координаты и статус SOS, формирует алерт.

Для смартфона с приложением: нативная кнопка в интерфейсе (большая, заметная, с подтверждением «Зажмите 3 секунды»). Long press обрабатывается через GestureDetector с onLongPressStart/onLongPressEnd — задержка предотвращает случайные нажатия. После подтверждения: запрос геолокации через geolocator → отправка на сервер → сервер рассылает алерт всем родителям.

Геолокация при 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.

Координаты включаются в SOS-уведомление и отображаются на карте (MapLibre или Yandex MapKit) в приложении родителя с кнопкой «Построить маршрут».

Приложение родителя: обработка SOS-алерта

SOS-уведомление открывает экран с:

  • Картой с меткой ребёнка
  • Кнопками «Позвонить ребёнку» и «Я еду»
  • Историей последних 10 геоточек (треком перемещения за последний час)
  • Статусом — «SOS активен» с таймером

При тапе «Я еду» статус SOS помечается как «принято», и ребёнок получает уведомление «Мама выехала» — двусторонняя коммуникация через сервер.

Тестирование и требования к надёжности

Перед релизом: тест доставки SOS в Doze Mode, режиме «В самолёте» (только Wi-Fi), при слабом сигнале (3G). Нагрузочный тест: 100 SOS-сигналов одновременно — сервер должен обработать и доставить все в течение 10 секунд.

Apple при ревью проверяет корректность использования PushKit — нельзя использовать VoIP push для non-VoIP целей, иначе получите rejection.

Сроки разработки: 6–10 недель (приложение ребёнка + приложение родителя + серверная часть с дублированием каналов). Интеграция с существующим GPS-трекером — от 3 недель.