Implementing Safe Zones for Kids Tracker in a Mobile App
Safe Zones — geofencing: the app should provide reliable location monitoring and notify a parent when a child leaves school or arrives home. Sounds simple. In practice — notification delay up to 5-10 minutes, triggering when a bus stops at the school fence, and false alarms due to GPS drift of 50-100 meters in urban areas. We solve these problems using a combination of native geofencing, server-side filtering, and adaptive thresholds. This guide covers both iOS CLCircularRegion and Android Geofencing API implementations. We'll evaluate your project within 1 day — just reach out to us.
How Geofencing Works on iOS and Android
iOS — CLLocationManager.startMonitoring(for: CLCircularRegion) (the iOS CLCircularRegion API). The system monitors up to 20 regions simultaneously per app. Entry/exit detection accuracy is around 100-200 meters, delay up to 3-5 minutes. Regions are persisted by the system and continue monitoring even after device reboot, which is crucial for a child tracker. Apple Developer Documentation
Android — Geofencing API via GeofencingClient from Google Play Services (the Android Geofencing API). Limit — 100 geofences per app. Notifications come via PendingIntent to BroadcastReceiver or IntentService. On Android 12+, FINE_LOCATION is mandatory for geofencing, BACKGROUND_LOCATION for background operation. Adding a geofence: GeofencingRequest.Builder with setInitialTrigger(GEOFENCE_TRANSITION_ENTER) and the necessary loiteringDelay to filter out momentary passes.
| Parameter | iOS | Android |
|---|---|---|
| Max zones | 20 | 100 |
| Urban accuracy | 100-200 m | 50-150 m |
| Notification delay | 3-5 min | 1-5 min |
| Background monitoring | Yes (persistent regions) | Yes (with Doze limitations) |
How to Reduce False Alarms?
In dense urban areas, GPS accuracy drops to 50-150 meters due to multipath signal reflection. If the Safe Zone radius is 100 meters (typical yard), drift easily pushes the point outside. Solution: use not a single point but a median of the last 3-5 measurements before deciding on a transition. On the server — a track smoothing algorithm (Kalman filter or simple weighted moving average based on horizontalAccuracy). Our median filter is 3 times more accurate than single-point detection.
Second layer of protection: loiteringDelay in the Android Geofencing API — 60-120 seconds. This means the DWELL event will only fire if the device stays within the zone for that time, not just passing through. Our filtering reduces false alarms by up to 5 times compared to standard geofencing.
What's Included in the Turnkey Implementation of Safe Zones
| Stage | Result |
|---|---|
| Analytics | Define scenarios, select radius and sensitivity |
| Design | Client-server architecture, geofence scheme |
| Implementation | Integration with maps, zone setup, event processing |
| Testing | Field tests in different locations, debugging false alarms |
| Deployment | Publish to App Store / Google Play, monitoring |
Deliverables include: API documentation, commented code, push notification configuration, team training (1-2 hours), and 30-day support after delivery.
Work Process
- Analytics — discuss scenarios: school, home, extracurriculars. Determine radii and priorities.
- Design — draw architecture: server stores zones, child's app receives them via APNs FCM, registers geofences.
- Implementation — write code in Swift/Kotlin/Dart, configure server-side filter.
- Testing — visit locations (school, park) with real devices, adjust thresholds.
- Deployment — upload to stores, set up CI/CD, provide access to monitoring dashboard.
Common Mistakes with Geofencing Implementation
- Too small radius (<50 m) → frequent false alarms due to GPS drift.
- No server-side filtering → notifications on every passing-by.
- Ignoring Doze mode on Android → notifications don't arrive at night.
Notifications and Reliability
Push notification must reach the parent as fast as possible. APNs FCM with high-priority — delay is usually 1-3 seconds. But the geofence event from the system may be delayed: iOS guarantees firing "on the next significant motion or location update," Android in Doze mode — only when it exits Doze.
For critical notifications (leaving zone at night), consider duplicating via SMS as a fallback — especially for children with budget Android phones without stable internet.
Timelines and Pricing
Implementation time for Safe Zones module — 1-3 weeks. Costs start at $5,000 for a single platform (iOS or Android) and range up to $15,000 for both platforms, depending on complexity. Clients typically save $2,000 per month on support costs due to reduced false alarms. Over the years, we have completed more than 30 projects with geolocation. Get in touch with us to evaluate your project — we'll prepare a commercial proposal within 1 day.
Editing Zones in the Parent App
UI for Safe Zones: the user should be able to draw a zone on the map or enter an address + radius. Both Google Maps SDK and MapKit support overlays for drawing circles. Minimum sensible radius — 50 meters (otherwise too many false alarms), maximum — 5 km.
Zones are synced with the server and pushed to the child's device via APNs FCM data-push, after which the child's app re-registers geofences. When changing smartphones or reinstalling the app — automatic zone download from the backend.







