5 ms·
What's great about it? I was considering using RN for a cross platform app and for some reason got the impression (earned or not) that Expo was for beginners,
by no_butterscotch 4y ago
What's great about it?
I was considering using RN for a cross platform app and for some reason got the impression (earned or not) that Expo was for beginners, and people who have "non trivial" apps will have to "eject" (as it's called in Expo) sooner or later. So I was going to avoid it.
- supermatt 4y agonot so. you can build complex apps with the expo libs. The reason people "eject" is primarily to add 3rd party native modules for functionality not available in expokit, or to optimize build size by removing unused expokit functionality. This isnt neccessary in the vast majority of cases as you can use Expo App Services to do this (locally, or remotely if you dont have mobile sdks installed) And you still get the other benefits of expo - e.g. "batteries included" api, OTA app updates, not having to install the mobile SDKs, etc.
- ericlewis 4y agoIt isn't even necessary anymore I believe, as Expo has a way to do so.
- supermatt 4y agoThere are still some cases where you will need to eject (if you want to embed as a view in an unmanaged app for example).
- no_butterscotch 4y agook thanks! whats the type of functionality not available?
- supermatt 4y agoAnything not in the expo sdk ;) https://docs.expo.dev/versions/v47.0.0 https://docs.expo.dev/versions/v47.0.0 You then use 3rd party modules (or build your own) to add/extend native functionality that is exposed to react native. For example, webtrc: https://github.com/react-native-webrtc/react-native-webrtc https://github.com/react-native-webrtc/react-native-webrtc
- TotempaaltJ 4y agoThis is (effectively) false. You don't need to eject to use third party modules (including, but not limited to, react-native-webrtc). You can use expo-dev-client to build your own "Expo Go"-esque development app, and EAS Build provides a fully transparent build environment. To be precise, EAS Build does actually eject IIRC, but you never notice this during development. I haven't ejected or seen an android/ or ios/ directory in the past year of developing an Expo app, using many third party libs.