CoupleBudget simplifies shared money management by clearly separating three concepts that most finance apps mix together:
- Accounts — where real money lives (bank accounts, cash, cards)
- Buckets — budgets and savings goals unified in one concept
- People — personal loans without a complex loans system
Coming soon
The project is split into two clear layers:
Shared domain logic, completely independent from the UI.
CoupleBudgetCore
├── Models — data structures (Account, Bucket, MoneyMovement)
├── Rules — business logic validations
└── Calculators — derived financial values (balances, totals)Built with SwiftUI following MVVM.
App
├── ViewModels — prepare Core data for the UI
└── Views — SwiftUI interfaceThe Core has no knowledge of the UI. The UI depends on the Core. Dependency flows in one direction only.
- Models are passive — structs that hold data only, no logic
- Validation returns all errors at once — better UX for forms, no interruptions from Swift's throws mechanism
- Balances are computed values — derived from movements, never stored directly
- ID-based references — models reference each other by UUID, avoiding duplication and inconsistencies
The Core is fully unit tested with Swift Testing, covering all business logic independently from the UI.
CoupleBudgetCoreTests
├── Income validations
├── Expense validations
├── Transfer validations
├── Amount validations
└── Balance calculations- Core domain models (Account, Bucket, Person, MoneyMovement)
- Business logic validations (MoneyMovementRules)
- Balance calculations (BalanceCalculator)
- Unit tests for all Core logic
- Dashboard UI with real balances
- Create and manage accounts
- Record income, expenses and transfers
- Data persistence with SwiftData
- App Store release
- Xcode 26 or newer
- iOS 18+ device or simulator
- Clone the repository:
git clone https://github.com/franciscoxcode/CoupleBudget.git- Open the project in Xcode:
open CoupleBudget/CoupleBudget.xcodeproj- Build and run on a simulator or real device.
Copyright (c) 2026 Francisco Javier Casillas Pérez. All rights reserved. This project is proprietary and confidential. See LICENSE for details.