Follow the steps bellow to get the core application up and running in under 5 minutes. After that you can start activating other services or setting up any of the demo applications.

Quick setup

Hi there 👋 - ready to build your mobile app? Let’s get into it!

1

Clone the repository

We’ll start by getting your project up and running locally:

ExpoShip JavaScript version
git clone https://github.com/rudolfsrijkuris/expo-ship.git [YOUR_APP_NAME]
cd [YOUR_APP_NAME]
git remote remove origin
2

Environment variables

Rename .env.example to .env.local

.env.local
SUPABASE_URL=
SUPABASE_ANON_KEY=

# REVENUE CAT
RC_IOS_KEY=
RC_ANDROID_KEY=

# One Signal
ONESIGNAL_APP_ID=

# Google Ads (all the id's are test id's)
BANNER_AD_UNIT_ID_IOS=ca-app-pub-3940256099942544/9214589741
BANNER_AD_UNIT_ID_ANDROID=ca-app-pub-3940256099942544/9214589741

INTERSTITIAL_AD_UNIT_ID_IOS=ca-app-pub-3940256099942544/1033173712
INTERSTITIAL_AD_UNIT_ID_ANDROID=ca-app-pub-3940256099942544/1033173712

REWARDED_INTERSTITIAL_AD_UNIT_ID_IOS=ca-app-pub-3940256099942544/5354046379
REWARDED_INTERSTITIAL_AD_UNIT_ID_ANDROID=ca-app-pub-3940256099942544/5354046379
3

Install dependencies and run

We’ll install all the required packages and run it locally:

cli
npm install
npx expo prebuild
npx expo run ios
# OR
npx expo run android

Open simulator - your app should be up and running!

4

Customize app configuration

Open app.json. It is where you configure your app. Each key is documented to know how and why it’s used.

app.json
{
  "expo": {
    "name": "[YOUR_APP_NAME]", // App's name
    "slug": "[YOUR_APP_NAME]", // App's name
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icons/expoship_icon.png", // Location to your apps icon
    "userInterfaceStyle": "automatic",
    "scheme": "com.[YOUR_APP_NAME]", // This is used for supabase auth
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.[YOUR_APP_NAME].[YOUR_APP_NAME]app" // Your bundle identifier for ios app
    },
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/icons/expoship_icon.png", // Location to your apps icon
        "backgroundColor": "#ffffff"
      },
      "package": "com.[YOUR_APP_NAME].[YOUR_APP_NAME]app" // Your bundle identifier for android app
    },
    "web": {
      "favicon": "./assets/favicon.png"
    },
    "plugins": [
      [
        "expo-build-properties",
        {
          "ios": {
            "useFrameworks": "static"
          }
        }
      ],
      "expo-router",
      [
        "onesignal-expo-plugin",
        {
          "mode": "development"
        }
      ]
    ],
    "extra": {
      "router": {
        "origin": false
      }
    },
  },
  "react-native-google-mobile-ads":  {
    "ios_app_id":  "ca-app-pub-3940256099942544~1458002511",
    "android_app_id":  "ca-app-pub-3940256099942544~3347511713"
  }
}

After following these steps, the basic setup is done. You can now start activating other services (auth, payments, notifications, …)