React Native Migration
This repository now includes an Expo-based mobile app in mobile/.
Current State
- Expo TypeScript project scaffolded in
mobile/ - Initial screen implemented: room create/join flow
- Reused room hash logic in
mobile/src/core/room.ts - Mirrored runtime constants in
mobile/src/public_settings.ts - Firebase session init added in
mobile/src/platform/firebase.ts - Room screen now includes a Firebase connection action
Simplicity-First Strategy
- Keep web app in
src/as production baseline - Keep React Native app in
mobile/during migration - Migrate feature-by-feature without introducing a shared package yet
- Revisit shared package extraction only after multiple duplicated modules exist
Run Mobile App
cd mobile
npm install
npm run start
What Is Migrated So Far
- Room id generation
- Room hash build and parse logic
- Initial app shell and basic state handling
- Firebase app init and anonymous sign-in
Next Steps
- Port crypto module with React Native-compatible Web Crypto support
- Add Firebase initialization and anonymous auth for mobile
- Port friends sync logic from web feature modules
- Add geolocation tracking with foreground updates first
- Add background geolocation and platform permission setup