Challenge
Solo iOS Developer
MoneyManager is an iOS-first personal finance app focused on privacy-first tracking. It supports manual transaction logging, timeline grouping, dashboard insights, merchant memory, budget warnings, CloudKit sync, and export.
I designed the architecture, implemented Core Data + CloudKit persistence, built the repository/service/viewmodel layers, and delivered transaction, dashboard, settings, notifications, and export flows end-to-end.
Problem
“How might we help users track spending and stay in control of money with minimal friction while keeping personal data private and device-centric?”
User Needs
A fast and trustworthy way to record spending and monitor financial health daily.
Constraints
Must stay low-cost, privacy-first, and function smoothly offline with eventual sync.
Internal Factors
Need to keep architecture maintainable while shipping many features quickly as a solo developer.
External Factors
Users are sensitive about financial privacy and expect reliable syncing and clear insights.
Solution
A layered SwiftUI app (UI -> ViewModel -> Repository -> Core Data) backed by NSPersistentCloudKitContainer, with modular services for transaction entry, dashboard analytics, merchant suggestions, budgets, notifications, and export.
Deliverables
- 01Core Data entity model and repository layer
- 02Transaction CRUD and timeline interface
- 03Dashboard financial insights and budget warnings
- 04Merchant memory and suggestion services
- 05Notification scheduling and settings modules
- 06CSV/JSON export service
- 07Automated unit test suite
Key Decisions
- 01Privacy-first architecture with Core Data as local source of truth
- 02NSPersistentCloudKitContainer for seamless sync/restore
- 03Strict UI -> ViewModel -> Repository separation for maintainability
- 04Configurable budget thresholds and category budget alerts
- 05Service-level and viewmodel-level automated tests for critical flows
Process
Architecture and domain modeling
Core Data + CloudKit persistence setup
Repository and service layer implementation
Transaction, dashboard, and settings delivery
Automated test coverage and iterative refinement
Impact
Delivered a production-ready finance foundation with validated CRUD flows, timeline grouping, dashboard calculations, budget alerts, iCloud-ready sync plumbing, and broad unit-test coverage across repositories/services/viewmodels.
Team
- GustavoSolo iOS Developer