GoodHuman is an iOS app that reads your Apple Watch biometrics — heart rate, HRV, sleep, activity — and distills them into a single number: the H-Score. One glance tells you how you’re actually doing today.

No accounts. No cloud. No selling your health data. Everything computes on your device.

What it does

The H-Score is a single wellness metric computed from multiple biometric streams. Not a step count or a calorie burn — a holistic signal that synthesizes what your body is actually telling you.

The app queries HealthKit for heart rate samples, heart rate variability (SDNN), sleep analysis stages, workout sessions, active and resting energy, and stand hours. These inputs feed into a scoring formula that weights each signal by its relevance to overall wellness. The result is a number with a floor of 25 — you can’t score zero just because you haven’t worked out today.

Trend tracking shows how your score changes over days and weeks. The patterns are where it gets useful: you start to see that your score dips before you consciously feel run down, or that a week of poor sleep shows up as a two-day lag in recovery metrics.

Background health observers trigger score recalculation when new data arrives from the watch, so the score updates throughout the day without manual refresh.

How it’s built

I built GoodHuman entirely with Claude as my pair programmer, starting from zero Swift experience. Every line of SwiftUI, every HealthKit query, every piece of the scoring pipeline — pair-programmed from scratch. The app targets iOS 17+ and is written in pure SwiftUI with no third-party dependencies.

The HealthKit integration uses HKHealthStore to request authorization for specific data types, then runs HKStatisticsCollectionQuery and HKSampleQuery to pull biometric data. Sleep analysis required the most careful handling — HealthKit reports sleep in overlapping HKCategorySample segments (inBed, asleep, REM, core, deep), and the app needs to deduplicate and merge these into a coherent sleep duration and quality metric.

The H-Score formula runs entirely on-device. No network calls, no cloud dependency, no analytics SDK phoning home. This was a deliberate architectural decision, not a limitation. Health data is personal — I didn’t want to build another app that ships your heartbeat to a server farm so a dashboard somewhere can sell aggregated wellness trends. The computation is lightweight enough that on-device processing adds zero perceptible latency.

The UI is reactive SwiftUI bound to the health data pipeline through @Observable state management. When HealthKit delivers new samples via background delivery, the scoring engine recalculates and the views update automatically. The chart components use SwiftUI Charts for trend visualization.

The interesting engineering challenge wasn’t the code — it was the scoring formula. Turning multiple biometric streams with different units, ranges, and significance into one meaningful number that actually correlates with how people report feeling. That required iterating on the weights and normalization approach over weeks of real-world testing on my own data.

Why I built it

I wear an Apple Watch. It collects incredible biometric data. But opening the Health app to stare at six different charts doesn’t tell me how I’m doing — it tells me what my resting heart rate was at 3am. I wanted one number. Am I doing well today, or should I take it easy? That’s it.

GoodHuman is also proof that you don’t need to be a professional iOS developer to ship a real app. I’m a real estate broker who builds things. Claude is a surprisingly good Swift pair programmer, and SwiftUI has a lower barrier than UIKit ever did. The combination makes native app development accessible to builders who have domain expertise but not platform expertise.