Quick Start
This guide walks you through installing and setting up React Native Nitro Geolocation in your React Native project.
1. Installation
Before installing the module, make sure you have a React Native environment (0.75+).
# Install Nitro core and Geolocation module
yarn add react-native-nitro-modules react-native-nitro-geolocation
# or using npm
npm install react-native-nitro-modules react-native-nitro-geolocation
After installation, rebuild your native app to ensure the new module is linked.
2. iOS Setup
Permissions
Add the following keys to your Info.plist:
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app requires access to your location while it’s in use.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app requires access to your location at all times.</string>
3. Android Setup
Add the following permissions to your android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Optional (for background access):
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
4. Usage Example
import Geolocation from 'react-native-nitro-geolocation';
Geolocation.getCurrentPosition(
(position) => {
console.log('Latitude:', position.coords.latitude);
console.log('Longitude:', position.coords.longitude);
},
(error) => {
console.error('Location error:', error);
},
{ enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
);
// Subscribe to updates
const watchId = Geolocation.watchPosition(
(position) => {
console.log('Updated position:', position);
},
(error) => console.error(error),
);
Nitro Geolocation is 100% API-compatible with @react-native-community/geolocation
.
You can migrate by simply replacing imports:
- import Geolocation from '@react-native-community/geolocation';
+ import Geolocation from 'react-native-nitro-geolocation';
or
- import { getCurrentPosition, watchPosition } from '@react-native-community/geolocation';
+ import { getCurrentPosition, watchPosition } from 'react-native-nitro-geolocation';
Most existing code will work as-is — but you'll now get:
- Better performance via JSI
- Reduced bridge serialization overhead
- Improved permission consistency
- TypeScript definitions out of the box