Habit RPG is a mobile habit tracking app built with Kotlin and Jetpack Compose that gamifies daily productivity. Users create habits with different schedules (everyday, weekends, weekly, or custom days), complete them from a daily dashboard, and earn XP to level up. The app includes daily and weekly quests that reward bonus XP, a history log of completed habits, and reminder notifications for unfinished habits. The goal is to make habit building feel more engaging by incorporating light RPG-style progression mechanics.
The design includes low-fidelity layouts for the main screens (some are outdated like the Add/Create habit screen, which is now the HabitListScreen and the Profile page, which is now the History Screen)
- Composable functions
- LazyColumn for scrollable lists
- Material 3 components (TopAppBar, Card, Buttons, Dialogs)
- Navigation with NavHost and composable routes
- Animated XP progress bar using Compose animation APIs
- Custom Material theme generated with Material Theme Builder
- MVVM architecture
- Shared ViewModel across screens
- State management using Compose state and Flow
- Room Database
- Entities
- DAOs
- Repository
- Persistent storage of habits, completion history, and quest rewards
- Database automatically updates UI using Flow.
- WorkManager
- Background worker checks for incomplete habits
- Sends reminder notifications to the user
- Notification channels
- Runtime notification permission (Android 13+)
- System notifications reminding users about unfinished habits
- Dialog-based habit creation/editing
- Dropdown menus for habit actions
- Custom frequency selection and day-of-week chips
- Android SDK API 26+ (for notification channels)
- Notification permission on Android 13+
- Background work support through WorkManager
- The app runs entirely on-device and does not require internet access.
- Animated XP progress bar
- Habit completion state tracking with daily reset logic
- Daily/Weekly quest progress tracking with database
- Background reminder notifications using WorkManager
- Persistent quest reward tracking