Transcript from the "Expo vs. React Native" Lesson
>> Now if you've been eyeing of the React Native space already, you've probably heard of Expo. And if you haven't, Expo is essentially a suite of tools built for an around React Native. And it's designed to basically make your building up experience as easy as possible. So it's all focused on developer experience.
[00:00:19] There are a separate company and they're not affiliated with Facebook. Now, some people have really strong opinions about whether or not to use Expo or just use plain React Native. So if you're one of those people, just feel free to skip the section and just carry on with your preference.
[00:00:36] This is an introductory workshop and can be followed with Expo and without. However, if you have strong opinions, if you don't have any strong opinions, and you need some help deciding just read on. If you're new to mobile development and basically just wanna have a taste of React Native and just play around with things a little bit I would 100% recommend you go with Expo just because it's easier to get going.
[00:01:01] There's a lot less up run configuration work and you just get to writing code much quicker, you should also definitely go with Expo if you're on Windows or Linux. But you want to use your physical iPhone to run the app on. Because you can't build an iPhone app on Windows and Linux you need a Mac for that.
[00:01:20] The main reason I'm recommending Expo for an introductory workshop, is because it may take quite a bit of time to set up your development environment for the first time without Expo. From my experience, how long it could could take? It depends on your environment and whether you want to use your physical device, or if you want to use an emulator, or simulator.
[00:01:46] The Expo on a physical device is the quickest possible way to get going. If you already have a Node installed, for example, you pretty much get going a couple of minutes for both Android and iOS. If you want to use a iOS simulator or an Android emulator, you'll have to install Xcode or Android Studio which can take quite a bit of time, hence the added time.
[00:02:10] And if you want to do playing React Native on a physical device, or an simulator, or an emulator, there's a little bit more extra time to get everything to play nice in your computer. And on Windows or Linux, it generally can take a little bit longer. And you can't build any iOS applications because you need a Mac device for that.
[00:02:36] This is why most React Native developers actually end up on a Mac, because you can build an Android app on a Mac and an iOS app, but you can't do the same on any other device. Now Expo has some restrictions and the main restriction is basically that, if you need to add any native code, so what we discussed earlier about if you find any things that you wanna do that React Native doesn't let you do.
[00:03:04] Or that are not built into Expo, you won't be able to do it without, what we call ejecting. And this basically means converting your Expo application into a Vanilla React Native application. So that's the only time where it's becomes tricky. So in my experience working with React Native, all production apps that are built have been either ejected if they started with Expo or just started with playing React Native.
[00:03:35] And this is mostly the clients, what the clients wanted, or just. What we've had to do due to the features that we had to add. I always use Expo for in-person workshops though, because otherwise we'd all spend two hours getting set up and that's not very fun.