Case study · Apex product

Journey Tracker: a private GLP-1 companion, from first build to the App Store.

How we designed, built and shipped a native health app for iPhone, iPad and Mac, worked through App Review's toughest health-data questions, and kept every person's data on their own devices.

At a glance

The project.

Product
Apex Development Studio's own app
Platforms
iPhone, iPad and Mac. Android is in planning.
Category
Health and fitness: GLP-1 therapy and weight-loss tracking
Status
Live on the App Store
Stack
Swift, SwiftUI, Swift Charts, HealthKit, Core Data with CloudKit, StoreKit 2
The problem

Too much to track, too little privacy.

People on GLP-1 medications such as tirzepatide and semaglutide keep track of a lot: weekly doses, injection sites, weight, symptoms, hydration and lab results. Most trackers handle it by asking for an account and storing everything on their own servers.

We wanted one place for all of it that felt like a first-party Apple app, with no account and no company server holding anyone's health data.

What we built

One app for the whole routine.

  • Dose logging and countdown to the next injection, with dose changes marked on the charts
  • Estimated medication levels charted over time
  • Injection site rotation, so the same site isn't overused
  • Labs by marker, including clinical health records imported through HealthKit
  • Strides walking sessions on a map, plus weight, body composition and progress photos
  • PDF reports to bring to a doctor's appointment
Home: next dose, total loss, Strides, A1C
Home: next dose, total loss, Strides, A1C
Estimated medication levels
Estimated medication levels
Injection site rotation
Injection site rotation
Labs by marker
Labs by marker
Dose counter
Dose counter
PDF reports
PDF reports
Privacy by design

No server to breach.

Everything a person enters is stored on their device. When they turn on sync, it goes through their own iCloud account using Core Data and CloudKit, which Apex can't read. Health data is read through HealthKit only with permission, never leaves the device through us, and is never used for advertising.

Building it this way meant no backend to run, no database of health records to protect, and a privacy policy that can be short and true.

App Review

The hardest part wasn't the code.

Journey Tracker was first submitted in April 2026. Health apps get Apple's closest review, and this one reads clinical health records, which brings extra questions about why the data is needed and how it's protected.

It took several review cycles. Each round went the same way: answer Apple precisely, fix exactly what they flagged, document the reasoning in the review notes, and resubmit. We also removed features that could read as medical advice, so the app stays a tracker, not a clinician. The clinical health records questions were settled when version 1.5.2 was approved on 1 September 2026.

5review cycles to clear clinical health records
3App Store releases in September 2026
1,667automated tests passing (September 2026)

Since then, every release goes through the same gate: automated tests, an accessibility check, a privacy and security review, and a written release verification report before it's submitted.

What's next

Android, specced from the iOS app.

Journey Tracker is coming to Android. The Android version is being specced feature by feature from the iOS app and will be built natively in Kotlin and Jetpack Compose, with Health Connect in place of HealthKit.

Building something similar? See iOS app development and Android app development.

Have a health or fitness app in mind?

Start a project