Change Your Day

A calm native iOS app for walks, rides, workouts, and meditation — pulling from Apple Health.

Swift SwiftUI HealthKit MapKit XcodeGen

The problem

Big fitness apps treat exercise as content — feeds, leaderboards, badges, streaks. That framing makes me do less, not more. I wanted something quieter: four tabs for the four things I actually do, each one showing just what’s useful to know today, and then disappearing.

The approach

Four tabs, four practices. Walk and Ride pull routes from HealthKit and draw them on a MapKit overlay — recent trips rendered vivid, older ones faded into the background. Workout is a plain log for sets, reps, and weight, with a small library of the kettlebell and calisthenics moves I actually use. Meditate is a countdown timer with a bell and optional ambient track — rain, ocean, forest, or singing bowl.

Change Your Day on iOS — the Walk tab with empty stats, a MapKit overlay, and the four-tab bottom bar

Filtering is the same across all four tabs — Week, Month, 3 Mo, Year — so the interaction pattern is muscle memory by day three.

Change Your Day Meditate tab — a large 10-minute countdown circle, a streak/session/minute counter, and an ambient-sound picker with Rain, Ocean, and Forest

How it works

SwiftUI drives the UI; HealthKit is the data source for everything except the manual workout log and the meditation timer. Routes come from HKWorkoutRoute queries and render on a MapKit overlay with per-point colors computed from route age. XcodeGen handles project generation so the repo stays diff-friendly.

Results

  • Four focused tabs — no feed, no leaderboard, no content layer
  • HealthKit-first — walks, rides, and workout summaries come from the system, not a third-party backend
  • Route age fading makes months of walking legible at a glance — fresh trips vivid, old ones backgrounded