How adynu182/gpslive-tracker-rn works
GPS Live is a mobile app for sharing live locations with people in a room, plus a standalone offline-navigation mode. A user creates or joins a room, starts a session, and the tracker screen obtains GPS fixes while session logic synchronizes member presence and positions. The map presents members and supports following, fitting, and requesting a route to a tapped destination. Preferences and theme persist locally. The README is empty; the workflow and major capabilities here are based on the sampled screens and session/map code, with unsampled modules represented only where their paths are clear.
Main entry points: session.ts Room session · tracker.tsx Tracker screen · MapView.tsx Interactive map · state.ts App state
Components 22
App screens
- Room setup
app/index.tsx - Tracker screen
app/tracker.tsx - Room header
components/TopHeader.tsx - Tracker toolbar
components/Toolbar.tsx - Member list
components/MembersList.tsx
Location and sessions
- GPS acquisition
src/gps.ts - Room session
src/session.ts - Room operations
src/room.ts - Road snapping
src/road-snap.ts - Firebase client
src/firebase.ts
Map and navigation
- Interactive map
components/MapView.tsx - Member markers
components/MemberMarker.tsx - Route layer
components/RouteLayer.tsx - Map controls
components/MapControls.tsx - Position smoothing
src/useSmoothedPosition.ts
State and preferences
- App state
src/state.ts - Local preferences
src/storage.ts - Theme settings
src/theme.ts
Other components
- App user
- Firebase Realtime DB
- Routing service
- AsyncStorage
Connections 31
- App user → Room setup: sets up room
- Room setup → Local preferences: loads profile
- Room setup → Room operations: selects room
- Room setup → Room session: starts tracking
- App user → Tracker screen: uses tracker
- Tracker screen → GPS acquisition: starts GPS
- GPS acquisition → App state: updates position
- Tracker screen → Room session: recalculates route
- Room session → App state: updates session
- Room session → Firebase client: uses database client
- Firebase client → Firebase Realtime DB: connects
- Room session → Firebase Realtime DB: syncs members
- Room session → Local preferences: saves session
- Local preferences → AsyncStorage: reads and writes
- Tracker screen → Interactive map: renders map
- Interactive map → App state: reads map state
- Interactive map → Member markers: renders members
- Interactive map → Route layer: renders route
- Interactive map → Room session: requests route
- Room session → Routing service: requests directions
- Interactive map → Position smoothing: smooths positions
- Tracker screen → Room header: renders header
- Tracker screen → Member list: renders members
- Tracker screen → Tracker toolbar: renders actions
- Tracker screen → Map controls: renders controls
- Room header → Room operations: shares room code
- Tracker toolbar → Room session: toggles sharing
- Tracker toolbar → Local preferences: saves theme
- Tracker screen → App state: reads tracker state
- Theme settings → App state: reads theme state
- Road snapping → Room session: supports routing