Concentric activity rings that fill on appear, over a week strip you can scrub.
A workout summary: concentric rings that animate from zero with a trailing cap and an overlap past 100%, a week strip that re-animates the day on scrub, and splits as blocks below.
$199 once, every piece included. See how installing works · Sign in
SwiftUI source you own, built on Apple frameworks only.
Frost (style), Health and Fitness (brief), Daily Health (recipe). Your agent builds around this screen in the same design.
How it behaves, what it handles, and the decisions behind it.
Every ring starts empty and sweeps clockwise from twelve o'clock to its share of its goal, each one a beat behind the one outside it, with a round trailing cap leading the fill. A ring that passes its goal carries on onto a second lap drawn over the first, its cap in shadow so the overlap reads as depth instead of a full ring. Scrubbing the week strip changes the day under the finger, and the rings, the figure in the opening and the split rows all move to that day's values.
ActivityRingValue.fraction returns 1.19 for 712 of 600, and only the drawing decides what a second lap looks like.DragGesture with no minimum distance picks the column under the touch, so a tap and a scrub are the same code path, with a selection haptic on each change.ActivityRingsExample at the end of ActivityRings.swift is the screen shown in the preview; copy it as a starting point.Pieces that work well next to this one.