Skip to content
← All work

Case study 02 / 04

iOS app2026Live

PRESS

Settle the bet before the 19th hole.

PRESS — Active scoring screen

PRESS tracks the money games golfers play alongside a round and turns hole-by-hole taps into a single who-owes-whom settlement screen. It runs entirely on-device with no account and no subscription, sold once rather than rented.

Role
Design, iOS and watchOS engineering — solo
Timeline
2026
Platform
iOS · watchOS
Pricing
Paid
Status
Live

01The problem

The side games golfers play — Nassau, Skins, Wolf, Stableford — have real scoring rules that nobody actually applies correctly on the course. The maths gets done from memory in the clubhouse, over a crumpled scorecard, and it turns into an argument. The apps that solve it want an account, a signal, and two to five hundred dollars a year.

02The approach

Everything is on-device and offline by construction: no account, no backend, no analytics SDKs, so the app works on the back nine where there is no signal and there is nothing to leak. Apple's Vision framework reads par and stroke index straight off a paper scorecard rather than making you type an eighteen-row table. Live Activities put the running match on the Lock Screen and Dynamic Island, and a watchOS companion means scoring is a wrist tap. Settlement is designed to stay correct when a round does not finish — rain stops play and the maths still resolves.

03The outcome

The argument moves from "what do I owe you" to "how did you make that putt". One purchase, no subscription, and no dependency on having signal.

04What I built
  • 01Six side games: Nassau, Skins, Wolf, Stableford, Bingo Bango Bongo, Nines
  • 02Tap-to-score with an automatic who-owes-whom settlement screen
  • 03On-device Vision OCR reads par and stroke index off a paper scorecard
  • 04Live Activities on the Lock Screen and Dynamic Island
  • 05Apple Watch companion driven from the iPhone round
  • 06Fully offline — no account, no cloud sync, no analytics
  • 07Correct settlement on partial rounds when play is abandoned
  • 08Saved players and courses; localised in five languages
05Screens
  • Active scoring
  • Game select
  • Settlement
  • Player setup
  • Season
  • Scorecard
  • Splash
06Built with
  • Swift
  • SwiftUI
  • watchOS
  • Vision
  • Next.js
  • Tailwind CSS