How sufiyan-sabeel/flow-tracker works
Flow-tracker is a private, offline habit-tracking app. The main user workflow is to record habits and tasks, then review today’s completion, streaks, statistics, and history. The README describes the Flutter feature and storage layers, but those source files are absent from the supplied tree; their links below reflect documented architecture rather than inspected implementation. The sampled native code shows Android host bridges and widget action/rendering paths, plus iOS widget payload handling. Other platform-specific app behavior is not mapped where the evidence is insufficient.
Main entry points: app App shell · core Local storage · WidgetActionReceiver.kt Widget action receiver · WidgetActionWorker.kt Widget action worker
Components 19
Flutter app
- App shell
lib/app
Tracking and progress
- Habit tracking
lib/features - To-do tracking
lib/features - Focus sessions
lib/features - Progress views
lib/features - Settings and themes
lib/features
Local data services
- Local storage
lib/core - Backup and import
lib/services - Widget payload service
lib/services
Android integration
- Android Flutter host
android/app/src/main/kotlin/com/flowtracker/app/MainActivity.kt - Focus service
android/app/src/main/kotlin/com/flowtracker/app/FocusService.kt - Android home widgets
android/app/src/main/kotlin/com/flowtracker/app/GlanceWidgets.kt - Heatmap renderer
android/app/src/main/kotlin/com/flowtracker/app/HeatmapRenderer.kt - Widget action receiver
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionReceiver.kt - Widget action worker
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionWorker.kt - Widget action queue
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionQueue.kt
iOS widgets
- Shared widget payload
ios/FlowTrackerWidgets/Payload.swift - iOS widgets
ios/FlowTrackerWidgets
Other components
- Phone user
Connections 20
- Phone user → App shell: uses
- App shell → Habit tracking: routes to
- App shell → To-do tracking: routes to
- App shell → Focus sessions: routes to
- App shell → Progress views: shows
- App shell → Settings and themes: configures
- Habit tracking → Local storage: persists locally
- To-do tracking → Local storage: persists locally
- Focus sessions → Local storage: persists locally
- Progress views → Local storage: reads history
- Backup and import → Local storage: backs up
- Widget payload service → Android home widgets: feeds payload
- Android Flutter host → Focus service: bridges focus
android/app/src/main/kotlin/com/flowtracker/app/MainActivity.kt - Android Flutter host → Widget action receiver: registers bridge
android/app/src/main/kotlin/com/flowtracker/app/MainActivity.kt - Android home widgets → Heatmap renderer: refreshes heatmap
android/app/src/main/kotlin/com/flowtracker/app/GlanceWidgets.kt - Widget action receiver → Widget action queue: enqueues actions
- Widget action receiver → Widget action worker: schedules work
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionReceiver.kt - Widget action worker → Widget action queue: reads actions
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionWorker.kt - Widget action worker → Heatmap renderer: refreshes content
android/app/src/main/kotlin/com/flowtracker/app/WidgetActionWorker.kt - Shared widget payload → iOS widgets: supplies data
ios/FlowTrackerWidgets/Payload.swift