RoadMap
This is a curated roadmap, not a dump of every upstream request.
We reviewed open issues from:
v1.5 - selected backward-compatible work
1. Location Doctor / readiness API
Add diagnoseLocation() or getLocationReadiness()
Read-only diagnosis for permission, provider, services, settings, cache, and Play Services state.
Return remediation codes. Do not change existing errors or permission prompts.
Source issues: community #120 , #251 , #303 , #353 , service #253 , #329 , #393
2. Detailed permission state API
3. Detailed Android settings resolution
4. Cancellable current-position request
5. Provider status watcher
6. Background reliability contract
Add docs, E2E matrix, and optional status fields such as reason or lastDeliveryAt.
Clarify foreground/background/killed/reboot/iOS suspend behavior.
Do not change foreground-service, Headless JS, storage, boot, or persistence defaults in v1.5.
Source issues: community #346 , #314 , #285 , #255 , #179 , service #407 , #404 , #403 , #392 , #109 , #102
7. iOS pause/resume lifecycle listener
8. Watch observability, not Watch Manager defaults
9. Location quality metadata
Add optional response metadata such as source, age, quality, staleReason.
Do not reject stale or low-accuracy locations by default in v1.5.
Source issues: community #35 , #61 , #355 , service #307 , #168 , #174 , #421 , #439
10. Mock / integrity metadata polish
11. Recipes and verification kit
12. Install doctor and Expo opt-in plugin
Add nitro-geolocation doctor
Add an opt-in Expo config plugin.
No postinstall.
No automatic native config mutation.
Source issues: community #362 , #360 , #350 , #345 , #324 , #296 , #221 , service #451 , #448 , #442 , #441 , #420
13. Privacy / compliance documentation
v2.0 - selected breaking work
Existing v2 BC items
Additional selected v2 candidates
RoadMap
This is a curated roadmap, not a dump of every upstream request.
We reviewed open issues from:
@react-native-community/geolocationreact-native-geolocation-servicev1.5 - selected backward-compatible work
1. Location Doctor / readiness API
diagnoseLocation()orgetLocationReadiness()2. Detailed permission state API
getPermissionDetails()checkPermission()unchanged.3. Detailed Android settings resolution
requestLocationSettingsDetailed()requestLocationSettings(): Promise<LocationProviderStatus>unchanged.satisfied,cancelled,unavailable,activityMissing, etc.4. Cancellable current-position request
{ signal }.getCurrentPosition(options)behavior must remain unchanged.5. Provider status watcher
watchProviderStatus()oronProviderChange()6. Background reliability contract
reasonorlastDeliveryAt.7. iOS pause/resume lifecycle listener
onLocationLifecycleChange().8. Watch observability, not Watch Manager defaults
getActiveWatches()9. Location quality metadata
source,age,quality,staleReason.10. Mock / integrity metadata polish
11. Recipes and verification kit
12. Install doctor and Expo opt-in plugin
nitro-geolocation doctorpostinstall.13. Privacy / compliance documentation
v2.0 - selected breaking work
Existing v2 BC items
Remove
ModernGeolocationConfigurationaliasGeolocationConfiguration.Remove
enableHighAccuracyfrom the Modern APIaccuracyis not deprecated; it is the v1.2+ replacement forenableHighAccuracy.enableHighAccuracyis deprecated in the Modern API, kept only for v1 compatibility, and expected to be removed from the Modern API in v2.enableHighAccuracyin/compatfor@react-native-community/geolocationdrop-in compatibility.Change last-known position API
Before:
After:
Reason:
Additional selected v2 candidates
Replace
requestLocationSettings()with a deterministic result objectLocationProviderStatus.Make Watch Manager v2 semantics the default, if v1.5 observability proves the behavior
Integrate lifecycle/provider events into the unified background event stream, if the unified event model is worth the BC break
Rework error taxonomy only with a migration guide