I recommend Expo, because it gives you an edge compared to other ways to create apps. The expo edge 😎

You should really try it! Certainly if you're new to the app development world and you want to build a cross-platform MVP for your startup. Or maybe you just want to learn how to make apps. Expo is great for that...

Advantages of Expo:

  1. We can use the very stable expo library You save sooooo much time when learning React Native. Expo has the most crucial features built in and it automates building process so you don't have to go through this difficult stuff. You can be certain that things work. Expo's possibilities are limited compared to those of react-native. You can't just link new external components if they need new native bindings. However, at least you can be sure that the stuff that expo does have works, and it won't break. It's a safe environment.

  2. We can use their very stable OTA system You can show your app to friends or random people on THEIR PHONES without having to push it to the app stores yet. Expo makes it possible to have an app inside an app. This is called Over the air updates.

  3. Building automation becomes a possibility if you don't detach. This saves you days, or even weeks.

  4. Push notifications Expo also has their own tool for push notifications which is very easy to set up, compared to other push notifications libraries. Or, if you detached, you can still choose ot use FCM or OneSignal if you like.

  5. Not just a sandbox It's not just a sandbox to play and learn. You can actually make some real good app with this!

  6. Detach and still get native possibilities If you need more functionality you can always detach your app. You loose the build automation, but you can keep all your code and continue with your app. At least you have had the 'expo-edge' for a long time while developing your app! That's why it could be smart to delay detaching until you really need it to save time in the process while building your app.

Disadvantages of Expo:

  1. App size becomes bigger
  2. Your code gets published through their servers, do we trust this company?
  3. Required Android and iOS versions: The minimum Android version Expo supports is Android 5 and the minimum iOS version is iOS 10.0. For iPhones, just 1% has lower than iOS 10. Of all Android devices worldwide, 11% has a version lower than 5. In the Netherlands, this percetnage is just 3%.

Choosing Expo or ExpoKit

Here are some differences you should take into account:

Expo ExpoKit
No FB SDK, but Segment may do the job FB SDK
Easy push notification setup (4 hours) Very hard push notification setup (4 days+)
Build Automation No build Automation
Live reload on real devices without connecting a cable, Live reload on real devices using a cable, using a lot of RAM
No need for XCode or Android Studio Must have XCode and Android Studio
Live reload on unlimited devices Just 2 real devices max
Over the Air Updates Over the Air Updates
You don't need a Staging app, much less building You need a staging app to test some features
Much easier setup for new developers (<2 hours) Setup can take days
No maintenance of native dependencies and links Needing to maintain android and ios folders
Drastically Decreasing learning curve of developers High learning curve
Just Javascript Javascript, Objective C, Java, XCode, Android Studio, etc.
No release channels needed Every native change that breaks previous versions needs a new release channel, otherwise users with older versions get a breaking change
20% less wasting time on building/deployment
20% less wasting time on native changes
= 40% faster feature development