A modern, simple habit tracker for Android. Build streaks, track measurable goals, keep routines in sync — no ads, offline, backup-safe.
Original by @zaved707 ©2025 Zaved Ahmad (Apache-2.0) — see LICENSE. Fork maintained by binbot @ Codeberg · GitHub mirror.
- Tracking: measurable habits (
repetitionPerDay+measurementUnit+isNegativelimit), flexibleDaily / Weekly / Customfrequency/cycle,skip/partial/NotNeededstates,yes/notapIncomplete → Completed → Skippedand measurablePartial → Absolute → AbsoluteMore → Skipped. - Visuals: per-habit colors (shared
HabitColorspalette for habits/routines/notifications), heatmap + full grid dialog,FrequencyChart/PieChart/StreakChartwith habit-color theming and legends. - Routines: stacked habits (
RoutineTable+RoutineItem+sourceRoutineId), unifiedHabits & Routineslist with stickyRoutines/Habitsheaders (TopAppBarsmall),FAB → Habit / Routine, dropdown tick + skip per step and routine headerSkip all(Dropdownchecklist, no timer v1). - Reminders: per-habit time + global toggle + default (
SettingsNotifications), opportunistic (only if still due), quiet hours22:00–07:00,>3group summary, habit-color notification,SCHEDULE_EXACT_ALARM+POST_NOTIFICATIONS. - System: reorderable
ReorderableLazyList+ archiving/filters (ShowArchive/ShowActive),Glancewidget (tap to complete/skip),Light / Dark / System+Amoled+Dynamic Color(S+), top barHabits & Routines. - Data:
Room v6AutoMigration 5→6(habitreminderEnabled+Routine+sourceRoutineId), nofallbackToDestructiveMigration, WAL checkpoint raw SQLite export/import.
- Codeberg Releases APK (primary): https://codeberg.org/binbot/Yet-Another-Habit-Tracker/releases
- GitHub Releases APK (mirror): https://github.com/binbot/Yet-Another-Habit-Tracker/releases
No Obtainium / F-Droid / IzzyOnDroid listing for this fork — install the APK from the releases above.
- Jetpack Compose +
Compose BOM 2025.06.00+Material3 1.4.0-alpha15+Navigation 3 1.0.0-alpha05+Reorderable 2.5.1 - Koin 4.0.3 for DI, Room 2.7.1 for DB
- MaterialKolor 3.0.0-beta07 for per-habit dynamic schemes, Kizitonwose Calendar 2.7.0 for week/grid calendars
- Kotlin
2.2.0-RC2, AGP8.13.2,targetSdk 36minSdk 26, JDK 17, Gradle 8.13
- Custom starting day of week
- Measurable habits (
>=0.1.0) - Data backup and restore (
>=0.2.0) - HomeScreen widgets (
>=0.4.0) - Routines — stacked habits (
>=0.4.x) - Reminders + quiet hours (
>=0.4.x) - Heatmap legends + habit-color charts
- Routine stats page (heatmaps + attribution
routine vs habit) - Table form habits view (deferred)
- Widget partial / long-press improvements
No internet; permissions only POST_NOTIFICATIONS, SCHEDULE_EXACT_ALARM, RECEIVE_BOOT_COMPLETED. Fully offline, no trackers. Export/import is a raw SQLite file copy with pragma wal_checkpoint(full); Room throws on version mismatch rather than wiping (No fallbackToDestructiveMigration). DB version 6.
# JDK 17, Gradle 8.13 wrapper, SDK 35/36 at /home/b/Android/Sdk
./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
# if fresh checkout fails: sdkmanager --licensesSee AGENTS.md for branch-per-step workflow (push to both remotes only after device smoke test).
Apache-2.0 — see LICENSE. Original ©2025 Zaved Ahmad.