A personal workout tracking app built with React Native and Expo.
- Session Tracking — Add exercises, track sets, and lock your session when done
- Exercise Library — Save your go-to exercises with default sets and reps
- Templates — Create workout templates like "Push Day" to load quickly into sessions
- Heatmap — GitHub-style quarterly consistency heatmap starting from Jan 1, 2026
- Streak Counter — Tracks consecutive days with locked sessions
- Light / Dark Theme — Toggle between themes, preference saved automatically
- React Native + Expo SDK 54 (TypeScript)
- expo-router for navigation
- AsyncStorage for local data persistence
- EAS Build for APK generation
-
Install dependencies
npm install --legacy-peer-deps
-
Start the app
npx expo start
-
Scan the QR code with Expo Go on Android to preview
eas build -p android --profile previewDownload the APK from expo.dev after the build completes.
gymbook/
├── app/
│ ├── _layout.tsx # Root layout with ThemeProvider
│ └── (tabs)/
│ ├── _layout.tsx # Tab navigator
│ ├── index.tsx # Home screen (heatmap + today)
│ ├── session.tsx # Session tracking
│ ├── templates.tsx # Workout templates
│ └── library.tsx # Exercise library
├── constants/
│ ├── theme.ts # Light and dark color themes
│ └── ThemeContext.tsx # Global theme state
└── store/
└── storage.ts # AsyncStorage data layer