Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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


Not true anymore. You can use their build service (EAS) to create app and dev client for custom libraries without ejecting


What if you need to do configuration in Xcode?


I 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/


This 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.


We also call this idea "continuous native generation". So glad to hear it is working well for you!


At 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?


What does eject mean in this context?


Ejecting 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.


No longer true.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: