Pathivu (Malayalam പതിവ് — "habit / routine") is a modern, high-performance Android habit tracker from the Hora family. It is built with the same Material 3 Expressive (M3E) design language as Varisankya: dynamic colours, Google Sans Flex, heavily rounded surfaces, tactile haptics, and a completely toast-free, fluid experience.
- Build or quit habits — daily, specific weekdays, "X times per week", or "X days per month"; plus quit habits (bad addictions) tracked by clean-day streaks and a daily score (
done − slips). - Satisfying check-off — a spring-animated, haptic tap to mark a habit done for the day.
- Streaks & momentum — current streak (🔥), longest streak, and a per-habit week-dot strip.
- Today hero — an expressive circular progress ring showing how many habits are done today.
- 16-week heatmap — a GitHub-style contribution grid of your consistency, in the Stats screen.
- Daily reminders — one tidy daily notification listing the habits still due as a bullet list; tap it to open the app. Timezone-aware (chained one-shot worker anchored to local wall-clock).
- Edit any day — a calendar Day editor to back-fill or correct completions on past dates (including archived habits' history).
- Reorder & archive — long-press drag to reorder habits; deleting a habit archives it (history kept) with restore or permanent-delete from Settings.
- Material You — the whole UI themes to your wallpaper on Android 12+.
- Private & synced — Google Sign-In + Cloud Firestore, scoped strictly per user.
- Expressive icon — adaptive launcher icon rendering പതി (pa + thi) in Malayalam, matching the Hora family identity.
- Platform: Android 15+ (Min API 35, Target API 36)
- Language: 100% Kotlin
- UI: Material Components 1.14.0-alpha08 (Material 3 Expressive), View system + ViewBinding
- Architecture: MVVM with a clean loading policy (shimmer skeleton + reveal)
- Backend: Firebase (Auth + Firestore + Analytics), project
hora-pathivu - Reminders: WorkManager (chained
OneTimeWorkRequest)
./gradlew :app:assembleDebug # debug APK
./gradlew :app:assembleRelease # signed release APK
./gradlew :app:bundleRelease # signed release AAB (Play)- Retrieve build secrets securely from Bitwarden:
This injects
./retrieve_secrets.sh
app/google-services.json, thepathivu-upload-keykeystore,app/play_console_key.json, and the signing credentials intolocal.properties. - Build:
./gradlew assembleDebug.
See PUBLISHING_SECRETS_RECOVERY.md and CLI_RELEASE_GUIDE.md.
MIT.