Native where the interaction needs it.
SwiftUI, local persistence, Keychain, and CoreBluetooth support the phone and hardware experience. The API handles plan generation and account services.
Opening the build…
Personalized running plans, a native iOS experience, and connected treadmill data.

A training plan is useful when it fits the runner’s goals, experience, and available time—and stays accessible during the training itself. Stride brings plan generation, the run experience, and activity history into one product.
We built a native iOS app backed by a coaching API. Athlete intake informs the plan; generated workouts become structured weeks in the app. Bluetooth support connects compatible treadmills, including AssaultRunner, to the live run experience.
Athlete intake and goal-specific coaching prompts shape the training plan. Streaming generation feeds a parser that turns the response into weeks and workouts, rather than leaving the user with a block of text.
Watch the product film ↗
SwiftUI, local persistence, Keychain, and CoreBluetooth support the phone and hardware experience. The API handles plan generation and account services.
The reviewed pace-smoothing implementation addresses differences between reported treadmill speed and distance. Reading a Bluetooth characteristic is only the start of a useful live display.
The data model keeps run logs independent. Regenerating a future plan should not remove the runner’s past activity.
Stride combines AI plan generation with a native running experience and connected hardware. The code supports those workflows; runner performance gains, retention, and training outcomes have not been measured for this case study.
Device support depends on the treadmill’s Bluetooth capabilities. This case study describes the product build and does not claim universal hardware compatibility or guaranteed training results.