React Native vs. Expo

Let me start off by saying this isn’t a normal comparison since Expo is just built on top of the React Native framework. After building numerous apps already with regular React Native I wanted to test out Expo for my next project which consisted of reverse-engineering the Tinder app for a tutorial series. This is the first article of a series documenting my love or dissatisfaction with Expo along the way.

Why Expo?

After building 5 apps with React Native I have grown to love it as it makes the whole development process for iPhone & Android so much smoother. Once Expo came out though I was skeptical of using it as it was dependent on an outside company’s engineering team and keeping up with the rapid React Native update cycle. If it’s not broke why fix it? Outside of some small hiccups getting the right versions of Node and Xcode running to work with React Native I really had no issues, and even those issues are evident in almost every programming project. I had read up on Expo a few times before and I never really had any interest in using it until a student in my other course How To Build the Food Findr iPhone App emailed me asking my opinions on React Native Core vs. Expo, which is what started my deeper research into Expo for this article.

Fast forward to starting out a new iPhone app from scratch and my initial thoughts are, not bad…not bad at all. The process for getting started with both React Native and Expo are very similar in that you have to download Node, Watchman, Xcode for both and then for Expo you have to down their native XDE development environment and the expo iPhone app.

npm install -g create-react-native-app
create-react-native-app YOURAPPNAME
cd YOURAPPNAME
npm start OR yarn start (both work)

Once you have everything installed it just takes those 4 lines in your terminal to get started!

But what is really cool about Expo is the iPhone app which you can use for development and live reloading. You can also send the link to others outside your network to test the app during development. Another issue with React Native is that I heard that some people have trouble with Xcode when getting started for the first time but with Expo you just use their own XDE, you don’t need to use Xcode directly (though you do still need it installed) . If you want to stick with the iOS simulator over the app though you can still do that as well, always helps to have multiple options!

Advantages of Expo

  • Easy to get started
  • Option to live reload on Expo app and others
  • Great documentation
  • Easy to upgrade versions
  • Even if an API isn’t supported you can revert back to React Native Core

Disadvantages of Expo

  • No matter how fast the development team is, they will always be a bit behind React Native Core
  • Not all API’s are supported
  • Must stick with supported SDK’s
  • Less flexibility compared to React Native Core

Conclusion

Check out the video below for a more in-depth overview for the How To Build Tinder w/ Expo Course.

React Native vs. Expo

Want To Learn How To Turn Your Ideas Into Code?


Written by Tim Moreton who lives and works
in Philadelphia building useful things.