Skip to content

aktech/therunner

Repository files navigation

The Runner

React Native Expo TypeScript Platform License Privacy

A privacy-focused fitness tracking app for iOS. Track your runs, walks, and weightlifting workouts with real-time GPS, background tracking, and detailed statistics.

Screenshots

Features

  • Real-time GPS Tracking - Track your route with live map updates
  • Background Tracking - Keep tracking when phone is locked
  • Live Stats - Distance, duration, and pace updated in real-time
  • Weightlifting - Log exercises, sets, reps, and weight
  • Week-over-Week Stats - Line charts comparing running, walking, and lifting trends
  • Exercise Progress - Track max weight per exercise over time
  • Activity History - View all your saved runs, walks, and workouts
  • Route Maps - See your routes on beautiful maps
  • Privacy First - All data stored locally on device, no accounts required

Tech Stack

  • React Native + Expo (Managed Workflow)
  • TypeScript
  • expo-location + expo-task-manager (Background GPS)
  • expo-sqlite (Local Database)
  • react-native-maps (Apple Maps)
  • Zustand (State Management)
  • IBM Plex Sans (Typography)

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI
  • iOS Simulator or physical iOS device

Installation

# Install dependencies
npm install

# Start the development server
npm start

# Run on iOS Simulator
npm run ios

Running on Physical Device

  1. Install Expo Go from the App Store
  2. Run npm start
  3. Scan the QR code with your iPhone camera

Building for Production

Local Build (requires Mac with Xcode)

# Generate native project
npm run prebuild

# Build for iOS
npm run build:ios

Cloud Build (EAS Build)

# Configure EAS (first time)
eas build:configure

# Development build
npm run eas:build:dev

# Preview build
npm run eas:build:preview

# Production build
npm run eas:build:prod

Project Structure

therunner/
├── app/                    # Expo Router screens
│   ├── (tabs)/            # Tab navigation
│   │   ├── index.tsx      # Home screen
│   │   ├── history.tsx    # Activity history
│   │   └── settings.tsx   # App settings
│   ├── tracking.tsx       # Active tracking screen
│   └── activity/[id].tsx  # Activity detail
├── components/
│   ├── map/               # Map components
│   ├── tracking/          # Tracking UI
│   ├── activity/          # Activity cards/stats
│   └── ui/                # Reusable UI components
├── hooks/                 # Custom React hooks
├── services/              # Business logic
├── store/                 # Zustand state
├── utils/                 # Helper functions
├── types/                 # TypeScript types
└── constants/             # Theme, colors

Privacy

  • No Account Required - Start using immediately
  • No Backend Server - All data stays on your device
  • No Analytics - We don't track your behavior
  • Local SQLite - Your activities stored securely on device

iOS Permissions

The app requires the following permissions:

  • Location (Always) - For background GPS tracking
  • Location (When In Use) - For foreground GPS tracking

Scripts

Command Description
npm start Start Expo development server
npm run ios Run on iOS Simulator
npm run build:ios Build for iOS locally
npm run prebuild Generate native project

License

MIT

About

Privacy-first fitness tracker for iOS — log runs, walks & weightlifting with GPS tracking, route maps, and week-over-week stats. All data stays on your device.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors