Building Current Recovery Score: My First iOS App
I am obsessed with health data. Sleep trends, HRV, resting heart rate. I track all of it through my Apple Watch and Apple Health, but I was never satisfied with how the data was presented. A dozen separate numbers, no single read on how my body actually felt.
So a few months ago I decided to push myself to build something. I had never shipped an iOS app before. I wanted to learn Swift, and I wanted to build something I’d actually use every day.
The result is Current — Recovery Score.
What It Does
Current reads your Apple Health data: sleep, HRV, resting heart rate, and respiratory rate. It distills that into one daily recovery score. Green means push. Not green means pull back. Simple.
It also lives on your home screen and lock screen as a widget, so the number is there when you wake up, before you’ve made any decisions about your day.

The weekly view tracks a 7-day rolling average, which I find just as useful as the daily number. Some days you score 92. Some days you don’t. The average tells you whether the trend is moving in the right direction.

What v1.5 Taught Me
I just shipped version 1.5, and like every version, it taught me more than I expected.
Accessibility. This release was my real introduction to Dynamic Type, Apple’s system for respecting a user’s preferred text size across the entire OS. Every screen in Current now scales cleanly to the largest accessibility sizes, including Reduce Motion support for users who are sensitive to animation. It sounds like table stakes, but getting it right required thinking about layout in ways I hadn’t before. The text can’t just get bigger. Everything around it has to adapt too.
Widgets and shared state. Current has a Weekly Mode for people who don’t want to fixate on a single daily number. In 1.5, I fixed the widgets to honor that mode. If you’ve opted into Weekly Mode, the widget shows your 7-day average instead of the daily score. A small change that required learning how apps and widgets share data across processes. The fix was a few lines. The understanding took longer.

That screen above is from a good week. 92, fully charged, a 14-day streak that happens to be a personal best. I won’t pretend I don’t check this every morning.
What Building It Has Taught Me
The most useful thing about building Current isn’t the app. It’s what the process has forced me to learn. Swift, SwiftUI, HealthKit, WidgetKit, Dynamic Type, app architecture. Each version exposes a gap I didn’t know I had, and filling it makes the next version better.
I’ve shipped software professionally for years, but always inside larger platforms: Salesforce, Marketing Cloud, native apps built by teams around me. Building solo, end to end, is different. You feel the weight of every decision because there’s no one else to absorb it.
Every version teaches me something. I’m not sure when that stops.
If you have an Apple Watch (or any device that logs sleep, HRV, and resting heart rate) and want a clear read each morning on whether to push or rest, Current is on the App Store. I’d love your feedback.