Разработка мобильного приложения для охоты
Охотничье приложение отличается от рыболовного по нескольким техническим требованиям. Во-первых, карты угодий с правовыми границами — это не просто красивый слой, это юридически значимые данные об охотничьих хозяйствах и разрешённых зонах. Во-вторых, работа всегда в условиях отсутствия сети — лес и поле. В-третьих, трекинг маршрута должен работать часами при минимальном расходе батареи.
Карты угодий и правовые границы
Охотничьи хозяйства в России — данные из ФГИС «Охотресурс», открытого реестра нет, зоны приходится оцифровывать вручную или покупать у коммерческих поставщиков (HunterDays, Hunting.ru). Для Европы — WFS-сервисы Natura 2000 с запретными зонами.
Границы зон — GeoJSON Polygon, хранится в PostGIS на сервере. Клиент скачивает векторные тайлы (Mapbox Vector Tiles, .mvt) для выбранного региона. Преимущество векторных тайлов перед растровыми: рендерятся чётко на любом зуме, занимают меньше места при офлайн-загрузке, поддерживают интерактивность (тап на зону → информация о хозяйстве).
Проверка «я в разрешённой зоне»: PostGIS ST_Contains(zone.geometry, ST_SetSRID(ST_Point(lon, lat), 4326)) на сервере при каждом старте охоты. Локально на клиенте — MapboxTurf (Turf.booleanPointInPolygon) для мгновенной проверки без интернета.
GPS-трек с экономией батареи
Трекинг маршрута охоты — часы записи. Непрерывный GPS (CLLocationManager с desiredAccuracy: kCLLocationAccuracyBest) сажает батарею iPhone за 3-4 часа. Решение:
Адаптивный sampling. При скорости < 1 м/с (стоим, ждём) — запись раз в 30 секунд с точностью kCLLocationAccuracyHundredMeters. При движении > 2 м/с — каждые 5 секунд с kCLLocationAccuracyNearestTenMeters. Определение скорости: CLLocation.speed.
Алгоритм упрощения трека (Ramer–Douglas–Peucker). Накопленные точки упрощаются перед сохранением: из 1000 точек трека остаётся 50-100 без потери формы маршрута. Реализация: Turf.simplify или собственный RDP за 10-15 строк кода.
Background location на iOS. Требует NSLocationAlwaysAndWhenInUseUsageDescription + UIBackgroundModes: location в Info.plist. App Store ревьюеры тщательно проверяют обоснованность — описание должно объяснять, почему охотнику нужен трек в фоне. Rejection по 2.5.4 встречается если обоснование слабое.
На Android — ForegroundService с уведомлением «Трекинг активен» обязателен с Android 9+. WorkManager не подходит — нужен сервис с постоянным уведомлением.
Дневник охоты
Запись добычи: вид животного (справочник с латинскими названиями), пол, возраст (приблизительно), вес, фото, координата. Поле «лицензия/разрешение» — номер документа, который проверяется при необходимости. Эти данные никуда не уходят без явного действия пользователя — важно для конфиденциальности.
Погода на момент добычи: автоматически от OpenWeatherMap API по текущим координатам. Ветер, температура, фаза луны — охотники ведут эти записи десятилетиями, приложение просто автоматизирует.
База разрешённой дичи
Справочник видов с сезонами охоты, ограничениями по регионам, нормами добычи. Данные берутся из приказов Минприроды (Россия) или аналогов. Справочник обновляется централизованно на сервере, клиент синхронизирует при наличии сети. Офлайн — работает с последней синхронизированной версией.
Push-уведомление об открытии/закрытии сезона — серверный cron, рассылка через FCM/APNs охотникам подписанным на конкретные виды.
Сроки
Базовое приложение (офлайн-карта с зонами, GPS-трек, дневник добычи, справочник) — 6-10 недель. Стоимость зависит от региона (источники данных о хозяйствах разные), платформ и требований к трекингу маршрута. Рассчитываем индивидуально.







