A modern, privacy-first personal finance tracker built with Jetpack Compose.
Cashio is a production-grade personal finance app built with Jetpack Compose and clean architecture principles. It focuses on clarity, speed, and thoughtful UX, enabling users to track expenses and income with calendar-based insights, meaningful visuals, and smooth interactions.
Designed and built as a real product, not a tutorial or demo app.
Cashio was built to address a common weakness in many expense trackers:
They show numbers, but don’t help users understand their spending.
Core design principles:
- Calendar-first exploration instead of endless lists
- Visual spending intensity via heatmaps, not raw totals
- Fast, low-friction data entry
- Local-first and privacy-respecting by default
Every screen is designed to answer:
What did I spend, when, and why?
- Add expenses & income with categories, notes, date & time
- Edit transactions seamlessly
- Clear validation and error handling
- Monthly calendar heatmap showing spending intensity
- Tap any date to instantly filter transactions
- Day-grouped expandable transaction cards
- Monthly spend overview
- Category-wise breakdown
- Net income vs expense indicators
- Compose animations for hierarchy and feedback
- Haptic feedback for meaningful actions
- Material 3 styling with semantic colors
- Local-first data handling
- No ads, no tracking SDKs
- Designed with Play Store policy compliance in mind
Cashio follows Clean Architecture + MVVM with strict separation of concerns.
data/
├── local/
├── repository/
domain/
├── model/
├── usecase/
presentation/
├── add/
├── history/
├── analytics/
├── settings/
└── common/
ui/
├── components/
├── cards/
├── navigation/
└── theme/
- Single source of truth via immutable UI state
- Unidirectional data flow
- Business logic isolated in UseCases
- UI is fully state-driven
- No UI-side sorting or filtering
- ViewModels own all transformation logic
- Predictable, testable state flows
- Dynamic percentile-based intensity
- Automatically adapts to individual spending habits
- Avoids hardcoded thresholds that break across users
- Pre-sorted day groups computed once
- Lazy rendering only where data size demands it
- Zero recomposition loops from derived UI logic
- Motion used to communicate hierarchy, not decoration
- Haptics reinforce intent
- Animations never block user input
Feature-complete core flows; polishing analytics and performance; preparing for Play Store compliance.
- ViewModel logic is isolated and testable
- UI driven by deterministic state
- Defensive error handling for all data flows
(Unit & UI tests planned as a next milestone.)
git clone https://github.com/your-username/cashio.gitOpen in Android Studio Hedgehog+, sync Gradle, and run on an emulator or device.
This project is currently maintained by a single developer.
Thoughtful discussions, suggestions, and PRs are welcome — especially around:
- Analytics insights
- Performance optimizations
- Accessibility improvements
Cashio aims to be:
A fast, beautiful, and trustworthy personal finance companion, built with the same rigor and care as professional fintech products.





