6 ms·
works until you need to use a native library that hasn't been ported for Expo, then you need to eject. I would only consider Expo for POC/MVP
by asdev 3y ago
works until you need to use a native library that hasn't been ported for Expo, then you need to eject. I would only consider Expo for POC/MVP
- andridk 3y agoNot true anymore. You can use their build service (EAS) to create app and dev client for custom libraries without ejecting
- jacobp100 3y agoWhat if you need to do configuration in Xcode?
- darcien 3y agoI believe you could do it by writing a config plugin[1] that will apply the desired config changes to the native project files. Expo will apply the config from plugins when they are building the native app for you. (Disclaimer: I use Expo at work for cross-platform app including web but never wrote my own plugins) [1]: https://docs.expo.dev/config-plugins/plugins-and-mods/ https://docs.expo.dev/config-plugins/plugins-and-mods/
- jeppester 3y agoThis was my main criticism as well, but not anymore. With the "prebuild" workflow you can regenerate your iOS and Android projects anytime you need. And set up scripts for adding external libraries in the process. It is more work to set up over just altering the native projects, but the result is rather nice. I've never felt 100% confident that react native project folders wouldn't break for arbitrary reasons. Being able to so easily start over is very useful.
- jameside 3y agoWe also call this idea "continuous native generation". So glad to hear it is working well for you!
- conradfr 3y agoAt my last job last year there was many React Native libs (I remember Firebase) our front-end dev couldn't use "because of Expo". Maybe that's better now?
- techterrier 3y agoNo longer true.
- clawoo 3y agoWhat does eject mean in this context?
- s_dev 3y agoEjecting means turning the project in to a native project i.e. one that can be opened and edited with Xcode or Android Studio. This is in contrast to an IPA or AAB file which can be deployed to a device or distributed to an App Store.