habitt_v2

Habitt

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.


Available on

Android (latest apk): https://drive.proton.me/urls/D7R9D1QFTR#EkrK7Gt2aXM8 IOS (early access): https://testflight.apple.com/join/sQyTmewh


Features

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:


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
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 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.


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