Getting Started
Prerequisites
- Node.js 18+
- pnpm
- Expo CLI (
npx expo) - iOS Simulator (macOS) or Android Emulator
- Google Maps API key
Setup
# From the repo root, install all workspace dependencies
pnpm install
# Navigate to the mobile app
cd apps/mobile
# Start the Expo dev server
npx expo start
# Run on iOS Simulator
npx expo run:ios
# Run on Android Emulator
npx expo run:android
Web not supported
The mobile app uses react-native-maps which does not support web. Always run on iOS/Android via npx expo start and press i or a.
Environment Variables
Create apps/mobile/.env:
EXPO_PUBLIC_API_URL=http://localhost:3000
EXPO_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_key
EXPO_PUBLIC_GOOGLE_CLIENT_ID=your_google_oauth_client_id
Expo Config
Key settings in app.json:
| Setting | Value | Purpose |
|---|---|---|
scheme | enaccess-maps | Deep linking / OAuth redirect URI |
userInterfaceStyle | automatic | Light/dark mode support |
ios.config.googleMapsApiKey | env key | Google Maps on iOS |
android.config.googleMaps.apiKey | env key | Google Maps on Android |
ios.infoPlist.NSLocationWhenInUseUsageDescription | set | Location permission prompt |
ios.infoPlist.NSCameraUsageDescription | set | Camera permission for reviews |
plugins | expo-router, expo-secure-store, expo-location, expo-image-picker | Expo config plugins |
experiments.typedRoutes | true | Type-safe route params |