A cross-platform habit tracker built with Flutter, demonstrating modern app architecture best practices.
Track daily habits, record completions, and monitor streaks. Supports multiple platforms (Android, iOS, web) with a Material 3 UI that adapts to your device's color scheme.
- Framework: Flutter (Dart)
- State management: MVVM with
ChangeNotifier+ListenableBuilder - Dependency injection:
provider - Navigation:
go_router - Persistence: SQLite via
sqflite - Theming: Material 3 with seed-generated colors and platform dynamic color (Android 12+)
Follows the Flutter architecture recommendations:
UI layer (by feature) Data layer (by type)
───────────────────── ────────────────────
View ⇄ ViewModel → Repository → Service
- Views:
StatelessWidget— display UI state, no business logic - ViewModels:
ChangeNotifier— manage UI state, expose commands - Repositories: single source of truth per data type
- Services: stateless wrappers around external data sources (SQLite)
flutter pub get
flutter runRun tests:
flutter testGNU General Public License v3.0 — see LICENSE.