Case study: Zenoney - 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.

Project
Zenoney
Year
Service
iOS Development, Product Design

Zenoney

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 menu scanner that picks what to order, with the math done on the phone

An iOS app that reads a restaurant menu from one photo, checks it against what you logged in Apple Health today and ranks the dishes. A language model reads the menu; Swift does the math.

Read more

Language lessons from the game on your screen

Looté is an iOS app for people learning a language from the games they already play. It reads a game screen, explains each line in the context of the scene, and turns what you save into spaced-repetition flashcards.

Read more

Made to order - Bring the problem to the bench.

A rough idea is enough to start. You’ll talk directly with the person who will build it.

Bench

São Paulo