1
votes

I am currently using Expo for my react native project. I use some of the expo APIs such as Camera, Permissions, Fonts and FileSystem. However, I have come to realise that I require more functionalities such as In App Purchases which isn't supported in Expo. I have a few questions about ejecting.

  1. If i eject to ExpoKit can I still use the Expo Apis such as FileSystem, Permissions etc.
  2. If I eject to pure React Native can I still use the Expo Apis such as FileSystem, Permissions etc

  3. If I eject to ExpoKit can I then later eject to pure react native (free myself completely from Expo). Also is there a reason why I would need to do this (i.e are there any limitations with ExpoKit)

1

1 Answers

2
votes

I've exactly dealt with the situation , letme answer those questions first and then Ill tell my recommendation :

  1. Yes you can use the expo modules if you eject to ExpoKit.

2.If you eject to react native , the still you can use the modules of expo after installing the react-native-unimodules library from npm which has all the expo dependencies. unimodules expo file system

  1. There are quite limitations of expo kit as ExpoKit is another way to use Expo tools in a vanilla React Native app. The problem with ExpoKit is it is, compared to the "bare workflow", very monolithic — you essentially include the entire runtime from the Expo "managed workflow" in your app, rather than only the pieces of it that you want

Now what ive done is i had my expo app in production for quite some while , it was very slow and laggy and many modules like in app purchases etc wasnt integrated because of the limitations. Then ive decided entirely to pure react native. It's the best decision. You have control over app size and even the performance. So i would say , switch to pure react native for production and if you want to learn react native then follow expo path