Reading paths
Tick steps as you go if it helps. Progress is stored in this browser only — no account, nothing sent anywhere, and it will not follow you to another device. Prefer to browse everything instead? The site index lists every page.
Ship a HealthKit read in a week
From an empty Xcode project to a background-syncing HealthKit read, in the order the work actually lands: permissions before queries, queries before the empty-result debugging that always follows.
- Integrate Apple HealthKit
The end-to-end walkthrough: capability, Info.plist keys, authorization request, first query. Everything below assumes you have done this once.
- The HealthKit Activity types
Pick the identifiers you are actually reading before you write a query, and learn which of them sum and which must be averaged.
- Permission set builder
Turn that list of types into the exact Info.plist keys and authorization call, with the read-only types flagged so you do not request a write that can never be granted.
- Statistics query generator
Generate the HKStatisticsQuery with the right options for each type — the cumulative-vs-discrete choice is the one that silently produces plausible wrong numbers.
- errorNoData: the query found nothing
Budget for this one. A first HealthKit read on a real device returns nothing far more often than it throws, and the reasons are not what most people guess.
- Test a HealthKit integration
The simulator cannot tell you whether this works. Set up the device and fixture story before you ship rather than after the first bug report.
- Background sync that does not need the phone awake
A read that only runs while the app is open is a demo. This is the step that turns it into a product.
Support every wearable without eleven integrations
The aggregator route: what one actually does for you, what it costs, how to wire it, and the two operational problems (webhook delivery, late data) that arrive with it rather than instead of it.
- What is a health-data aggregator?
Start with what the category does and does not absorb — aggregators broker OAuth and normalise payloads; they do not remove the provider approval gates.
- The health-data aggregator APIs
The landscape in one page, so you are choosing between named products with known coverage rather than between marketing sites.
- What aggregators cost
Pricing is per connected user on most of them, which makes the build-vs-buy answer a function of your user count. Get the number before you write code.
- Integrate Terra
A concrete worked integration of one aggregator, end to end. The shape transfers to the others even if you pick a different vendor.
- Webhook ingestion done safely
Aggregators push. At-least-once delivery means duplicates and out-of-order events are normal traffic, not incidents — the receiver has to be built for it.
- Why wearable data is missing or delayed
The support ticket you will get most. Most of the delay is upstream of you, and knowing which part is which is the difference between a reply and a rewrite.
- Consolidate direct integrations onto one aggregator
If you already have direct integrations, this is the cutover plan that keeps existing users connected through the switch.
Add camera-based coaching
Pose estimation from the concept to a shipped rep counter and form cue: what the models return, where they run, and the two features everybody builds on top of them.
- What is pose estimation?
The vocabulary first — keypoints, confidence, and what a model actually hands you, which is much less than 'it knows the exercise'.
- Pose estimation models compared
MediaPipe, MoveNet, YOLO and the rest differ in keypoint count, speed and licence. Choosing here decides most of what follows.
- On-device vs cloud
This one decision sets your latency budget, your per-user cost and your privacy story all at once, so make it deliberately.
- Camera pose tracking, practically
The build: camera pipeline, frame rate, coordinate spaces, and the smoothing that stops a skeleton from jittering.
- Add rep counting
The first feature worth shipping on top of keypoints, and the one where naive thresholding fails on real users.
- Add real-time form feedback
The hard one. Ship it after rep counting, because it needs the same signal to be stable before a cue can be trusted.
Get off Google Fit
The Android migration in five pages: what is actually being shut down, the mapping to Health Connect, the integration, and the empty-read debugging on the other side.
- What is shutting down, and when
The dated timeline, with what is confirmed separated from what is reported. Plan against this rather than against a blog post.
- Migrate to Health Connect
The mapping and cutover plan — the API shapes are not equivalent, and the differences decide how much of your read layer survives.
- Integrate Health Connect
The destination platform end to end: permissions, the reads, and the Play policy that governs what you may ask for.
- Health Connect returns no data
The Android counterpart to HealthKit's empty read, and the first thing you will hit on a real device after the integration compiles.
- Every Health Connect record type
The reference to keep open while you rewrite the read layer — the full record set, so you can check a type exists before you plan around it.
A path you wanted and did not find is a content request — tell us what you are building and it may become the fifth.