Evidence-based finger strength training app for climbers. Built with React Native / Expo.
Guided workouts with real-time voice coaching. Runs on iOS and Android.
Protocols are sourced from peer-reviewed sport science research:
7-second hang / 3-second rest × 6 reps per set, 3 sets per grip, 2-minute set rest.
- Goal: Strength-endurance and grip stamina
- Research: López-Rivera & González-Badillo (2019) — 45% endurance improvement over 8 weeks; Anderson Brothers (2015) — +21.5% strength after 4 weeks
10-second maximum-effort hangs, 5-minute rest between hangs.
- Goal: Maximum finger strength via neural adaptation and structural loading
- Research: Eva López PhD research — up to 28% strength improvement per 8-week cycle; F100 intensity group +14.3% strength (Frontiers in Sports, 2022)
10-second hangs on the smallest holdable edge, 5-minute rest between sets.
- Goal: Direct climbing specificity, finger strength with progressive edge reduction
- Research: Eva López MED protocol — target 75–103% MVC-7; reduce edge by 1–2mm when margin exceeds 5 seconds
20-second hangs at 75% intensity, 3-set rest between grip positions.
- Goal: Tendon health, collagen remodeling, injury prevention
- Research: Dr. Tyler Nelson Density Hangs protocol — safest loading approach for tissue adaptation
Use this to install the app as a standalone native app.
Prerequisites: EAS CLI and an Expo account.
npm install -g eas-cli
eas login
eas build --platform android # produces a downloadable .apk / .aab
# or
eas build --platform ios # requires Apple Developer account ($99/yr)For a quick local APK (Android only, requires Android Studio + SDK):
npx expo run:android --variant releasePrerequisites:
- iOS Simulator: macOS + Xcode 15+
- Android Emulator: Android Studio with an AVD configured
npm run ios # opens iOS Simulator (macOS only)
npm run android # opens Android Emulator- Real-time countdown timer with phase transitions (warm-up, hang, rest, set rest, complete)
- Voice cues at each phase transition via
expo-speech - Max Hang Time tracker — stopwatch per grip position, personal-best tracking, proportional progress chart for last 10 attempts
- English / Japanese UI and voice coaching (toggle in-app)
- Vibration alerts at hang start
- Screen kept awake during active workout
- Session history stored locally (AsyncStorage)
- Dark theme for gym environments
- Timer reconciles after app backgrounding via AppState + timestamp correction
app/(tabs)/index.tsx — Protocol selection
app/(tabs)/train.tsx — Active training screen
app/(tabs)/max-hang.tsx — Max hang time measurement + personal best tracker
app/(tabs)/history.tsx — Session history
src/data/workouts.ts — Evidence-based protocol definitions
src/i18n/strings.ts — EN / JA string catalog
src/services/voiceService.ts — expo-speech TTS wrapper
src/store/workoutStore.ts — Zustand session state
src/store/maxHangStore.ts — Zustand max-hang records (persisted)
src/store/settingsStore.ts — Language preference (persisted)
src/components/WorkoutTimer.tsx — Countdown timer component
src/components/WorkoutCard.tsx — Protocol selection card
- López-Rivera & González-Badillo (2019). Journal of Human Kinetics. 8-week RCT on MaxHangs, IntHangs, combined protocols.
- Frontiers in Sports and Active Living (2022, PMC9092147). 7:3 repeaters supplemental training, 10 weeks.
- Frontiers in Sports and Active Living (2022, fspor.2022.862782). F100/F80/F60 intensity comparison.
- Gilmore et al. (2024, PMC11576708). 526 climbers retrospective — Max Hangs + Abrahangs combined.
- Nelson, T. — Density Hangs protocol for tendon conditioning.