The starting point
A finance app holds some of the most private data a person has. The goal was a polished native app that needs no account and no backend at all, yet syncs across devices and can be shared with a partner.
What we were responsible for
We designed and built the app: interface, domain logic, sync and sharing, widgets, automated tests and the build pipeline.
What we built
-
Everyday money, done properly
Accounts, transactions, budgets and recurring payments, live multi-currency, CSV, search and app lock, plus reports for spending, cash flow and net worth over any period.
-
Sync and sharing without a server
Data lives in the user's private iCloud database; a household partner joins through an iCloud share invite.
-
Capture without typing
Apple Pay purchases and receipts can be captured automatically, receipts are read on the device, and Siri answers questions about spending.
-
Widgets
Home-screen widgets read a snapshot the app shares with them.
-
Tested domain logic
Business rules live in a separate Swift package with its own test suite; UI smoke tests run on every build.
Why it was hard
-
Two people, one ledger
Shared data has to merge correctly between two Apple IDs, with no server to arbitrate.
-
Strict concurrency
The app, the package and the widgets compile under Swift 6 strict concurrency.
Where it stands
Version 1.6 builds on Xcode Cloud, with the full test suite on the main branch and delivery to TestFlight.