Розроблення мобільного додатку для полювання
Мобільний додаток для полювання відрізняється від рибальського додатку кількома технічними вимогами. По-перше, карти угідь з юридичними межами — це не просто опис шару, це юридично значущі дані про мисливські господарства та дозволені зони. По-друге, робота завжди відбувається без інтернету — в лісах і полях. По-третє, GPS-відстеження повинно працювати годинами з мінімальним витиком батареї.
Карти угідь і юридичні межі
В Україні мисливські угіддя необхідно отримувати з офіційних реєстрів або придбавати у комерційних постачальників. Немає єдиного відкритого реєстру. На території ЄС можна використовувати WFS-сервіси Natura 2000 з забороненими зонами.
Межі зон — це GeoJSON Polygons, зберігаються в 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 години. Рішення:
Адаптивне вибірковість. При швидкості < 1 м/с (стоїмо, чекаємо) — запис раз на 30 секунд з точністю kCLLocationAccuracyHundredMeters. При русі > 2 м/с — кожні 5 секунд з kCLLocationAccuracyNearestTenMeters. Визначення швидкості: CLLocation.speed.
Алгоритм спрощення траси (Ramer–Douglas–Peucker). Накопичені точки спрощуються перед збереженням: з 1000 точок траси залишається 50-100 без втрати форми маршруту. Реалізація: Turf.simplify або власний RDP за 10-15 рядків кода.
Фонова геолокація на iOS. Вимагає NSLocationAlwaysAndWhenInUseUsageDescription + UIBackgroundModes: location в Info.plist. Рецензенти App Store ретельно перевіряють обґрунтованість — опис повинен пояснити, чому мисливцю потрібна фонова трасування. Відхилення по 2.5.4 відбувається, якщо обґрунтування слабке.
На Android — ForegroundService з повідомленням «Відстеження активне» обов'язково з Android 9+. WorkManager не підходить — потрібен сервіс з постійним повідомленням.
Дневник полювання
Запис улову: вид тварини (довідник з латинськими назвами), стать, вік (приблизно), вага, фото, координати. Поле «ліцензія/дозвіл» — номер документа, який перевіряється за потреби. Ці дані не передаються без явної дії користувача — важливо для конфіденційності.
Погода у момент улову: автоматично від OpenWeatherMap API за поточними координатами. Вітер, температура, фаза місяця — мисливці записують це десятиліттями. Додаток просто це автоматизує.
База дозволених видів
Довідник видів із сезонами полювання, обмеженнями за регіонами, нормами улову. Дані беруться з офіційних документів. Довідник оновлюється централізовано на сервері, клієнт синхронізує при наявності інтернету. Офлайн — працює з останньою синхронізованою версією.
Push-сповіщення про відкриття/закриття сезону — серверна крон-задача, розсилка через FCM/APNs мисливцям, підписаним на конкретні види.
Тривалість проекту
Базовий додаток (офлайн-карта з зонами, GPS-трек, дневник улову, довідник) — 6-10 тижнів. Вартість залежить від регіону (різні джерела даних про господарства), платформ і вимог до відстеження маршруту. Розраховується індивідуально.







