mndev
EN/UA/IT
Mobile · React Native Fitness App

Fitness Tracker

"Cross-platform training app on the React Native New Architecture — one codebase, iOS, Android and web."

3
Platforms, one codebase
RN 0.85
New Architecture
FSD
Layered architecture

A training tracker on the current React Native stack rather than the safe one — Expo SDK 56, RN 0.85 New Architecture, React 19. Workouts, streaks, weight logs and health metrics from one codebase.

Role: Mobile developer — architecture, feature work, native integrations, test setup.

Problem

Fitness apps live or die on friction: data has to come from the device the user already wears, and sign-in cannot be a form. Doing that on iOS and Android without two codebases is the actual problem.

Approach

  • 01Built on Expo SDK 56 and RN 0.85 with the New Architecture on — a deliberate choice, since its APIs differ enough to be part of the design.
  • 02Organised the codebase with Feature-Sliced Design, with import rules enforced by lint rather than convention.
  • 03Used typed routes, so navigation is checked against the file tree at compile time.
  • 04Read HealthKit and Health Connect behind one permissions feature, with the platform difference in a single mapping layer.
  • 05Authentication through Better Auth with native Apple and Google sign-in — the first screen is a button, not a form.
  • 06Enabled the React Compiler and removed hand-rolled memoisation, which only hides the cases that matter.
  • 07Covered the core loop with Jest and scripted end-to-end flows.

Outcome

  • One codebase targeting iOS, Android and a static web build.
  • Health metrics read natively on both platforms through a single permissions layer.
  • Native Apple and Google sign-in — no password screen in the onboarding path.
  • Architecture boundaries enforced by tooling, so the structure survives contributors.
  • Cloud build pipeline configured for repeatable releases.

Business Impact

One repository for two stores and the web keeps feature cost linear instead of doubling per platform. Reading health data natively makes the app useful before the user logs anything by hand — the moment most fitness apps get deleted.

Under the hood

App

  • Expo SDK 56 · React Native 0.85
  • React 19 · React Compiler
  • expo-router · typed routes
  • TypeScript strict

Native Integrations

  • HealthKit (iOS) · Health Connect (Android)
  • Apple Sign-In · Google Sign-In
  • Expo modules · dev client
  • Platform-specific web variants

Architecture & Quality

  • Feature-Sliced Design · lint-enforced
  • Jest · Testing Library
  • Scripted E2E flows
  • Steiger FSD linter

Delivery

  • Cloud Build pipeline
  • Static web output
  • iOS + Android native projects
  • Deep linking

Have a system that needs building?

Payments, integrations, mobile, data pipelines — if it has to run unattended and be correct, that is the work I take. From architecture through launch, and I stay to keep it running.

Message on Telegram