A native Android budgeting application built using Kotlin, Jetpack Compose, and Material Design 3.
Designed to provide efficient personal financial management, the application allows users to track financial inflows and outflows, manage subscriptions, monitor savings, and log investments through a clean, adaptive interface.
- Real-time balance calculations including total inflow, outflow, and net balance.
- Graphical progress indicators showing the monthly savings rate.
- Categorized breakdown of expenses using clean progress indicators.
- Support for logging and editing multiple distinct income sources and corresponding amounts.
- Dropdown category filter to switch between expense lists.
- Unified tracking for:
- Fixed Expenses (Rent, utilities, bills)
- Subscriptions (Recurring memberships, services)
- Groceries (Everyday food purchases)
- Entertainment (Leisure, games, dining out)
- Dedicated panels to manage savings and investment balances.
- Slider-based adjustments for quick financial updates.
- Multi-language support (English and French), dynamically toggled.
- English configured as the default language.
- Free text input for currency symbols, supporting any global symbol or ISO code.
- Single-click export of application state to clipboard or share sheet as a JSON string.
- Import capability to instantly restore application state from a JSON backup.
- Language: Kotlin 1.9.22
- UI Framework: Jetpack Compose (Material 3)
- State Management: Single Activity architecture with central state persistence.
- Data Persistence: SharedPreferences and Gson serialization.
- Build System: Gradle Version Catalog (libs.versions.toml) for dependency alignment.
- Assets: Adaptive vector launcher icon.
- Android Studio Koala or newer.
- Android SDK (API Level 26 or higher).
- JDK 17.
- Clone the repository:
git clone https://github.com/ArthurAugis/budgetapp
- Open Android Studio, select Open, and navigate to the project directory.
- Allow Gradle to sync and build the project.
- Run the application on an emulator or a connected physical device.
Using the Gradle Wrapper, compile the debug APK by running:
./gradlew assembleDebugThe compiled APK will be generated at the following path:
app/build/outputs/apk/debug/app-debug.apk