A modern, privacy-first, and high-performance investment portfolio manager for Android.
Money2 is an open-source Android application designed to provide a seamless, performant, and completely secure experience for tracking your stock and ETF investments. Inspired by top-tier financial apps, Money2 is built with modern Android architecture and a strict local-first philosophy.
- Absolute Privacy: Zero backend servers. Zero cloud sync. All of your financial data and API keys are stored locally on your device, secured by Android's Hardware-Backed Keystore via
EncryptedSharedPreferences. - Lightning Fast: Built natively with Jetpack Compose and Kotlin Coroutines. Real-time market data is fetched entirely in parallel.
- Modern UI/UX: Adheres to Material Design 3 guidelines with Dynamic Color support, offering a beautifully fluid native Android experience.
- Seamless Multi-Currency: Automatically handles cross-border portfolios (e.g., USD and TWD) with real-time exchange rate calculations.
Money2 follows the Clean Architecture principles, strictly separating concerns into Data, Domain, and Presentation layers.
- UI Framework: Jetpack Compose
- Architecture: MVI (Model-View-Intent) & Clean Architecture
- Dependency Injection: Koin
- Concurrency: Kotlin Coroutines & Flow
- Local Database: Room
- Networking: Retrofit2 + OkHttp3
- Security: Jetpack Security Crypto (
EncryptedSharedPreferences)
- Android Studio Koala (or newer)
- JDK 17
- Android SDK (Min API 26 / Target API 37)
- Clone the repository:
git clone https://github.com/Max97k/money2.git cd money2 - Open the project in Android Studio.
- Configure the local proxy secret (if required by your custom worker). Add the following line to your
local.propertiesfile:PROXY_SECRET=your_secret_here - Build and deploy the application to your emulator or physical Android device.
We take data protection seriously.
- No Telemetry: We do not include any third-party tracking or analytics SDKs.
- Secret Management: All sensitive API keys are kept strictly within
local.propertiesand are injected securely at compile time viaBuildConfig. - Data Encryption: All local preferences are encrypted.
Please review our Privacy Policy for comprehensive details.
Dive deeper into our architecture and guidelines:
- 📝 Implementation Plan - Core architecture and development phases.
- 🤝 Contributing Guidelines - How to submit issues and PRs.
- 🔖 Third-Party Notices - Acknowledgments.
We welcome contributions from the community! Whether it's a bug report, a new feature proposal, or a code refactor:
- Fork the project.
- 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.
Please ensure your PR adheres to our Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.