Case Study - Budgeting that stays calm

A native iOS expense tracker built around one question, how much can I spend, with automatic carryover, locale-aware currency, and a glass interface people are willing to open daily.

Client
Zenoney
Year
Service
iOS Development, Product Design
Zenoney dashboard: the monthly budget ring

Overview

Budgeting that stays calm

Most expense trackers are ledgers that make you feel behind. Zenoney is built the other way round: one ring, one number, and a month that forgives you for the days you underspent. Native iOS, glass-morphic, and quiet enough to open every day.
  • Monthly budgets
  • Automatic carryover
  • Category tracking
  • Visual insights
  • EN + PT-BR
  • Private by default

Product decisions

What we chose, and why

Five decisions that shaped the app more than any feature list did.
01

One question per screen

A budgeting app earns its place by answering “how much can I spend?” before anything else. The dashboard is a single ring and a single figure; everything else scrolls below it.

02

Carryover as a rule

Underspend a month and the remainder rolls forward instead of vanishing at midnight on the 31st. Budgeting apps that reset punish the good months.

03

Warn, do not scold

The ring shifts as the month tightens and the copy changes with it, from “Great start, plenty left to spend” early to a visual warning near the limit. Nobody needs a red alarm over a coffee.

04

Two languages, one currency model

English and Portuguese ship together, with locale-aware currency formatting throughout, so US$ 1.911,03 reads correctly whichever language the phone is set to.

05

Glass, not gloss

Layered translucent cards on a dark ground, with haptics on the actions that commit something. The finish is the point: a money app people are willing to open daily.

Product

Three screens, one job

Welcome states the promise, the dashboard answers the daily question, and budget settings is where carryover and overspending are explained in the user’s own words.
Dashboard for August 2025: a budget ring showing the amount left to spend above recent expenses

Dashboard · the ring

Welcome screen with Track Expenses and Monthly Budgets cards on a dark ground

Welcome

Budget settings sheet with a monthly budget field and cards explaining carryover and overspending

Budget settings

Stack & proof

Native, local, and locale-aware

Entries live in SwiftData on the device. There is no account to create, no server to trust, and no analytics SDK counting what you spend.
Left to spend
$1,911.03

The ring counts down from the month’s budget as expenses land

Languages
2

English and Portuguese, with locale-aware currency

Carryover
100%

Of an unused budget rolls into the next month

Trackers
0

Analytics SDKs, accounts, or servers involved

Technologies

  • Swift
  • SwiftUI
  • SwiftData
  • Charts
  • Core Haptics
  • String Catalogs
  • iOS 17+

SwiftUI carries the glass-morphic layering, Swift Charts the spending breakdowns, and String Catalogs the two languages. Amounts go through Swift’s FormatStyle rather than string concatenation, so US$ 1.911,03 and $1,911.03 are the same value rendered for two audiences.

More case studies

A course platform for building with AI, still in the studio

Mellofattura’s course platform: build real digital products with AI, from prototype to publication, lesson by lesson. Two courses are live; more are in production.

Read more

Curated agent skills for iOS UX and accessibility

A research-led skills framework that started as a Mackenzie TCC, shipped as an open agent plugin, and is now a Springer-accepted workshop paper, with Camera Ready underway for JIIHC 2026 in Chile.

Read more

Tell us about your project

Where we are

  • São Paulo
    São Paulo, SP
    Brazil