How akhyarulf/nyasar works
Nyasar is an Android outdoor navigation app centered on importing or drawing a route, following it with GPS (including offline maps), and recording activities for local history or optional community sharing. The graph also captures waypoint/map tools, community browsing and publishing, and account backup. The README establishes these product capabilities; sampled source confirms key navigation, recording, offline-map and backup responsibilities, but not every screen-to-repository call, so uncertain links are omitted.
Main entry points: RoutePickerScreen.kt Route library · BackupManager.kt Cloud backup · RecordingService.kt Recording service · NavigationScreen.kt Navigation screen
Components 30
Routes and navigation
- Route library
app/src/main/java/com/nyasar/app/ui/routepicker/RoutePickerScreen.kt - GPX parser
app/src/main/java/com/nyasar/app/gpx/GpxParser.kt - Route repository
app/src/main/java/com/nyasar/app/data/repository/RouteRepository.kt - Local route data
app/src/main/java/com/nyasar/app/data/db/RouteDao.kt - Route preview
app/src/main/java/com/nyasar/app/ui/preview/RoutePreviewScreen.kt - Navigation screen
app/src/main/java/com/nyasar/app/ui/navigation/NavigationScreen.kt - Track navigation
app/src/main/java/com/nyasar/app/navigation/NavigationEngine.kt - GPS location
app/src/main/java/com/nyasar/app/location/LocationRepository.kt - Draw route
app/src/main/java/com/nyasar/app/ui/drawroute/DrawRouteViewModel.kt
Activity tracking
- Recording screen
app/src/main/java/com/nyasar/app/ui/recording/RecordingScreen.kt - Recording service
app/src/main/java/com/nyasar/app/recording/RecordingService.kt - Recording engine
app/src/main/java/com/nyasar/app/recording/RecordingEngine.kt - Activity data
app/src/main/java/com/nyasar/app/data/db/ActivityDao.kt - Activity history
app/src/main/java/com/nyasar/app/ui/history/ActivityHistoryScreen.kt
Maps and waypoints
- Map display
app/src/main/java/com/nyasar/app/ui/components/NyasarMapView.kt - Offline maps
app/src/main/java/com/nyasar/app/ui/offline/OfflineMapsScreen.kt - Offline map manager
app/src/main/java/com/nyasar/app/map/OfflineMapManager.kt - Waypoint tools
app/src/main/java/com/nyasar/app/ui/waypoint/WaypointViewModel.kt - Waypoint data
app/src/main/java/com/nyasar/app/data/db/WaypointDao.kt
Community sharing
- Browse routes
app/src/main/java/com/nyasar/app/ui/browse/BrowseScreen.kt - Browse repository
app/src/main/java/com/nyasar/app/data/supabase/BrowseRepository.kt - Publish routes
app/src/main/java/com/nyasar/app/ui/publish/PublishRouteSheet.kt - Publish repository
app/src/main/java/com/nyasar/app/data/supabase/PublishRepository.kt - Social actions
app/src/main/java/com/nyasar/app/data/supabase/SocialRepository.kt
Accounts and backup
- Account screens
app/src/main/java/com/nyasar/app/ui/auth/AuthScreens.kt - Authentication
app/src/main/java/com/nyasar/app/data/supabase/AuthRepository.kt - Cloud backup
app/src/main/java/com/nyasar/app/backup/BackupManager.kt
Other components
- Hiker
- Supabase
- Map tile services
Connections 39
- Hiker → Route library: choose route
- Route library → GPX parser: import GPX
- Route library → Route repository: manage routes
- GPX parser → Route repository: parsed track
- Route repository → Local route data: store locally
- Route library → Draw route: draw route
- Route library → Route preview: preview route
- Route preview → Offline maps: download area
- Offline maps → Offline map manager: manage regions
- Offline map manager → Map tile services: download tiles
- Hiker → Navigation screen: follow route
- Navigation screen → Track navigation: track progress
- Navigation screen → GPS location: observe GPS
- Track navigation → GPS location: consume fixes
- Map display → Map tile services: render tiles
- Hiker → Recording screen: start recording
- Recording screen → Recording service: control session
- Recording service → GPS location: collect fixes
- Recording service → Recording engine: process fixes
- Recording service → Activity data: save activity
- Hiker → Activity history: review activity
- Activity history → Activity data: read history
- Hiker → Waypoint tools: mark places
- Waypoint tools → Waypoint data: save waypoints
- Hiker → Browse routes: discover routes
- Browse routes → Browse repository: search routes
- Browse repository → Supabase: fetch routes
- Hiker → Publish routes: share route
- Publish routes → Publish repository: publish details
- Publish repository → Supabase: upload route
- Browse routes → Social actions: like or save
- Social actions → Supabase: update social data
- Hiker → Account screens: sign in
- Account screens → Authentication: authenticate
- Authentication → Supabase: manage session
- Cloud backup → Local route data: read routes
- Cloud backup → Activity data: read activities
- Cloud backup → Waypoint data: read waypoints
- Cloud backup → Supabase: sync account data