So the post is with reference to article
https://blog.expo.io/you-can-now-use-expo-apis-in-any-react-native-app-7c3a93041331
The 'Managed apps' here refers to an app created using expo-cli. I was wondering if one could implement one's own native module in a 'Managed App';
The app does run with react-native run-ios or react-native run-android, so do we get all the functionality of a normal react-native app?
The title of the article that you shared says:
You can now use Expo APIs in any React Native app
Which means that you can use the Expo APIs, but in 'Bare' workflow.
It doesn't say that you can work with native modules in 'Managed' workflow.
Bare workflow means that you cannot use the following Expo services:
The build service (expo build:ios; expo build:android)
Expo publish
over-the-air (OTA) updates
Push notifications
Related
I build an app with Expo tool .. but now I what to move to react native without expo .. I tried to just create a new project in react native and then transfer the code that I had written and install components that I had used in my app .
the app with Expo work as expected put with moved to react native without Expo works as unexpected and crashes.
you don't need to transfer the code like that, the expo provides us to detach our code from expo to without expo react-native projects.
please refer to this link expokit eject
if you want to use expo API in your project then you can detach your app using detach-with-expokit.
use expo eject to add ExpoKit (choose the "ExpoKit" option).
I found that create-react-native-app is based on expo. but when using exp-cli, it is also based on Expo.
what are differences between create-react-native-app and exp init ?
Updated answer:
create-react-native-app was replaced by expo-cli.
https://docs.expo.io/workflow/glossary-of-terms/#create-react-native-app
Answer to this question is well documented in expo documentation
Expo & "Create React Native App"
Create React Native App lets you build a React Native app without any
build configuration. This may sound familiar to you because Expo does
this as well -- when you create a project with XDE or exp you don't
have to deal with Xcode or Android Studio configuration files, it just
works. This guide is intended to outline some of the key differences
between Expo and CRNA (create-react-native-app).
CRNA does not require you to have an Expo account
You can run create-react-native-app YourAppName and off you go. So what does not
having an account mean, and what would signing up and using XDE/exp
get you -- why do we require it with Expo? Having an Expo account
allows you to do the following:
Publish your project to a permanent URL, eg:https://expo.io/#community/reactconf2017.See Publishing on Expo for more information.
Build binaries for app / play store distribution. To do this with CRNA without using Expo,
you would need to run eject.
There are advantages and disadvantages to either:
React Native app advantage:
You can add native modules written in Java/Objective-C
React Native app disadvantage:
Needs Android Studio and XCode to run the projects
Expo advantages:
Setting up a project is easy and can be done in minutes
Expo can build .apk and .ipa files
You do not need simulator to run your app.
Expo disadvantages:
You can't add native modules.
Your final app will bigger with expo init than with react native app init.
I suggest you read this:
https://docs.expo.io/versions/latest/introduction/why-not-expo
I have build an app using react native(detached) but the thing is I would want to completely get rid of Expo. The reason is, what if one day EXPO service get shut down or no more supported.
So in this case I would not want the app to be affected.
Currently I need to publish my app thru ExpoKit to see the latest changes, how would I build my android app so it would not have any reference to Expo but still be able to work properly
Currently this is how I understand how the react native and expo works: first u build ur app using react native code and then a bundle.js is generated somewhere on cloud(EXPO) using publish command so the app communicate with that bundle.js.
Note I am not using any feature from Expo so why would I need Expo in this case?
Edited: If I am detaching my app from expo, I mean why would I still need Expo? Can't I just build the app and run the app without expo at all?
You can build your whole application without using expo, just follow the steps from facebook documentation in "Building Projects with Native Code" tab.
or
you can run "npm run eject" in your project root directory folder.
After this, you can build your appliaction using react-native cli commands, like
react-native run-android.
edited :--
For building apk for production, you can follow steps given in facebook documentation as generating signed apk and for released IPA for iOS yo can follow building your app for production for IOS.
In plugin they mentioned that the razorpay is not going to work with expo. i want to acces razorpay plugin in my react native app. is there any way..? i am using expo. please help me
if the react native library you want requires a linking step, then you can detach and use ExpoKit directly.
https://docs.expo.io/versions/latest/guides/detach.html
EAS builds officially released in Expo SDK 42 makes it possible to run native modules on expo projects.
In order to make sure Razorpay wrapper works correctly:
Create a dev build of your expo app by following the instructions mentioned here.
run your project by running the following command
For ios
expo run:ios
For android
expo run:android
I want to use Realm in CRNA (Create React Native App) app. After installing this package, I have to use this command to link it to the ReactNative.
react-native link realm
But after running it, I get this error:
"react-native link can not be used in Create React Native App projects. If you need to include a library that relies on custom native code, you might have to eject first."
Is there any way to use Realm in CRNA app without ejecting?
I noticed this link but has it ever been changed?