Skip to main content

Setup & Installation

Complete guide to setting up the ZÈYA Mobile App for development.

Prerequisites

  • Node.js: 18.x or higher
  • npm: 9.x or higher (or yarn)
  • Expo CLI: Latest version
  • iOS Development:
    • macOS (required)
    • Xcode 15+ (for iOS simulator)
    • CocoaPods
  • Android Development:
    • Android Studio
    • Android SDK
    • Java Development Kit (JDK) 17+

Installation Steps

1. Clone Repository

cd Zeya-Mobile-App

2. Install Dependencies

# Install npm dependencies
npm install

# For iOS, install CocoaPods dependencies
cd ios && pod install && cd ..

3. Environment Configuration

The app uses EAS build configuration for environment variables. See eas.json for environment-specific settings:

  • Production: https://zeyaapp.com/api/v1/
  • Staging: https://staging.zeyaapp.com/api/v1/

For local development, you can create a .env file (if not using EAS):

EXPO_PUBLIC_API_URL=zeyaapp.com/api/v1
EXPO_PUBLIC_FILE_URL=zeyaapp.com
EXPO_PUBLIC_HTTP_PROTOCOL=https
EXPO_PUBLIC_APP_ENV=local
EXPO_PUBLIC_LOCAL_API_URL=staging.zeyaapp.com/api/v1
EXPO_PUBLIC_LOCAL_FILE_URL=staging.zeyaapp.com
EXPO_PUBLIC_LOCAL_HTTP_PROTOCOL=https

4. Configure Firebase

Ensure Firebase configuration files are in place:

  • google-services.json (Android) - in root directory
  • GoogleService-Info.plist (iOS) - in root directory

These files should be provided by your Firebase project administrator.

5. Configure Google Maps

Google Maps API keys are configured in app.json:

  • Android: android.config.googleMaps.apiKey
  • iOS: ios.config.googleMapsApiKey

Ensure billing is enabled in Google Cloud Console for Maps API.

6. Start Development Server

# Start Expo development server
npm start

# Or use Expo CLI directly
npx expo start

# Start with cache cleared
npx expo start -c

7. Run on Device/Simulator

iOS:

npm run ios
# Or press 'i' in the Expo CLI

Android:

npm run android
# Or press 'a' in the Expo CLI

Web (for testing):

npm run web
# Or press 'w' in the Expo CLI

Development Setup

iOS Setup

  1. Install Xcode

    • Download from Mac App Store
    • Install Xcode Command Line Tools: xcode-select --install
  2. Install CocoaPods

    sudo gem install cocoapods
  3. Install iOS Dependencies

    cd ios
    pod install
    cd ..
  4. Open in Xcode (if needed)

    open ios/ZYA.xcworkspace

Android Setup

  1. Install Android Studio

  2. Set Environment Variables

    # Add to ~/.zshrc or ~/.bash_profile
    export ANDROID_HOME=$HOME/Library/Android/sdk
    export PATH=$PATH:$ANDROID_HOME/emulator
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/tools/bin
  3. Create Android Virtual Device (AVD)

    • Open Android Studio
    • Tools → AVD Manager
    • Create Virtual Device
    • Select device and system image

EAS Build Setup

Install EAS CLI

npm install -g eas-cli

Login to Expo

eas login

Configure EAS

The project includes eas.json with build configurations:

  • development - Development builds
  • preview - Preview builds for testing
  • staging - Staging environment builds
  • production - Production builds
  • live - Live production builds

Troubleshooting

Common Issues

Issue: Metro bundler not starting

  • Solution: Clear Metro cache: npx expo start -c

Issue: iOS build fails

  • Solution:
    • Clean build: cd ios && xcodebuild clean && cd ..
    • Reinstall pods: cd ios && pod deintegrate && pod install && cd ..

Issue: Android build fails

  • Solution:
    • Clean gradle: cd android && ./gradlew clean && cd ..
    • Check Android SDK path

Issue: Module not found errors

  • Solution:
    • Delete node_modules and reinstall: rm -rf node_modules && npm install
    • Clear watchman: watchman watch-del-all

Issue: Firebase not working

  • Solution: Ensure google-services.json and GoogleService-Info.plist are in root directory

Issue: Google Maps not loading

  • Solution: Verify API keys in app.json and ensure billing is enabled in Google Cloud Console

Clearing Caches

# Clear Metro bundler cache
npx expo start -c

# Clear npm cache
npm cache clean --force

# Clear watchman
watchman watch-del-all

# Reset iOS simulator
xcrun simctl erase all

# Clear Android build
cd android && ./gradlew clean && cd ..

Development Tools

  • ESLint
  • Prettier
  • React Native Tools
  • Expo Tools
  • i18next Ally (for translations)

Debugging

React Native Debugger:

  • Install: brew install --cask react-native-debugger
  • Enable in app: Shake device → "Debug"

Flipper:

  • Install Flipper from fbflipper.com
  • Configure in metro.config.js if needed

Console Logs:

  • View in terminal where Expo is running
  • Use console.log(), console.warn(), console.error()

Verification

Health Check

Start the app and verify:

  • App launches successfully
  • Login screen appears
  • No console errors
  • Network requests work

Test Authentication

# Test login flow
# Navigate to login screen
# Enter test credentials
# Verify API calls work

Next Steps