Both Pure React Native and Expo applications can be built mostly like a regular ReactJS Application and most Node Modules will be compatible. A notable exception to this is Routing and Navigation. See recommended packages.
Below is be listed the recommended prerequisite knowledge for each platform as well as the advantages and disadvantages. Use cases where Expo cannot be used will also be listed below.
To see what Expo is capable of and for the quick start guide visit the Expo documentation.
*See Detaching for more information
Expo has support for over the air updates bypassing the sometimes lengthy Apple review process. By default OTAs are enabled on a project and can be disabled by setting
false in the
By default when you run
expo publish your app will bundled and deployed over the air to your clients. Updates will only be sent to users whose apps are on the same release channel that was specified when publishing. By default the release channel
default is used by
expo build and
expo publish, meaning that if you don’t specify channels and have OTAs enabled the clients will receive OTAs when the app is published. However this makes it easy to accidently push out an update to production. When building your app for Staging or Production you should use the
production release channels respectively. To do this when building the app add the
--release-channel argument when running the build command. For example:
expo build:ios --release-channel production. This means that this build of the app will only receive OTAs published on the production channel. To do this run the publish command with the
--release-channel argument. For example:
expo publish --release-channel production.
This refers to detatching an existing Expo app to add custom features. Detatching a project to build it can be used to circumvent using Expo’s build servers, which is recommended.
This is not recommended, detatching requires knowledge of Android and iOS build tools
If you want to use Native Code, chances are you will not be taking advantage of all of Expo’s features and extra unneeded overhead will be added. If you need features that Expo provides such as the Camera and the Gyroscope you will spend less time using Pure React Native and installing and linking those modules yourself than getting the detached Expo project working.
Using pure React Native gives the developer more freedom than using Expo but requires knowledge of more programming languages and development environments.
See the quickstart guide for information on setting up a project, writing code, installing modules and deployment.
To see the code standards please refer to the documentation for the respective languages.
|React Navigation||React Navigation is the de-facto React Native Navigation Package, already included by default on Expo packages.||:heavy_check_mark:|
|React Router Flux||Breaking updates and long standing issues .|