Loading, in progress

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
View code on GitHubLive demo coming soon

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

01

Adaptive training plans

Workouts reshuffle overnight based on recovery, missed sessions and race date.

02

Live heart-rate zones

Audio cues keep each run in the right zone without looking at the phone.

03

GPS route tracking

Battery-friendly tracking with split times, elevation and saved routes.

04

Recovery score

One number each morning from sleep, HRV and training load.

05

Offline-first sync

Runs record without signal and sync when the phone reconnects.

06

Coach check-ins

Weekly summaries and nudges written in plain language.

03 · PROCESS

How it was built

  1. WEEK 1–2

    Discover

    Interviewed 14 runners and mapped why they abandon plans.

    • Interview notes
    • Problem statement
  2. WEEK 3–4

    Design

    Designed the daily plan, rings and run screens in Figma, then tested on device.

    • Figma prototype
    • Design system
  3. WEEK 5–8

    Build

    Built the Expo app, Firebase backend and the plan-adjusting Cloud Function.

    • iOS & Android app
    • Plan engine
  4. 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

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.