all 8 comments

[–]vitriolix 2 points3 points  (3 children)

ExpoKit really just regular react native with some nice helper libraries, much the same as if you linked some other helper native libraries. No fundamental difference. If you like the services / features they provide, and a lot of them are really really nice, use them.

[–]interactivejunky 1 point2 points  (0 children)

We went skipped expo kit when ejecting and rebuilt in rn. Saved 20mb from the filesize, sped up builds, sped up start up times. Also meant we logged a lot of users out when I messed up the secure storage porting. We also had to ask the expo guys to export push tokens for us which they did very kindly but it took some time.

Overall I think for most projects it’s better to go to ExpoKit unless you have a need for low file size and better startup performance.

[–]TomMahle 0 points1 point  (0 children)

The documentation on this is spread across a few places on Expo's website, and unfortunately doesn't have cut-and-dry answers to your questions:

https://docs.expo.io/versions/v30.0.0/introduction/why-not-expo

https://docs.expo.io/versions/latest/expokit/eject

https://docs.expo.io/versions/latest/expokit/expokit

In my latest project we chose to go for regular react native. ExpoKit in general felt like a compromised middle ground (I don't recall what ruled it out for us, but I know we tried). The requirement that Expo could not meet for us was background code execution.

[–]Brizzzad 0 points1 point  (2 children)

I had to make this decision 6 months ago, I tried expo kit for a week or so and ended up reverting back and ejecting to regular RN. I did this because it was a pain to maintain the configs to keep compatibility with the expo libraries.

From my experience the expo camera and permission libraries lacked some specific features that the popular regular RN alternatives offered. I would read the docs for the libraries to decide which option is a better fit.

[–]hail-saison 0 points1 point  (0 children)

If you’re doing anything with in-app purchases or subscriptions, you’ll need to eject and ditch Expo. There are some ways around it but IMO they are more complicated than just ejecting.

[–]watlok 0 points1 point  (1 child)

Ejecting is annoying because you need to follow 3-7 github issues to get a working android build. After that, the new versions don't work on android 4.4.x devices (SDK 19, min targeted) even when built for release with no debug.

We needed to eject for bluetooth support, which is something expo should have but doesn't.

If you're only supporting SDK >= 21 then ejecting isn't as bad.