A minimal Android app for organizing and tracking counts across categories with automatic time tracking.
- Categories — Organize counters into named categories with summary stats
- Counters — Track tallies with +1, +5, +10 increment buttons
- Automatic Time Tracking — Timer starts when you open a counter, pauses when you leave
- Category Analytics — Total count, total time, average count, and most active counter
- Edit Dialog — Manually override count and time values
- Offline & Private — All data stored locally with Room, zero permissions required
- Material You — Dynamic color theming on Android 12+
| Home | Category Detail | Counter Detail |
|---|---|---|
| Category list with stats | Counters + analytics banner | Large count, live timer, increment buttons |
| Component | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose (Material 3) |
| Architecture | MVVM + ViewModels + StateFlow |
| Database | Room (SQLite) |
| DI | Hilt |
| Navigation | Jetpack Navigation Compose |
| Async | Kotlin Coroutines + Flow |
| Min SDK | 28 (Android 9) |
| Target SDK | 35 |
- Clone the repository
git clone git@github.com:pinnaclecode-solutions/CounterApp.git
- Open in Android Studio (Meerkat or later recommended)
- Sync Gradle and run on a device or emulator
com.example.counterapp/
├── data/
│ ├── local/ — Room entities, DAOs, database
│ └── repository/ — CounterAppRepository
├── di/ — Hilt modules
├── ui/
│ ├── home/ — Home screen (category list)
│ ├── category/ — Category detail screen
│ ├── counter/ — Counter detail + edit dialog
│ ├── components/ — Shared composables
│ └── theme/ — Material 3 theme
├── navigation/ — Nav graph and route definitions
├── util/ — TimeFormatter
├── CounterApp.kt — Application class
└── MainActivity.kt — Single activity entry point
This project is proprietary. All rights reserved.