habitt_v2

Habitt

Build habits that actually stick See your real consistency Designed for any mood Never miss a habit Track habits your way

A privacy-first, local-first habit tracker for iOS and Android, built with Flutter.

All data lives on your device. No analytics, no server-side data collection, no accounts required. Optional encrypted backup to your own Google Drive or iCloud, or a manual local backup file.


Available on

iOS (App Store): https://apps.apple.com/ba/app/habitt-private-habit-tracker/id6745617462 Android (Google Play): https://play.google.com/store/apps/details?id=com.shellz.habitt&hl=en


Features

Habit tracking (duh)

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

Currently worked on (0): (0) Apple Health and Health Connect integrations:

(1) Habit goals:

(2) Show habit next day if missed

(3) Daily planner:

(4) More notification personalizations:

(5) Premade habit benefits:

(6) Habits from onboarding:

Other features:


Tech stack

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, iCloud (icloud_storage)
Auth (backup only) Firebase Auth + Google Sign-In
Subscriptions RevenueCat
Encryption cryptography package (AES-256-GCM)
Secure storage flutter_secure_storage (platform keychain)

Getting started

Prerequisites

Install and run

flutter pub get
flutter run

Code generation

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

Project structure

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

Provider dependency order

StatsProvider
    └── HabitProvider ◄──► HabitStatsProvider
            └── CategoryProvider
                    └── BackupProvider

Common commands

# 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 notes

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.


Auto-generated files

Do not edit these directly — they are overwritten by build_runner:


AI usage

This project has been worked on since 2024, well before AI coding became good. The project structure, design, and app logic are all done by me (Shellz), not generated from scratch by AI. This is not a vibecoded app.

Claude is now used throughout this project only as a helper, not being the one doing everything. The focus areas are:

All AI-generated code is and will always be reviewed and tested by me before being shipped.


License

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