Don’t waste time setting up project, required libraries, linters, and development workflows. Everything you need is included: useful libraries, automated build and submission, GitHub workflows for teamwork, automatic versionning and changelog. Read more below.
Just push to the production
branch and wait notification in 10-15 minutes that release is available for testing.
production/ios
and production/android
branches;Don’t worry about maintaining the code style.
Just push to the main
branch to create a new release, increment version and generate changelog based on commit
messages.
assets
- static assets
src
- app sources
src/app
- non-UI app part
src/app/api
- APIs
src/app/common
- helpers
src/app/interfaces
- interfaces that describe data structures
src/app/middlewares
- redux toolkit middlewares
src/app/slices
- redux toolkit slices
src/app/store.ts
- add your slices, reducers, middlewares here
src/app/theme.ts
- global theme variables like colors, sizes, component styles
src/components
- common app components
src/components/ui
- common reusable small UI components
src/core
- project-independent part of code that can be used in other projects
src/core/api
- base HTTP queries
src/core/hooks
- common hooks for logic reuse
src/core/store.ts
- redux store configuration
src/hooks
- common app hooks for logic reuse
src/screens
- one folder per screen
src/app.ts
- entrypoint
src/navigation.ts
- screens definitions
npm i
npm start
After installing dependencies you’ll see .env
file in the root of project. Feel free to change it.
After quick start you may want to create an Expo project and set up a development workflow.
eas-cli
and logged in:
npm i -g eas-cli
eas login
app.json
file with correct values:
expo.name
— your app’s name;expo.slug
— app’s slug ;eas init
Now your project is linked to the Expo project.
app.json
file with these values:
expo.ios.bundleIdentifier
— change it like in App Store Connect;expo.android.package
— change it like in Google Play;eas.json
file these values:
build.base.env.EXPO_PUBLIC_BASE_URL
— this endpoint will be used for RTK base query;submit.production.ios
— change these values for automated submissions;package.json
file — set name of your project;EXPO_TOKEN
secret in project settings on GitHub;npm run expo-build-ios
npm run expo-submit-ios
GOOGLE_SERVICE_ACCOUNT_KEY
with base64-encoded contents of the json file;npm run expo-build-android
.aab
file from the Expo console and manually make first submission https://github.com/expo/fyi/blob/main/first-android-submission.mdproduction/ios
, production/android
, production/all