Personal finance Android app built with Kotlin and Jetpack Compose to help users track income and expenses.
- ✅ Register income and expense transactions
- ✅ Real-time financial balance overview
- ✅ Transaction history list
- ✅ Category-based organization
- ✅ Clean and intuitive UI with Material Design 3
- ✅ Light and dark theme support
com.example.financasdebolso/
│
├── 📱 MainActivity.kt # Main entry point
│
├── 🧩 ui/ # UI layer
│ ├── components/ # Reusable UI components
│ │ ├── BalanceCard.kt # Total balance display
│ │ ├── TransactionItem.kt # Individual transaction card
│ │ └── TransactionList.kt # Scrollable transaction history
│ └── utils/
│ └── Formatters.kt # Currency and date formatters
│
├── 🧠 viewmodel/ # ViewModel layer
│ └── FinanceViewModel.kt # State and operation management
│
├── 🎯 domain/ # Business logic (Use Cases)
│ ├── GetTotalIncomeUseCase.kt # Calculates total income
│ └── GetTotalExpenseUseCase.kt # Calculates total expenses
│
├── 📊 model/ # Data models
│ └── Transaction.kt # Transaction data class
│
└── 🎨 ui/theme/ # Material 3 theme
├── Color.kt
├── Theme.kt
└── Type.kt
- MVVM Architecture — clear separation between UI and business logic
- Clean Architecture — domain layer with dedicated Use Cases
- Unidirectional Data Flow — state flows down, events flow up
- Single Responsibility — each component has one clear purpose
- Clean Code — readable and self-documented code
| Technology | Version | Description |
|---|---|---|
| Kotlin | 1.9+ | Modern, concise Android language |
| Jetpack Compose | 1.5+ | Declarative and reactive UI toolkit |
| MVVM | — | Architecture pattern |
| Clean Architecture | — | Use Cases for business logic |
| Coroutines | 1.7+ | Asynchronous programming |
| StateFlow | — | Reactive state management |
| Material 3 | Latest | Google's design system |
| Android SDK | 24+ | Compatible with 95%+ of devices |
- Android Studio Hedgehog (2023.1.1) or higher
- JDK 17+
- Android SDK 34
- Physical device or emulator with API 24+
-
Clone the repository
git clone https://github.com/TallesGuerra/FinancasDeBolso.git cd FinancasDeBolso -
Open in Android Studio
- File → Open → Select the project folder
-
Sync dependencies
- Gradle will sync automatically
-
Run the app
- Click Run
▶️ or pressShift + F10 - Select a device or emulator
- Click Run
- MVVM with ViewModel and StateFlow for reactive state management
- Clean Architecture with dedicated Use Cases for business logic
- Coroutines with
viewModelScopefor asynchronous operations collectAsState()for collecting StateFlow in Composables- Jetpack Compose layouts and Material Design 3 components
- List rendering with
LazyColumn - Data modeling with Kotlin data classes
- Modular and reusable component architecture
- Add and display transactions
- Real-time balance calculation
- Transaction history
- MVVM architecture with ViewModel + StateFlow
- Clean Architecture with Use Cases
- Coroutines integration
- Local persistence with Room Database
- Expense categories and filters
- Monthly spending charts
Made with ❤️ and Jetpack Compose

