A comprehensive personal finance management application for Android
Features β’ Screenshots β’ Installation β’ Usage β’ Architecture β’ Contributing β’ License
FinanceFlow Android is a feature-rich personal finance management application that helps you track your income, expenses, budgets, and financial goals. This is the Android version of the FinanceFlow iOS application, built with modern Android development practices.
- Transaction Management: Add, edit, and delete income and expense transactions
- Categories & Subcategories: Organize transactions with customizable categories
- Multiple Accounts: Manage multiple financial accounts
- Tags System: Tag transactions for better organization and filtering
- Recurring Transactions: Set up recurring income and expense patterns
- Transaction Templates: Create templates for frequently used transactions
- Budgets: Create and track budgets with different periods (daily, weekly, monthly, yearly)
- Financial Goals: Set and monitor progress towards financial goals
- Statistics & Analytics: View detailed statistics and insights about your finances
- Heatmap Visualization: Visual calendar heatmap showing spending patterns
- Forecast: Predict future financial trends based on historical data
- Modern UI: Built with Jetpack Compose and Material Design 3
- Dark Mode Support: Automatic theme switching based on system settings
- Search: Powerful search functionality to find transactions quickly
- Calendar View: Browse transactions by date with calendar interface
- Insights: Get personalized financial insights and recommendations
- Export Data: Export your financial data to CSV or PDF formats
- Import Data: Import transactions from CSV files
- Local Storage: All data stored securely on your device using Room database
- Backup & Restore: Full backup and restore capabilities
- PIN Protection: Secure your app with a PIN code
- Biometric Authentication: Use fingerprint or face recognition for quick access
- Local-Only Storage: Your financial data never leaves your device
This project follows the MVVM (Model-View-ViewModel) architecture pattern:
- Model: Room database entities and repositories
- View: Jetpack Compose UI components
- ViewModel: ViewModels that manage UI-related data
- Language: Kotlin
- UI Framework: Jetpack Compose
- Architecture Components:
- ViewModel
- LiveData / StateFlow
- Room Database
- Navigation Component
- Dependency Injection: Manual DI with ViewModelFactory
- Coroutines & Flow: For asynchronous operations
- Charts: Vico library for data visualization
- Material Design: Material Design 3 components
- Minimum SDK: Android 7.0 (API 24)
- Target SDK: Android 14 (API 36)
- Kotlin: 1.9.0+
- Gradle: 8.0+
- Android Studio: Hedgehog | 2023.1.1 or later
- Install Android Studio
- Install JDK 11 or later
- Clone this repository:
git clone https://github.com/rafaelmukhametov/FinanceFlowAndroid.git cd FinanceFlowAndroid
- Open the project in Android Studio
- Wait for Gradle sync to complete
- Build the project:
./gradlew build
- Run on an emulator or physical device:
./gradlew installDebug
- Connect an Android device or start an emulator
- Click "Run" in Android Studio or use:
./gradlew installDebug
- First Launch: The app will initialize with default categories and accounts
- Add Transactions: Tap the "+" button to add income or expenses
- Set Up Budgets: Navigate to Budgets screen to create spending limits
- Track Goals: Set financial goals in the Goals screen
- View Statistics: Check the Statistics screen for detailed insights
- Today Screen: Main dashboard showing recent transactions and quick actions
- Statistics: View charts and graphs of your financial data
- Insights: Get AI-powered financial insights and recommendations
- Budgets: Manage and track your spending budgets
- Settings: Configure app preferences, security, and data management
app/
βββ src/
β βββ main/
β β βββ java/com/rafaelmukhametov/financeflow/
β β β βββ data/
β β β β βββ dao/ # Room DAOs
β β β β βββ database/ # Room database setup
β β β β βββ entity/ # Room entities
β β β β βββ model/ # Data models
β β β β βββ repository/ # Data repositories
β β β βββ ui/
β β β β βββ components/ # Reusable UI components
β β β β βββ navigation/ # Navigation setup
β β β β βββ screens/ # App screens
β β β β βββ theme/ # App theming
β β β βββ util/ # Utility classes
β β β βββ viewmodel/ # ViewModels
β β β βββ security/ # Security services
β β βββ res/ # Resources (layouts, drawables, etc.)
β β βββ AndroidManifest.xml
β βββ test/ # Unit tests
βββ build.gradle.kts
Run unit tests:
./gradlew testRun instrumented tests:
./gradlew connectedAndroidTestContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Write unit tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design 3 for the design system
- Jetpack Compose team for the amazing UI framework
- Room database for local data persistence
- Vico library for chart visualizations
Rafael Mukhametov - GitHub
Project Link: https://github.com/rafaelmukhametov/FinanceFlowAndroid
Made with β€οΈ using Kotlin and Jetpack Compose
