Skip to main content

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:

SettingValuePurpose
schemeenaccess-mapsDeep linking / OAuth redirect URI
userInterfaceStyleautomaticLight/dark mode support
ios.config.googleMapsApiKeyenv keyGoogle Maps on iOS
android.config.googleMaps.apiKeyenv keyGoogle Maps on Android
ios.infoPlist.NSLocationWhenInUseUsageDescriptionsetLocation permission prompt
ios.infoPlist.NSCameraUsageDescriptionsetCamera permission for reviews
pluginsexpo-router, expo-secure-store, expo-location, expo-image-pickerExpo config plugins
experiments.typedRoutestrueType-safe route params