Get Started
Get Started
An overview of the ExpoShip JavaScript starter kit
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 TypeScript version
git clone https://github.com/rudolfsrijkuris/expo-ship-ts.git [YOUR_APP_NAME]
cd [YOUR_APP_NAME]
git remote remove origin
2
Environment variables
Rename .env.example
to .env
.env
# Supabase
EXPO_PUBLIC_SUPABASE_URL=
EXPO_PUBLIC_SUPABASE_ANON_KEY=
# Revenue Cat
REVENUE_CAT_APPLE_KEY=
REVENUE_CAT_GOOGLE_KEY=
# One Signal
ONESIGNAL_APP_ID=
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-SLUG]", // App's slug
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/images/icon.png", // Location to your app's icon
"scheme": "com.[YOUR-APP-NAME]", // This is used for supabase
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/images/splash.png", // Location to your app's splash screen
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.[YOUR_APP_NAME].[YOUR_APP_NAME]app" // Your app's bundle identifier for iOS app
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png", // Location to your app's adaptive icon
"backgroundColor": "#ffffff"
},
"permissions": [
"android.permission.RECORD_AUDIO"
],
"package": "com.[YOUR_APP_NAME].[YOUR_APP_NAME]app" // Your app's package name for Android app
},
"web": {
"bundler": "metro",
"output": "static",
"favicon": "./assets/images/favicon.png"
},
"plugins": [
"expo-router",
[
"expo-image-picker",
{
"photosPermission": "The app needs access to your photos to set a profile picture."
}
],
"expo-localization",
[
"onesignal-expo-plugin",
{
"mode": "development"
}
]
],
"experiments": {
"typedRoutes": true
}
}
}
After following these steps, the basic setup is done. You can now start activating other services (auth, payments, notifications, …)