HabitForge is a Flutter app for building consistency through simple daily habits. You can create and edit habits, track completions, monitor streaks, and get local daily reminders.
- Habit creation and editing in a bottom sheet form.
- Daily completion tracking with streak logic.
- Profile analytics (summary stats, weekly chart, calendar day details).
- Local notifications for reminders (with app locale support).
- Light and dark theme switching.
- In-app language switching (
en,pl). - Onboarding flow shown on first launch.
- Framework: Flutter (Dart).
- State management: Provider + ChangeNotifier controllers.
- Persistence: Hive local storage.
- Notifications: flutter_local_notifications + timezone.
- Charts: fl_chart.
- Localization: Flutter l10n + ARB files.
- Testing: flutter_test + integration_test + mocktail.
The app follows a clean feature-oriented split by responsibility:
controllers/: UI-facing state and business coordination (HomeController,ThemeController,LocaleController, etc.).services/: persistence and external integrations (Hive storage, reminder scheduling, onboarding/theme/locale storage).models/: domain entities (for exampleHabit).views/: screens and higher-level stateful view composition.widgets/: reusable UI parts and feature widgets.core/: shared extensions, helpers, theme, and common UI utilities.l10n/: generated localization code and source ARB files.
MultiProvideris configured inlib/app.dart.- Each domain concern has its own
ChangeNotifiercontroller. - Widgets subscribe with
context.watchand perform actions viacontext.read. - Controllers orchestrate services and keep UI logic thin.
- Reminders are scheduled per habit when reminder is enabled.
- A habit marked as completed today should not fire a reminder for today.
- Reminder title/body follow the selected app locale (
en/pl).
lib/
app.dart
main.dart
controllers/
core/
l10n/
models/
services/
views/
widgets/
test/
integration_test/
assets/
screenshots/
| Light | Dark |
|---|---|
![]() |
![]() |
| Light | Dark |
|---|---|
![]() |
![]() |
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
- Create/edit habits with icon and description.
- Daily completion tracking and streak calculation.
- Local notifications with locale-aware content.
- Profile analytics (stats, weekly chart, selected day details).
- Theme and language switching.
- Actionable notification buttons (mark done / snooze).
- Reminder audit/debug screen in-app.
- Export/import habits (backup and restore).
- Optional cloud sync.
- Flutter SDK (matching the project SDK constraints).
- Xcode (iOS) and/or Android Studio toolchain.
flutter pub get
flutter runbash scripts/ci.shThis project is licensed under the MIT License. See LICENSE for details.









