A simple and clean Counter App built using Jetpack Compose and MVVM Architecture.
This app demonstrates how to separate UI state from business logic using a ViewModel.
Users can increment or decrement the counter, and the UI updates automatically thanks to Compose’s reactive state system.
⚠️ Note: This project contains only MVVM + UI implementation.
More advanced features will be added later.
👉 APK Link:
https://drive.google.com/file/d/1hBnkp2EPTRE1NE-LMl-B2FjmhVMqgFUV/view
- Clean and modern UI using Material 3
- Card-based counter display
- Layout built entirely with Compose
- Stateless UI connected to ViewModel state
ViewModelmanages counter state- UI observes state using
mutableStateOf() - Functions for increment and decrement
- Fully reactive state updates
- UI automatically re-composes on value change
- No need to manually refresh the screen
- Clean separation of logic + UI
- Add reset button
- Add animations to counter
- Add Haptic feedback
- Save counter using DataStore
- Add dark/light theme toggle
- Add unit tests for ViewModel
Feel free to fork this project and enhance functionality.
PRs are always welcome!
If this project helped you understand MVVM + Compose basics, please give it a ⭐ on GitHub!