Case Study

MyFinance — Finance Tracking App

A native iOS app for tracking income and expenses, managing budgets, and analyzing spending trends — built in SwiftUI.

2025 – 2026
iOS

Overview

MyFinance started as a personal experiment in SwiftUI — a way to learn Apple's declarative UI framework while solving a problem I had: keeping track of where my money actually went each month. The challenge wasn't the math; it was building an interface I'd actually open every day.

The app is built natively for iOS, with the dashboard as the home screen showing recent transactions and any budget categories close to (or over) their monthly limit. Tapping a transaction or category drills into detail views with breakdowns and trends.

Design choices favor information density on the dashboard and breathing room on the detail views. Color is reserved for one job: signalling budget health — calm tones when you're on track, warmer tones when a category is heading past its cap.

Highlights

  • Track income and expenses, organized by category.
  • Manage monthly category budgets with alerts.
  • Analyze spending with charts and trend insights.
  • Dashboard with recent transactions and budget alerts.

Design Notes

01

Dashboard-first

Most finance apps bury the at-a-glance view behind tabs. MyFinance puts the budget summary and recent transactions on the launch screen — the things you check daily are the first things you see.

02

Category color coding

Each spending category owns one color across the entire app. The same hue carries through the dashboard ring chart, the category list, and individual transactions — building a quick visual memory of where money lives.

03

Quiet alerts

Budget warnings appear as a colored ring around the category icon, not as push notifications. The app never interrupts; you see warnings only when you choose to open it.

04

Native by default

Built with SwiftUI and Swift Charts so it feels at home on iOS — system fonts, native gestures, Dynamic Type support, dark mode out of the box. No web wrappers, no React Native.