Getting Started
GymApp uses Expo for development, providing a fast and efficient workflow with hot reload and debugging tools.Starting the Development Server
Start Expo Server
Launch the Expo development server:This opens the Expo Dev Tools in your terminal with options to launch on different platforms.
Development Options
Expo Go vs Development Builds
Expo Go (Recommended for Getting Started)- Quick setup - just scan QR code
- No native build required
- Great for JavaScript-only development
- Limited to Expo SDK modules
- Required if using custom native modules
- Full control over native dependencies
- Supports all React Native libraries
- Requires native build tools (Xcode/Android Studio)
Hot Reload
Expo provides automatic hot reloading out of the box:- Fast Refresh: Automatically reloads when you save changes
- Preserves State: Component state is maintained during reloads
- Error Recovery: Automatically recovers from syntax errors
- iOS/Android: Shake device → “Reload”
- Terminal: Press
rto reload - Web: Standard browser refresh (Cmd+R / Ctrl+R)
Debugging
React DevTools
Access React DevTools from the Expo menu:- Component hierarchy inspection
- Props and state inspection
- Performance profiling
Console Logging
View logs in your terminal wherenpm start is running. All console.log(), console.warn(), and console.error() statements appear here.
Debug Menu
Access the debug menu by:- iOS Simulator: Cmd+D
- Android Emulator: Cmd+M (Mac) / Ctrl+M (Windows/Linux)
- Physical Device: Shake the device
- Reload app
- Toggle Performance Monitor
- Toggle Element Inspector
- Open React DevTools
TypeScript Development
GymApp is built with TypeScript for type safety:Typed Routes
Expo Router provides typed routes through thetypedRoutes experiment:
Type Checking
Run TypeScript type checking:Linting
Check code quality with ESLint:Project Structure
Key directories:app/- File-based routing with Expo Routercomponents/- Reusable UI componentsconstants/- Theme colors, fonts, and configurationhooks/- Custom React hooksassets/- Images, fonts, and other static resources
Environment Configuration
GymApp usesapp.json for Expo configuration:
- Scheme: Deep linking with
acgymmobile:// - Orientation: Portrait mode only
- UI Style: Automatic dark/light mode
- New Architecture: Enabled for performance
Common Tasks
Clearing Cache
If you encounter issues, clear the Expo cache:Resetting Project
Reset to a clean state:Running on Physical Devices
Performance Monitoring
React Native Performance Monitor
Enable the performance monitor from the debug menu to see:- JavaScript frame rate
- UI frame rate
- Memory usage
Reanimated Worklets
GymApp includesreact-native-reanimated and react-native-worklets for smooth animations:
Next Steps
- Learn about Styling patterns and theming
- Explore Deployment for production builds