Skip to main content
This guide will help you set up your development environment and install all necessary dependencies for GymApp.

Prerequisites

Before you begin, ensure you have the following installed:
  • Node.js (v18 or later)
  • npm, yarn, pnpm, or bun package manager
  • Git for version control
GymApp is built with Expo SDK 54 and React Native 0.81.4, which requires Node.js 18 or higher.

Platform-Specific Requirements

  • macOS (required for iOS development)
  • Xcode 14.0 or later
  • CocoaPods (installed via sudo gem install cocoapods)
  • iOS Simulator (included with Xcode)
Run xcode-select --install to ensure you have the Xcode Command Line Tools installed.

Clone the Repository

First, clone the GymApp repository to your local machine:
git clone <repository-url>
cd acgym-mobile

Install Dependencies

Install the project dependencies using your preferred package manager:
npm install
This will install all required dependencies including:
  • Expo SDK 54 - The framework for universal React applications
  • React 19.1.0 - The UI library
  • React Native 0.81.4 - The native platform bindings
  • Expo Router 6 - File-based routing for navigation
  • React Native Reanimated 4.1 - High-performance animations
  • TypeScript 5.9 - Type-safe development
The complete dependency list can be found in package.json at the root of the project.

Verify Installation

Once the installation is complete, verify that everything is set up correctly:
1

Check Expo CLI

Verify that Expo is installed correctly:
npx expo --version
You should see the Expo version number (54.x.x).
2

Check TypeScript

Verify TypeScript is available:
npx tsc --version
You should see version 5.9.2 or higher.
3

Run Type Check

Ensure there are no TypeScript errors:
npx tsc --noEmit
This should complete without errors.

Project Configuration

GymApp comes pre-configured with the following settings:

TypeScript Configuration

The project uses strict TypeScript settings defined in tsconfig.json:
tsconfig.json
{
  "extends": "expo/tsconfig.base",
  "compilerOptions": {
    "strict": true,
    "paths": {
      "@/*": ["./*"]
    }
  }
}
The @/* path alias allows you to import files using absolute paths, e.g., import { Component } from '@/components/Component'.

Expo Configuration

Key features enabled in app.json:
  • New Architecture: Enabled for improved performance
  • Typed Routes: Type-safe navigation with Expo Router
  • React Compiler: Experimental automatic optimization
  • Edge-to-Edge UI: Modern Android experience
  • Universal Platforms: iOS, Android, and Web support

Development Environment Setup

Configure Your Code Editor

For the best development experience with TypeScript and React Native: Visual Studio Code (Recommended) Install these extensions:
  • ESLint
  • Prettier
  • React Native Tools
  • TypeScript and JavaScript Language Features

Set Up Environment Variables

If your project requires environment variables, create a .env file in the root directory:
cp .env.example .env
Never commit .env files containing secrets to version control. They should be listed in .gitignore.

Troubleshooting

Clear Cache

If you encounter issues, try clearing the cache:
npm start -- --clear

Reset Dependencies

For persistent issues, try resetting your dependencies:
rm -rf node_modules
rm package-lock.json # or yarn.lock, pnpm-lock.yaml, bun.lockb
npm install

Common Issues

  • Ensure no other processes are using port 8081
  • Try clearing the Metro cache: npx expo start --clear
  • Restart your terminal and try again
  • This is usually safe to ignore
  • Run npx expo install --fix to ensure compatible versions
  • Check that you’re using Node.js 18 or higher
  • Verify ANDROID_HOME is set correctly
  • Ensure Android SDK platform 33+ is installed
  • Clean the Android build: cd android && ./gradlew clean

Next Steps

Now that you have GymApp installed, you’re ready to start development:

Quickstart

Get your app running in minutes

Project Structure

Understand the codebase organization

Build docs developers (and LLMs) love