CASE STUDY · MOBILE
Mobile Fitness Tracker
A cross-platform running and training app that turns workouts, sleep and heart-rate data into a plan that adapts every morning.
- ROLE
- Design & development
- TIMELINE
- 10 weeks
- TEAM
- Solo
- PLATFORM
- iOS & Android
PRODUCT IDENTITY
stride
Every step counts.
01 · OVERVIEW
Project overview
DEVELOPMENT TIME
10 weeks
From first sketch to TestFlight
TEAM SIZE
Solo
Design, mobile and backend
KEY ACHIEVEMENT
4.9 rating
Across 1,200 beta runners
THE PROBLEM
Most training apps hand runners a fixed plan and never look back. Miss a session or sleep badly and the plan keeps pushing, which is how people get injured or quit.
THE APPROACH
Stride rebuilds the week every morning from the data a runner already has: last night's sleep, resting heart rate and recent load. Easy days stay easy, hard days happen when the body is ready.
38%
faster 10K time on average after 8 weeks
2.4M
runs logged in the first month
< 200 ms
to sync a workout across devices
02 · FEATURES
What it does
Adaptive training plans
Workouts reshuffle overnight based on recovery, missed sessions and race date.
Live heart-rate zones
Audio cues keep each run in the right zone without looking at the phone.
GPS route tracking
Battery-friendly tracking with split times, elevation and saved routes.
Recovery score
One number each morning from sleep, HRV and training load.
Offline-first sync
Runs record without signal and sync when the phone reconnects.
Coach check-ins
Weekly summaries and nudges written in plain language.
03 · PROCESS
How it was built
WEEK 1–2
Discover
Interviewed 14 runners and mapped why they abandon plans.
- Interview notes
- Problem statement
WEEK 3–4
Design
Designed the daily plan, rings and run screens in Figma, then tested on device.
- Figma prototype
- Design system
WEEK 5–8
Build
Built the Expo app, Firebase backend and the plan-adjusting Cloud Function.
- iOS & Android app
- Plan engine
WEEK 9–10
Ship
Beta with 1,200 runners via TestFlight and Play testing, then launch.
- Public launch
- Crash-free 99.6%
04 · TECH STACK
Built with
MOBILE
- React Native
- Expo
- TypeScript
BACKEND
- Firebase Auth
- Cloud Functions
- Firestore
HEALTH & MAPS
- HealthKit
- Google Fit
- Mapbox
TOOLING
- EAS Build
- Sentry
- Jest
ARCHITECTURE
Stride app
React Native + Expo
Cloud Functions
Plan engine + sync
Firestore
Users, runs, plans
HealthKit / Fit
Sleep, HR, HRV
Mapbox
Routes + tiles
05 · LEARNINGS
Challenges & learnings
Battery-friendly GPS
CHALLENGE
Continuous GPS drained 30% battery per hour on older phones.
OUTCOME
Adaptive sampling that slows down on steady pace cut drain to 9% per hour.
Syncing offline runs
CHALLENGE
Runs recorded without signal created duplicate or partial workouts.
OUTCOME
A local queue with idempotent run IDs made sync safe to retry.
Interested in this project?
Happy to walk through the code, the decisions behind it, or how something similar could work for your team.