Skip to main content
This guide covers the general setup process for developing the Soundcheck mobile app.

Quick start

1

Clone the repository

2

Install dependencies

3

Configure environment

Edit .env and add your Clerk key:
4

Start development server


Development options

Option 1: Expo Go (fastest)

Use the Expo Go app for quick development without building native code.
Some features (SecureStore, push notifications) have limited support in Expo Go. Use a development build for full functionality.
Build a native development client for full feature support.

Option 3: Dev container

Use a pre-configured development environment in VS Code/Cursor:
  1. Install the Dev Containers extension
  2. Open the repository in VS Code/Cursor
  3. Press Cmd+Shift+P → “Dev Containers: Reopen in Container”
  4. Run npm start inside the container
Dev Containers don’t support physical device USB connections. Use Expo Go on your device or npm run web for testing.

Native project generation

The ios/ and android/ directories are not committed to the repository. Generate them locally when needed:
The --clean flag removes existing native folders before regenerating. All native configuration comes from app.config.js.

Running the app

On iOS simulator

On Android emulator

On physical device

  1. Install Expo Go on your device
  2. Run npm start
  3. Scan the QR code with your phone
For full native functionality on physical devices, create a development build and install via TestFlight (iOS) or direct APK install (Android).

Development scripts

Core commands

Quality checks

Build commands


Environment variables

Create a .env file in the repository root:
Never commit .env files. They are gitignored by default.

Troubleshooting

Clear the Metro cache:
Or reset Watchman:
Remove and reinstall:
Regenerate native projects:
For iOS, ensure Xcode simulators are installed:
  1. Open Xcode
  2. Go to Xcode → Settings → Components
  3. Download an iOS Simulator

Next steps

iOS Setup

Detailed iOS development setup

Android Setup

Android emulator configuration