A clean, focused savings tracker for iOS — set goals, log contributions, and watch your progress over time.
🧪 Beta available! Try the latest version on TestFlight and help shape the app before its App Store release.
- Multi-goal tracking — Create as many savings goals as you need, each with a target amount and optional deadline
- Contributions — Log deposits and withdrawals per goal, with an optional label and date
- Charts — Visualize your monthly net contributions over time with an interactive line chart
- iCloud Sync — Your data syncs automatically across your devices via CloudKit
- Customization — Choose your accent theme color and toggle haptic feedback
- 🤖 Local AI (coming soon) — On-device AI integration to give you insights on your savings
| Language | Swift 6.1 |
| UI | SwiftUI |
| Persistence | SwiftData + CloudKit |
| Architecture | Clean Architecture — modular Swift packages (Domain / Repository / Store / Provider) |
| Navigation | NavigationKit |
| Code Quality | SwiftLint · SonarQube · MobSF |
The project is split into 11 local Swift packages under Modules/, with a strict unidirectional dependency graph:
Utilities → Models → Persistence → Repositories → Stores → Providers → DesignSystem → Features
Each feature follows a layered pattern: View → ViewModel → Provider → Store → Repository → SwiftData.
See CLAUDE.md for a detailed breakdown of conventions and file placement.
Requirements: Xcode 16+, iOS 17+ simulator or device.
git clone https://github.com/theosementa/modulo-ios.git
cd modulo-ios
open Modulo.xcodeprojSelect the Modulo scheme, choose a simulator, and hit Run. No additional setup required.
Upcoming features and improvements are tracked on the GitHub Project board.
Feature requests and suggestions are welcome — feel free to open an issue.
Contributions are welcome! Feel free to open an issue to report a bug, suggest a feature, or discuss the architecture. Pull requests are appreciated.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Open a pull request against
develop
| Role | Person |
|---|---|
| Architect & Developer | Theo Sementa |
| App Icons Design | Zoé Cridel |
| AI Developer | Claude (Anthropic) |