Close

Introduction

Expo & "Create React Native App"

Create React Native App lets you build a React Native app without any build configuration. This may sound familiar to you because Expo does this as well — when you create a project with XDE or exp you don’t have to deal with Xcode or Android Studio configuration files, it just works. This guide is intended to outline some of the key differences between Expo and CRNA (create-react-native-app).

CRNA does not require you to have an Expo account

You can run create-react-native-app YourAppName and off you go. So what does not having an account mean, and what would signing up and using XDE/exp get you — why do we require it with Expo? Having an account Expo account allows you to do the following.

Expo uses exp.json for app configuration such as your icon and loading screen, CRNA uses app.json

How are exp.json and app.json different? app.json is the client agnostic version of exp.json. Anything that you put in exp.json would live under the expo key namespace in app.json. For example:

In app.json:

{
  "expo": {
    "loading": {
      "backgroundColor": "red"
    }
  }
}

In exp.json:

{
  "loading": {
    "backgroundColor": "red"
  }
}

The reason for this is that CRNA is agnostic with respect to the client that you use with it. Expo is currently the only client that exists (learn more about what the Expo client is here), but anybody can build a client that is compatible and include their configuration under a key namespace of their choice.

Expo supports both app.json and exp.json.

Can you use XDE/exp on a CRNA project?

Yes! Open the project as you would any other Expo project using XDE and exp and it will work as expected.

What does using ExpoKit mean for a CRNA user?

If you want to add custom native code to your Expo app, you will need to use ExpoKit. With CRNA, you have two options: you can either eject to a normal React Native project, without any dependencies on Expo, or you can eject to use ExpoKit, which will allow you to continue using the Expo APIs. Read more about ejecting with CRNA here.


Still have questions? Ask on our forums!