A privacy-first, local-first habit tracker for iOS and Android — built with Flutter.
All habit data lives on-device. No analytics, no server-side data collection, no accounts required. Optional encrypted backup to your own Google Drive.
Android (latest apk): https://drive.proton.me/urls/D7R9D1QFTR#EkrK7Gt2aXM8 IOS (early access): https://testflight.apple.com/join/sQyTmewh
Habit tracking
Insights & stats
Premade templates Quick-start habits: wake up early, go to bed early, brush teeth, skin care, shower, drink water, gym, running, walking, nutrition, medications, studying, reading, work, research and productivity sessions.
Reminders
Appearance
Backup
Localization English, German, Spanish, Italian, Bosnian
Future features
Habit goals:
Show habit next day if missed
Daily planner:
More notification personalizations:
Premade habit benefits:
Habits from onboarding:
Other features:
| Layer | Technology |
|---|---|
| Framework | Flutter / Dart 3.7+ |
| State management | Provider (ChangeNotifier) |
| Local storage | Hive CE |
| Notifications | Awesome Notifications |
| Charts | fl_chart |
| Backup storage | Google Drive API |
| Auth (backup only) | Firebase Auth + Google Sign-In |
| Subscriptions | RevenueCat |
| Encryption | cryptography package (AES-256-GCM) |
| Secure storage | flutter_secure_storage (platform keychain) |
lib/firebase_options.dart must be presentflutter pub get
flutter run
After modifying any Hive model (@HiveType / @HiveField), localization files (.arb), or asset lists, regenerate the derived files:
flutter pub run build_runner build --delete-conflicting-outputs
Watch mode during active development:
flutter pub run build_runner watch
lib/
├── models/ # Hive data models (Habit, Day, Category, …)
├── providers/ # ChangeNotifier state providers
├── services/ # Business logic (backup, billing, notifications, colors)
├── pages/ # Screens
│ ├── main_pages/ # Home, Habits, Calendar, Profile, Settings
│ ├── onboarding/ # First-run flow
│ └── other_pages/ # Add/edit habit, backup, notifications, paywall, …
├── widgets/ # UI components organized by feature
├── util/ # Helpers and utilities
├── l10n/ # ARB localization files
└── generated/ # Auto-generated assets and l10n — do not edit
StatsProvider
└── HabitProvider ◄──► HabitStatsProvider
└── CategoryProvider
└── BackupProvider
# Analyze / lint
flutter analyze
# Run tests
flutter test
# Run a single test file
flutter test test/services/habit_strength_insight_text_service_test.dart
# Build
flutter build apk --release # Android
flutter build ios --release # iOS
flutter build web # Web
| Platform | Details |
|---|---|
| Android | Min SDK 21, Target SDK 35, Compile SDK 36, Kotlin 2.3.0, Gradle 8.9.1 |
| iOS | Deployment target iOS 15.6+, CocoaPods |
| Web | Supported; splash screen disabled |
Android release builds require a keystore referenced in android/app/build.gradle.kts.
Do not edit these directly — they are overwritten by build_runner:
lib/hive/hive_adapters.g.dartlib/hive/hive_registrar.g.dartlib/generated/ (entire directory)*.g.dart fileThis project has been in active development since 2024 — long before AI-assisted coding became mainstream. The architecture, design decisions, and core logic are the product of hands-on engineering, not generated from scratch by an AI. This is not a vibecoded app.
AI tools (primarily Claude) are used selectively throughout this project as a development aid. The focus areas are:
All AI-generated code is reviewed and tested by me before it lands in the codebase. Nothing ships on AI output alone.
This project is licensed under the Business Source License 1.1 (BSL 1.1).
| Document | Link |
|---|---|
| Privacy Policy | ashellz.github.io/habitt_v2/privacy |
| Terms of Service | ashellz.github.io/habitt_v2/tos |
Privacy at a glance: Habitt does not collect your habit data. Everything stays on your device. If you enable Google Drive sync, data is encrypted on-device before transfer — we cannot read it. No analytics, no ads. See the full Privacy Policy for details.
Terms at a glance: You own your data; we own the app code. Subscriptions are voluntary support payments and currently do not unlock additional features. The app is provided “as is” — always maintain your own backups. See the full Terms of Service for details.
For inquiries: ibrsboy32@proton.me