Serious inquiry about ditching Expo


I’m very curious about the differences in using Expo vs raw react native.

I have an app that’s used regularly (daily or at least several times per week) by ~1000 people. It’s built using Expo, it is not ejected, and it doesn’t use many packages. It imports 4 fonts – a bold font, regular font, italic font and FontAwesome 5 font. And it imports very few assets (previously it used to import thousands of Emoji assets, but due to problems I moved it all to cloud).

I enjoy the simplicity of Expo, but occasionally I run into problems that I can’t tolerate like the app not being able to run for some people.

To be fair, most of these issues are usually for Android. And I know React Native itself isn’t perfect with Android.

By removing Expo, will I benefit from more stability and fewer crashes and app/Android issues?

No I don’t think so.

The difference when you eject your app is that you can use NPM library that requires native code or in other word linking. But bare in mind if you eject, you need to handle all the dependencies and their version by yourself.

My advice to you is that if you are not planning to use any library that are using native code, don’t.

If you have any specific info on the errors some Android users are facing, please consider posting them here. Maybe some of us can help, and I’d be curious as to what they are so I can verify that my users aren’t facing them.

Over a year ago, we did face some issues with OTA updates on some older Android phones that resulted in a few occasional crashes, but they didn’t prevent the app from running, those have been resolved for at least 5 SDK versions now. Expo does restrict you now to Android 5.0+, so versions built with new versions of Expo will not run on 4.4, which still has a few stragglers here and there.

So, in theory, there’s maybe a few very specific issues that Expo could have on some Android phones that also depend on your version of the Expo SDK. But any issue related to React Native in general will likely not resolve itself just by moving away from Expo. So, my advice would be to collect as much data on the errors as you can, post them here and/ or Github issues, and see if we can collectively figure out a way around them.***

*** Also, if you haven’t already, add Sentry to your app (see the instructions in Expo docs, it’s really easy). It might be able to collect stack traces on the errors.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.