A privacy-focused fitness tracking app for iOS. Track your runs, walks, and weightlifting workouts with real-time GPS, background tracking, and detailed statistics.
- 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
- 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)
- Node.js 18+
- npm or yarn
- Expo CLI
- iOS Simulator or physical iOS device
# Install dependencies
npm install
# Start the development server
npm start
# Run on iOS Simulator
npm run ios- Install Expo Go from the App Store
- Run
npm start - Scan the QR code with your iPhone camera
# Generate native project
npm run prebuild
# Build for iOS
npm run build:ios# 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:prodtherunner/
├── 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
- 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
The app requires the following permissions:
- Location (Always) - For background GPS tracking
- Location (When In Use) - For foreground GPS tracking
| 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 |
MIT




