4 ms·
>combining RN and RNW is a pain in practice. It can be done, but not easily. It's completely painless with Expo. With the tradeoff being you are locked into th
by ramesh31 4y ago
>combining RN and RNW is a pain in practice. It can be done, but not easily.
It's completely painless with Expo. With the tradeoff being you are locked into the Expo compatible ecosystem. Incredible devX if you go all in on it though.
- no_butterscotch 4y agoWhat'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.
- TotempaaltJ 4y agoThe "Expo compatible ecosystem" has been all is the react native ecosystem for quite some time now, from what I can tell
- ericlewis 4y agoI agree with Expo being pretty painless. Anytime people are really set on using RN I tell them, just use Expo. Now a day, you can integrate external libs and such quite easy.