Description
Build a native mobile app using React Native (Expo) that provides the full Firevector experience optimized for field use. The @firevector/schema and @firevector/engine packages can be reused directly since they're pure TypeScript.
Proposed Architecture
apps/mobile/ (new Expo app)
├── package.json (depends on @firevector/schema, @firevector/engine)
├── app/ (Expo Router file-based routing)
├── components/ (React Native components)
└── lib/ (API client, auth, offline storage)
Key Differences from Web
- Native GPS with background location updates
- Camera integration for photo documentation
- Push notifications for sync status
- Native offline storage (SQLite via expo-sqlite)
- Haptic feedback on LCES checklist completion
Shared Code
@firevector/schema — types (100% reusable)
@firevector/engine — calculations (100% reusable)
- Validation schemas — Zod works in React Native
New Code Needed
- React Native UI components (no shadcn — use Tamagui or NativeWind)
- API client for Next.js backend
- Native auth flow (expo-auth-session for Google OAuth)
- Push notification setup (expo-notifications)
Acceptance Criteria
Phases
- MVP: Observation form + dashboard (no map)
- v2: Mapbox integration + offline tiles
- v3: Camera, push notifications, background sync
Description
Build a native mobile app using React Native (Expo) that provides the full Firevector experience optimized for field use. The
@firevector/schemaand@firevector/enginepackages can be reused directly since they're pure TypeScript.Proposed Architecture
Key Differences from Web
Shared Code
@firevector/schema— types (100% reusable)@firevector/engine— calculations (100% reusable)New Code Needed
Acceptance Criteria
Phases