setting up flipper but ios android folders are missing (RN 62.2, Expo 37) - react-native

I think I saw in a documentation somewhere that they had merged android and ios folder into one and it's now all in index.js file but maybe I dreamed it because I can't find it. I'm trying to setup flipper on my RN project and it's on v62.2 & expo v37 but they are no android or ios folder which is why I am so confused. My project is fully running both on ios and android.
How could I setup flipper if these folders are gone?
Didn't expo or RN merge the android & ios folder into the index.js?
If they are merged then how can I setup flipper?
Edit: So are they any alternative to flipper for layout debugging?

Flipper requires you to update for iOS: the podfile and the AppDelegate, for Android: the build.gradle and the MainApplication.
This is manipulating native code. Expo does not allow you to manipulate native code as it is abstracted away from you. To see what the differences between Expo and a "pure" react-native project I suggest reading the answers to this SO question as it should clear up some of your misconceptions.
As Flipper has just been released it is unlikely that these native modifications will be in the current Expo SDK. The Expo 37 SDK uses React Native 0.61 internally which means as this is a feature of react-native 0.62.0 it will not be available in 0.61.0.
To get Flipper working in a current Expo project you would either have to eject and then follow the instructions on the Flipper website for setting it up, or wait for Flipper to be added to the Expo SDK (which could be expedited by adding a feature request.

Related

React Native and Mediapipe ios framework compatible

I created a MediaPipe ios framework
And I'm trying to integrate it into a React Native project
But the app crash in Mutex::Lock() without any information
I believe the reason is my framework and RN both use glog
How can I disable glog for one of them ? or any idea to fix it
Thanks for reading
Xcode Output
I ran into a similar situation, Mutex loc() is associated with Metro Bundler dependency. Try doing npx react-native start this will start the Metro Bundler before you do npx react-native run-ios

How to make iOS and android folders in react native expo project

I am working on react native expo project and I have no knowledge regarding how to create iOS and android folders within expo project.so please help me regarding how to create iOS and android folders and at last how to make final build. thanks.
https://docs.expo.io/versions/latest/expokit/eject/#3-eject
From your project directory, run expo eject. This will download the
required dependencies and build native projects under the ios and
android directories.

Ejected expo react native app requires expo?

I created a RN with create-react-native-app, and I have now decided to eject. It didn't work initially, and required some packages to be installed (#babel/...), but now, it complains that Module 'expo' does not exist in the Haste module map.
Why does it still require expo, now that it has been ejected? Or have I misunderstood what ejection does?
N.B. during the ejection I chose the option to eject to an RN app, not to ExpoKit. This is on iOS, currently.
When ejecting expo app you'll be asked about using expo-kit or just react-native and it's up to you to choose, plus Module 'expo' does not exist in the Haste module map means you still using expo in your code so double check your code to be sure that you're not importing expo anywhere and try again.
TL;DR
Ejected expo react native app requires expo? the short answer is no.
when using expo app you have the ability to build your app using the expo server so you don't have to have Android Studio or XCode installed all you have to do is $ expo build:[android|ios] and download your built package after the build process is done also you can run your app using expo client app on Android and Ios but once ejecting you'll lose the ability of using expo server as your build environment instead you have to use Android Studio or XCode, but the main difference here is when you choose expo-kit you still have the ability of using expo client to run your app and you still have the ability to use expo modules inside your code but when you choose react-native you can't use expo client instead you have to use the native tools, anyway in all cases once you eject your project you have to build it yourself and you can't undo this step.
Sidenote
You can build very powerful apps using only JavaScript without any need to eject especially when using `expo SDK 31+, I'm working on an app now with features like detecting location, live maps, social login and chat and I don't need to eject it at all.
Please take a look here and here
Update:
One last thing you have to remember is that when using expo or expo-kit you can keep developing ios app on any OS but when using react-native you can't do this you MUST have a mac.

differences between create-react-native-app and exp init

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

Can we user razorpay plugin with reactnative and expo

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