Skip to content
JoaquinKellerPublic

Repository files navigation

Nearby

A simple Expo 57 app with a full-screen map powered by react-native-maplibre-gl-js.

Run on your phone

npm install
npm start

Open the QR code in an Expo Go version that supports SDK 57, or use an Expo development build. Allow location access when prompted. The map centers on your current location with a blue dot. Drag to explore, pinch to zoom, and tap the crosshair to find your location again.

Only foreground location is requested. The app takes one location fix on launch and each time you tap the crosshair, so it won't move the camera while you're exploring. If permission is denied or GPS is unavailable, the map remains usable with a retry action.

You can also run npm run ios, npm run android, or npm run web. Simulators need a simulated location enabled. Browser location requires localhost or HTTPS and location permission.

Map and native dependencies

The map uses OpenFreeMap's Liberty style and online tiles; no API key is needed. Map attribution stays visible at the bottom. Internet access is required to load map data.

The map library bundles its renderer in a WebView. Its expo-asset and react-native-webview dependencies are overridden to the project's Expo 57 compatible versions to avoid duplicate native modules. Keep these overrides aligned when upgrading Expo.

fast-deep-equal is included explicitly because map library version 1.24.4 imports it without declaring it as a dependency.

Location permission is configured through the Expo 57 location plugin. Rebuild standalone/development binaries after changing native permissions.

Check

npm run typecheck
npx expo install --check
npx expo export --platform all

On a phone, check permission approval and denial, first centering, pinch zoom, dragging, and recentering after moving the map. With location services disabled, the app should explain how to enable them and allow retrying.

Releases

Packages

Contributors

Languages