Hunting App: Offline Maps, GPS Tracking, and Harvest Diary
When a hunter steps into the field, connectivity drops, and the map must be accurate down to the meter. We develop apps that solve this: offline maps with legally significant hunting ground boundaries, GPS tracking with 8+ hours of battery savings, and a harvest diary with automatic weather linkage. Order a turnkey hunting app—we’ll write the code, publish it to the app stores, and provide 2 weeks of support.
Offline Maps with Vector Tiles
Hunting grounds in Russia rely on data from ФГИС «Охотресурс» — no public registry exists, so zones must be digitized manually or purchased from commercial providers (HunterDays, Hunting.ru). For Europe, WFS services like Natura 2000 provide restricted zone data.
We store zone boundaries as GeoJSON polygons in PostGIS on the server. The client downloads vector tiles (Mapbox Vector Tiles, .mvt) for the selected region. Vector tiles outperform raster tiles significantly:
| Parameter | Vector Tiles | Raster Tiles |
|---|---|---|
| Offline size | 2-10 MB per region | 50-200 MB per region |
| Rendering | Sharp at any zoom | Blurry when zoomed |
| Interactivity | Yes (tap, highlight) | No |
| Loading time | Fast | Slow |
Geo-Data Validation
To check if a hunter is in a permitted zone, we use PostGIS ST_Contains(zone.geometry, ST_SetSRID(ST_Point(lon, lat), 4326)) on the server at the start of each hunt. For instant offline validation, we use Turf.booleanPointInPolygon from MapboxTurf on the client.
Battery-Efficient GPS Tracking
Continuous GPS with CLLocationManager (desiredAccuracy: kCLLocationAccuracyBest) drains an iPhone battery in 3-4 hours. Our solution is adaptive sampling: when speed < 1 m/s (standing, waiting), we record every 30 seconds with kCLLocationAccuracyHundredMeters. When moving > 2 m/s, we record every 5 seconds with kCLLocationAccuracyNearestTenMeters. Speed is obtained from CLLocation.speed.
We further reduce data using the Ramer–Douglas–Peucker algorithm to simplify the track before saving. Out of 1000 points, only 50-100 remain without losing route shape. Implementation can use Turf.simplify or a custom RDP in 10-15 lines of code.
| Parameter | Continuous GPS | Adaptive sampling |
|---|---|---|
| Battery life | 3-4 hours | 8-10 hours |
| Accuracy | 10 m | 10-100 m depending on speed |
| Points per hour | ~3600 | 300-600 |
| Energy consumption | 100% | 30-40% |
Background location on iOS requires NSLocationAlwaysAndWhenInUseUsageDescription and UIBackgroundModes: location in Info.plist. App Store reviewers carefully check the justification—the description must explain why background tracking is needed. Rejection under 2.5.4 occurs if the justification is weak.
On Android, a ForegroundService with a persistent notification “Tracking active” is mandatory since Android 9+. WorkManager is not suitable—a foreground service with a persistent notification is required.
Harvest Diary
Record catch details: animal species (with Latin names), sex, approximate age, weight, photo, coordinates. The license/permit number field is for documentation and checked when necessary. These data are not transmitted without explicit user action—critical for confidentiality.
Weather at the moment of harvest: automatically retrieved from OpenWeatherMap API based on current coordinates. Wind, temperature, moon phase—hunters have been recording this for decades; the app simply automates it.
Permitted Game Database
A species reference with hunting seasons, regional restrictions, and bag limits. Data come from Russian Ministry of Natural Resources orders or equivalents. The reference is updated centrally on the server; the client syncs when online. Offline use works with the last synced version.
Push notifications for season opening/closing—server cron job, sent via FCM/APNs to hunters subscribed to specific species.
What's Included in the Turnkey Solution
- Architecture design with offline scenarios in mind
- iOS (Swift 5.9+, SwiftUI) and Android (Kotlin, Jetpack Compose) implementation
- Integration with cartographic data sources
- Tracking setup with adaptive sampling and track simplification
- Harvest diary with synchronization
- App Store and Google Play publication (review handling)
- Documentation and repository access
- 2 weeks of free support after launch
Timelines and Cost Estimation
A basic app (offline map with zones, GPS tracking, harvest diary, game reference) takes 6-10 weeks. Cost depends on region (data sources for hunting grounds vary), platforms, and tracking requirements. We calculate individually. Get a consultation for your project—we’ll advise on suitable data sources and estimated timelines.
App Store Review Checklist
Click to expand checklist
- [ ] Background tracking justification in Info.plist
- [ ] Test account with demo hunt scenario
- [ ] Privacy policy
- [ ] No references to weapons in inappropriate context







