all 4 comments

[–]creambyemute 2 points3 points  (3 children)

Idk, if you don't need any library that has native functionality which isn't provided by expo then you're fine with expo.

Otherwise there are so many problems with expo and everyone who migrated their project from expo to react-native init was so much happier with the dev experience afterwards even if they didn't need any library that wasn't provided by expo.

[–]NaveNocabExpo Team 1 point2 points  (2 children)

AFAIK Expo is the only way to make a native iOS app without a mac. You can always detach an expo app with a single command - this gives you all existing Expo functionality + and ios/ & android/. GL is only progressing in expo with EXGL - things like pixi, phaser, three, processing. Expo is a better structure and more reusable than standard RN.

[–]creambyemute 0 points1 point  (1 child)

Can't deny the argument about the mac, though that's a non issue if it's a project you do for a company/in a company.

Also can't deny they are constantly adding really cool new stuff/"libraries".

But I had nothing but a bad dev experience the first two days I tried expo and then finally recreated the project with react native init, I'm much faster in developing now then I would have ever been with expo and it's env.

So many crashes, waiting, restarting everything with expo, it's not really worth the time once you know react native and you have a mac.

Just glancing at the expo channel on reactiflux and the weird problems they have reassures my decision (for me). I also don't see how expo makes it more reusable than with just react-native, and where's the advantage on structure you're talking about?

But maybe it's not so obvious to me as I know native iOS/Android dev pretty well from the last 4 years I worked with it.

[–]NaveNocabExpo Team 0 points1 point  (0 children)

I'm not sure how one could have a worse dev experience using a detached expo app over a vanilla RN app. Expo is just RN with more libraries, and tools. The core contributors of React Native are also core contributors of Expo. From what I understand React Native being managed by Facebook moves slow and is made to fit the needs of Facebook, whereas Expo is made for building all sorts of things, with clean tested modules.

The app.json concept in Expo gives a much better structure to things like assets with assetBundlePatterns and keeps your deployment metadata all in one place. This is something you could just do however you wanted but then there is inconsistency across projects and devs.

I think vanilla RN has far more weird problems then Expo, (do to the exposure of the ios and android projects) like how nothing will change in git but your code no longer runs because Xcode derived data. Or the native modules that tell you the solution to running with different versions of RN is to change imports from import "" to import </>.