Skip to main content
Hero Light
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, …)

Set up development environment

Set up your development environment

Set up Supabase

Set up user authentication with Supabase

Set up One Signal

Set up push notifications with One Signal

Set up Revenue Cat

Set up in-app purchases with Revenue Cat