binomtech
Услуги
Россия
iOS
Январь 2018
Разработать мобильное приложение для отслеживания местоположения близких людей (друзей, членов семьи, детей) в реальном времени с возможностью анализа истории перемещений, мониторинга состояния устройства (уровень заряда батареи, тип подключения — 3G/Wi-Fi), а также создания и управления геозонами (полигонами) для контроля входа/выхода из определённых территорий. Особое внимание уделить точности отслеживания, масштабируемости системы и удобству интерфейса.
Приложение реализовано как нативное iOS-приложение на Swift, обеспечивающее высокую производительность и эффективное использование ресурсов устройства. Для сбора и обработки больших объёмов данных о местоположении пользователей разработан мощный backend на языке Go, который обеспечивает высокую пропускную способность и низкую задержку. В качестве базы данных выбрана Cassandra — распределённая NoSQL-система, отлично подходящая для хранения большого количества временных рядов координат и событий.
Функциональные возможности приложения:
1. Отслеживание местоположения в реальном времени
Каждый пользователь может добавлять других участников (например, ребёнка, партнёра, родителя) в список трекеров. На карте отображается текущее положение всех выбранных устройств с указанием имени и статуса.
2. История перемещений по периодам
Пользователь может выбрать временной интервал (например, сегодня, за последний час, за неделю) и просматривать маршрут движения другого пользователя в виде линии на карте. Также доступна детализация по минутам.
3. Мониторинг состояния устройства
Приложение отображает:
◦ Уровень заряда батареи (с цветовой индикацией: зелёный — выше 50%, жёлтый — 20–50%, красный — ниже 20%)
◦ Тип подключения: 3G или Wi-Fi (важно для понимания точности GPS и стабильности передачи данных)
◦ Время последнего получения сигнала
4. Создание и управление геозонами (полигонами)
Пользователь может пальцем на карте провести контур вокруг нужной территории (например, школа, дом, парк). Зона сохраняется с именем (например, "Школа №1", "Домашняя зона"). Система отслеживает моменты входа и выхода из зоны и отправляет уведомления.
Пример использования:
Родитель добавляет зону «Школа» вокруг школьного корпуса. Когда школьник приходит в школу, система отправляет уведомление: «Виктор вошёл в зону "Школа" в 08:05». При выходе — «Виктор покинул зону "Школа" в 16:20». Это помогает контролировать режим дня и безопасность ребёнка.
5. Управление контактами
Возможность добавлять новых пользователей через телефонный номер или QR-код. Каждому контакту можно назначить роль (ребёнок, родитель, друг) и настроить права доступа.
6. Множественные геозоны
Можно создавать несколько зон с различными именами и настройками. Например: "Школа", "Детский сад", "Кружок по робототехнике", "Дом". Все зоны отображаются на карте с легендой.
7. Админпанель для управления системой
Административная панель разрабатывается на вебе (React + Node.js) и позволяет:
◦ Мониторить общую нагрузку сервера
◦ Анализировать активность пользователей
◦ Управлять группами пользователей
◦ Просматривать ошибки и логи
◦ Настраивать уведомления и правила безопасности
◦ Экспортировать данные по запросу
8. API-интерфейс
Разработан RESTful API на Go с использованием gRPC для внутренних микросервисов. API предоставляет:
◦ Регистрацию и авторизацию пользователей
◦ Отправку и получение координат
◦ Управление контактами и геозонами
◦ Получение истории перемещений
◦ Уведомления о входе/выходе из зон
◦ Интеграцию с внешними сервисами для SMS-уведомлений
Технологический стек:
• Frontend (iOS): Swift, UIKit, MapKit, CoreLocation
• Backend: Go (Golang), Gin или Echo для HTTP-сервера, gRPC для микросервисов
• База данных: Apache Cassandra (для хранения координат, историй, событий)
• Хранение данных: Redis (для кэширования активных сессий и быстрого доступа к данным)
• Сообщения: NATS или RabbitMQ (для обработки событий и уведомлений)
• Админпанель: React, Node.js, Express
• API: REST + WebSockets (для push-уведомлений)
Получено полноценное приложение для семейного и социального отслеживания с высокой степенью надёжности и масштабируемости. Приложение обеспечивает:
• Точное отслеживание местоположения в реальном времени
• Гибкий анализ истории перемещений с фильтрацией по времени
• Комплексный мониторинг состояния смартфона (заряд, сеть)
• Простое создание и управление геозонами с уведомлениями
• Безопасное взаимодействие между пользователями через API и админпанель
• Высокая производительность благодаря выбору технологий Go и Cassandra
Приложение особенно полезно для родителей, которые хотят следить за детьми, и для организаций, которым нужно контролировать перемещение сотрудников или учеников. Благодаря продуманному дизайну и технической архитектуре, система способна масштабироваться до миллионов пользователей.