Note
In progress
Need a jumpstart for your Expo projects? This is a pre-built setup with all the common tools you'll likely need.
It uses Turborepo to manage multiple parts of your app and includes:
apps
├─ expo
| ├─ Expo SDK 52
| ├─ React Native using React 18
| ├─ Navigation using Expo Router
| ├─ Tailwind using NativeWind
| └─ I18n using react-i18nex
packages
├─ rn-ui
| └─ Start of a UI package for the Expo app using React Native Reusables
tooling
├─ eslint
| └─ shared, fine-grained, eslint presets
├─ prettier
| └─ shared prettier configuration
├─ tailwind
| └─ shared tailwind configuration
└─ typescript
└─ shared tsconfig you can extend from
This project uses
@acme
as an example for package names. You should replace this with your own organization or project name (e.g.,@my-app
). You can use a find-and-replace tool to change all instances of@acme
.
Here's how to get this project up and running:
# Get everything installed
pnpm i
You need to tell Expo how you want to run your app (either on an iOS simulator or an Android emulator).
-
Make sure you have Xcode and the Xcode Command Line Tools installed. Follow these instructions from the Expo docs.
-
You may need to launch the simulator manually first. Run
npx expo start
fromapps/expo
, and then enterI
to launch Expo Go. After the manual launch, you can runpnpm dev
in the root directory. -
Update the
dev
script inapps/expo/package.json
like this:
+ "dev": "expo start --ios",
- Run the app:
pnpm dev
-
Install the Android Studio tools. Follow these instructions from the Expo docs.
-
Update the
dev
script inapps/expo/package.json
to:
+ "dev": "expo start --android",
- Run the app:
pnpm dev
When you need to create a new package (like a new library of components), use this command:
pnpm turbo gen init
The tool will ask you for a name and if you want to add any initial dependencies. It will also set up the basic files and configurations for you (like package.json
, tsconfig.json
, etc.) and ensure your formatting, linting, and type checking are all ready to go. Then you can start building your package!
To quickly add a new UI component, use the interactive react-native-reusables/cli
command-line tool:
pnpm ui-add