fuzzyworld

north-star / mobile / files / docs / react-native-migration.md

Branch mobile · default branch · all branches

react-native-migration.md

1.3 KB · history · blame

React Native Migration

This repository now includes an Expo-based mobile app in mobile/.

Current State

Simplicity-First Strategy

Run Mobile App

cd mobile
npm install
npm run start

What Is Migrated So Far

Next Steps

  1. Port crypto module with React Native-compatible Web Crypto support
  2. Add Firebase initialization and anonymous auth for mobile
  3. Port friends sync logic from web feature modules
  4. Add geolocation tracking with foreground updates first
  5. Add background geolocation and platform permission setup
Source
1# React Native Migration
2
3This repository now includes an Expo-based mobile app in `mobile/`.
4
5## Current State
6
7- Expo TypeScript project scaffolded in `mobile/`
8- Initial screen implemented: room create/join flow
9- Reused room hash logic in `mobile/src/core/room.ts`
10- Mirrored runtime constants in `mobile/src/public_settings.ts`
11- Firebase session init added in `mobile/src/platform/firebase.ts`
12- Room screen now includes a Firebase connection action
13
14## Simplicity-First Strategy
15
16- Keep web app in `src/` as production baseline
17- Keep React Native app in `mobile/` during migration
18- Migrate feature-by-feature without introducing a shared package yet
19- Revisit shared package extraction only after multiple duplicated modules exist
20
21## Run Mobile App
22
23```bash
24cd mobile
25npm install
26npm run start
27```
28
29## What Is Migrated So Far
30
31- Room id generation
32- Room hash build and parse logic
33- Initial app shell and basic state handling
34- Firebase app init and anonymous sign-in
35
36## Next Steps
37
381. Port crypto module with React Native-compatible Web Crypto support
392. Add Firebase initialization and anonymous auth for mobile
403. Port friends sync logic from web feature modules
414. Add geolocation tracking with foreground updates first
425. Add background geolocation and platform permission setup