Building SpendWise: From Idea to App Store
The story behind SpendWise - why we built it, the challenges we faced, and what we learned along the way.
## The Problem
Managing personal finances shouldn't require a degree in accounting. Yet most finance apps are either too simple (just a calculator with categories) or too complex (dashboards that look like Bloomberg terminals).
We wanted something in between - an app that tracks spending, manages budgets, and handles the one thing most apps ignore: money lent to friends.
The Tech Stack
SpendWise is built entirely with SwiftUI and SwiftData. We chose native development because:
- **Performance**: No JavaScript bridge means instant interactions - **Privacy**: All data stays on-device by default - **Integration**: Native access to iCloud, widgets, and Apple Pay
The Lending Feature
This was the feature that made SpendWise different. Most finance apps treat lending as an afterthought. We made it a first-class feature because tracking who owes you (and who you owe) is a real daily need.
Every repayment is logged, partial payments are supported, and you can send gentle reminders - all without awkward conversations.
Multi-Currency Support
Supporting 150+ currencies wasn't just about conversion rates. We had to think about:
- How to display different currency symbols - Handling currencies with no decimal places (like JPY) - Real-time vs. historical exchange rates
What We Learned
Building an indie app is a lesson in focus. You can't build everything, so you have to pick the features that matter most. For SpendWise, that meant nailing the basics - fast entry, clear budgets, and reliable sync - before adding anything else.