All projects

Case study · Mobile apps

Money App

Personal finance app: automatic MB Bank transaction sync, auto-categorisation, iPhone home-screen widgets and a 50/30/20 budget.

Role
Personal project
Period
2026
Company
Personal
Status
In development

Context

Everyone gives up on logging expenses by hand. This app pulls transactions straight from an MB Bank account, categorises them, and puts the budget on the iPhone home screen.

Problems & solutions

  1. 01

    Three parts, three languages

    A Node/TypeScript service talks to MB Bank, a Laravel 12 API handles sync, categorisation, budgets and APNs push, and a native iOS app is written in SwiftUI with WidgetKit widgets and App Intents.

  2. 02

    No bank credentials on the device

    MB Bank login details are sent straight to the backend over HTTPS and stored only in encrypted form in the database. The iOS app never stores bank credentials — only a Sanctum token in the Keychain. Hard-coded credentials and IPs in the old service were removed before the first commit.

  3. 03

    Acting from the home screen

    A WidgetKit widget shows spending at a glance. Three App Intents — add a transaction, change a category, see today's spending — work without opening the app. The widget has its own snapshot tests.

Outcomes

  • In development: the MB Bank service, the Laravel backend and the SwiftUI iOS app all have working source code.

Personal, single-user project. The source code is private.

Next project

WDEV Lab

Continue
Get in touch!