Should you use Expo for React Native in 2023? 🤔 React Native CLI vs Expo
HTML-код
- Опубликовано: 6 июн 2024
- In this video, we take a look at whether Expo is the best option for developing React Native apps in 2023. We discuss the pros and cons of using Expo, and its current state of development.
🔥 Learn React Native FAST: galaxies.dev
#############################
🤷♂️ Want more tutorials?
There you go: devdactic.com/
#############################
❤️ You can also find me on:
Instagram: / simongrimm_
Twitter: / schlimmson
Facebook: / devdactic
TikTok: / simongrimm_
Or join the Simonics Facebook group:
/ simonics
#############################
00:00 Expo vs React Native CLI on the surface
01:51 What is Expo?
03:09 Limitations of Expo
06:32 Expo Managed vs Expo Bare Workflow
07:58 Additional Benefits of Expo
09:58 Should you use Expo for React Native?
11:14 Another way to Native Apps with React
#expo #reactjs #reactnative - Наука
This should be the video that appears when anyone googles this subject. You covered so much ground efficiently and clearly. Thank you.
Wow thank you so much 🙌
Haha it was
currently building with Expo and I like it!
Thank you for the video, I really appreciate it
Glad it was helpful!
Thank you for this simon
searched for jobs "react native expo," found NONE
Nice summary, I personally use the react-native bare workflow, because there are much more libraries available.
Regarding capacitorjs/cordova I tried a few years ago and quite enjoyed it, but the performance and UX of a bundled web app is significantly worse than (react) native apps. Especially navigation gestures and animations.
Thanks Samuel, tried my best to compile all information into this one!
I think Capacitor has grown a lot over the last years, so your experience from some years ago might be totally different today - at least that's what most report. But if you still see the differences, I'd love to see an example of that with Capacitor/RN!
thanks for the breakdown
Glad it was helpful!
Thanks for the info. Subscribed. I needed to know more about Expo because I am attempting to do React Native with ClojureScript and there is almost no resources available for that topic. The only information I had gotten about Expo was that it was over complicated and you had to "Eject", however, despite being written in 2021, it is already outdated it seems.
Yeah "eject" is a thing of the past!
Hi I want to know, if you can tell me ,where the notes is for every course to do the exercises. Please if you don't mind.
Joe do you compare with Ionic, un 2023? Do you'd use Expo ?
Thanks for that last tip on Capacitor
No problem 👍
I'd say that if you are new to React Native, ALWAYS start with the React Native CLI or Expo bare workflow. It isn't as difficult or as time-consuming as people make it out to be. Expo is great but as a React Native developer you don't want your first encounter with the bare workflow to be when you're forced to eject from Expo.
That's always my advice to anyone new to React Native. More experienced devs can make that call based on the project requirements. Besides, some parts of Expo can be used by a React Native CLI app, so you don't always have to go all in with Expo.
You don't use "eject" with Expo anymore, only prebuild. And the experience of that (if you have to use it) is completely different than what eject used to be.
It is completely different now.
@@QuickTuts But it's still additional level of abstraction. If anything goes wrong, good luck if you are new to the whole React Native world. If you can, start from the bottom and go up.
I built my project using react-native cli so, my question is "Can I use expo-camera and push-notifications" into my react-native cli project.
Thank you!
Hi Simon,
I wanted to say, thank you for making this video! This is the first video on your channel I've seen (just subbed!) and I was hoping you could help answer this question for me:
I've always used Windows my entire life, and I only own windows machines. I've NEVER liked Mac OSX, and I've always found it INFURIATING to use and I've sworn up and down I'd never own one. However, back in 2020-2021 I was looking into react native trying to develop an app and it seemed quite frankly impossible to use Windows for it and that I had to get a Mac. Here in May 2023, what is the process like for coding using Expo on React Native with windows? Is it possible? If I didn't want to get a Mac but rather dual boot with Linux on my windows machine, how does Linux compare with OSX? If I can do it on windows that would be great (I'm using Windows 10, but with Windows 11 being able to run android apps does that change anything?). Thank you again Simon for your videos and your time!
Glad you liked the video and thanks for subscribing!
So I haven't used Linux and I am actually the opposite, as I did not have a Windows machine for years :D
But you should have no problem developing RN apps on Windows in general as you can use Android Studio (or simply Expo) and run the app with Expo Go - same btw for iOS devices!
However, you can't create a prebuild with Expo for iOS on Windows, nor could you actually build an iOS app with Xcode from Windows, and I don't think it works from Linux either.
In my opinion, get a cheap Mac Mini if you are serious about building apps and want the best tools for iOS as well. EAS is great, but in my opinion there are always cases where you need faster, local solutions for testing/debugging that you lack with Windows.
Hope this helps :)
the expo testing app on playstore keeps crushing, how do i fix that
Awesome
How about pricing? My app has 50k MAU so update fee etc. will most likely be expensive?
Hi!
I’m building my first serious app. it’s an audioguide aggregator. one of the screens will feature a map with markers. i was planning to use react-native-maps for that, but it turned out the app needs a fully functional web version. and expo’s MapView doesn’t support that. any recommendations on what library i should use to make eveyrthing work with Expo?
Don't have a recommendation right now but I'll look into it and see if there's a solution!
you already tried expo-dev-client with native maps lib ?
What about performance, security, privacy, legal/licensing, scaling up, privacy/compliance, speed, maintenance, etc?
For larger projects, those are the type of things which are more important to many, compared to ease of the dev env setup.
I am not part of Expo so I can't speak for their privacy, but I assume you should then only do local builds and not use EAS if you fear problems. However, for enterprise questions you should reach out to their support!
Thank you for the question, Unbelievable that it was not mentioned. Expo go costs money if you are: updating your app, work with a team (it's a big one), perform more then x builds a month, etc.
There probably is a case when you could use it for free but you will then pay for scale.
I am developing with CLI. Have you moved on to Expo? If so, I would like to know your experiences and answers to your questions.
@@bloggerklik I actually just started with react a month ago because I'm a full stack web developer and though it would be the fastest way to release some mobile apps. I am using expo because my goal is speed, but I honestly don't know how anything else works.
Hi Simon, thanks for the video,
I’m building a fitness app which has integration with health apps/smart devices, Google calendar, push notifications also video and camera integration in future, which method do you think is best for this use case.
Any inputs will be really helpful.
so I tried expo with their tutorial, it started falling apart quite quickly, I made it to the final step where they do screenshot but it didn't work on iOS and when I was trying to fix it I got all kind of issues with versions mismatching everywhere. from build erroring because of global expo-cli installed and at the same time requiring it, typescript errors, reanimate errors on ios only etc.
quite weird experience actually
Same issue. The photo stuff also didn't work on IOS. Took a lot of time to solve that
Hi Simon, I was wondering about the new architecture. Does Expo support the new architecture of RN. I have looked here and there but I am not sure 100%.
It does. New versions of Expo are always released with the latest stable RN,
As long as I know, it doesn't because I read somewhere they do not want to write C++ code to make most of their components compatible with the new renderer. And if you go and read RN Docs, they say that expo does not support the new architecture. But I believe eventually they will have to catch up.
Hi all.I am new react native developer.Anyone can give exp in which module available for Bare React Native and not available for Expo.Thanks
Have you tried flutter? I am a nextjs web dev. Looking to pick up mobile application development. I have heard good things about flutter but will love your perspective on the discuss. Whats your take on it? Is it truly performant and better than RN?
I have a full video comparing them here: ruclips.net/video/lYfgGgJgHB0/видео.htmlsi=SAt-nGNHdaLLgiEp&t=298
@@galaxies_dev Thank you so much .. Going to have a look. I also decided to go with flutter because Dart concepts are similar to JavaScript . I discovered arrow functions and a lot of goodies from es6 here. It is also very simple. Simpler than GoLang, i must confess. I will be betting on flutter. Thanks a lot
expo is amazing but if you need an app that handles, for instance, video calls, be careful, had a real hard time because of that a few months ago
Can you help explain the issues you faced?
Nous aimerions en savoir plus :p Peux tu nous décrire les problèmes que tu as rencontrés ? et leur solutions (je veux aussi des des salons video)
I am going to build one please explain issues
Even with webrtc?
Hello everything is fine?
In a project with EXPO, once finished, how to prepare to generate an APK and an IPA to install only on the local/physical cell phone?
You can either use "eas build --local" to run a local EAS build or "expo prebuild" to create the native platform folders and create your file through Xcode/Android Studio!
👏🏽👏🏽👏🏽👍🏽👍🏽
I’m assuming the circa 2021 bug for react native cli where a newly scaffolded project vomits 60 pages of error messages instead of starting has been fixed?
I definitely don't see such an error!
I really would recommend starting with the bare workflow! I really wish someone had told me that. Ripping out expo is not simple and I had to create a totally new app, and walk along its code side by side to correctly change my app to work without expo
You’re a dev, it’s not going to be nearly as complicated as you think to use the RN bare workflow.
I don't think removing Expo is that hard anymore - the experience is not like eject in the past. Plus, you can actually simply use the prebuild now!
@@galaxies_dev Is a prebuild project totally free of all expo dependencies? Is it as neat and performant as a project built from scratch or with the RN CLI tool?
you dint need to recreate totally app while expo can run bare react native project
You can simply just use a development build instead, works fine and not stressful
Os It posible use Expo and Netxjs on one project for share Code?
You can share parts, but you would have like 2 projects next to each other in one repo I guess!
Is Expo not a superset of React Native? Certainly anything you can do in React Native, you can do if you choose to run with Expo?
Expo is it's own company and thing, but in your Expo projects you still have standard react native dependencies!
Hi Simon, if you don't know React but want to learn React Native. Am I required to learn React first? Or Can I simple jump into React Native? I just want to make cross platform mobile apps with React Native, thanks Simon.
You can jump into react native directly, they are essentially the same. Work with functional components and do not go into class component for an easier approach that is also very similar to react.
@@truthiz2805 Thanks truthiz, I asked because when I went on Udemy or watched a RUclipsr explain the requirement is React before React Native. I had a feeling there was more than one way to learn something. I did some reading online for some requirements with React. I am assuming you should learn all the hooks? Hooks like the useState, useEffect? Are there other hooks I should consider if I am making a basic crud app? First project will be a simple todo mobile app. Thanks for sharing truthiz.
Yes you can! I know many how simply jumped straight into RN, so don't listen to gatekeepers and just get started and learn React as required on the go :)
I am a total newbie into programming, but I am building an app, and started with expo but it started to give me random error with the firebase storage library, so I changed to bare react native project, and that shit has been nightmarish, errors everywhere, now stuck in a error with firebase app (not even the storage, just the firebase base). It crashes and I dont any fucking idea why it is happening, and I tried almost everything in the web, and even asked chat GPT lol
Might swich to expo again because probably my problem there with storage will be easier to solve.
The problem was most likely that Firebase SDK is at v10 now, and most content was about 9 or below. For example, you don't need to import a special persistence package for React Native anymore!
@@galaxies_dev wow thanks for answering. But I switched to Supabase now, slowly I am building my app haha. And yes, I went back to Expo.
Cheers. More Supabase content would be great btw.
It seems like changes I made in styles.xml are completely ignored by expo. This makes it unusable to me, since I can't disable the force dark mode feature of xiaomi devices, which changes all colors of my app. I can't even make a white button, and animating colors have a completely weird effect, because it changes the color abruptly after a certain threshold
I have to look more into that issue, did anyone else experience it as well?
Xiaomi mui is the main issue here.
Simon , tell me, please! I want to create an app similar to instagram, which one is better to use? expo cli or native cli?
Expo
I have created an app in expo , it is a normal app which fetches info from my backend (nodejs express js) which is hosted in firebase, app works fine when tried in expo go but the data didn't get fetched in apk build from expo , as i didn't have Console i just build an apk file and tried on my android phone other ways app works fine, can anyone suggest where is the issue and best way to debug?
Are you using a SSL connection to your backend? Most likely it's some problem with the URL, but you should be able to create a local APK for debugging as well and test again with console logs through remote debugging!
Hello, I've been trying to take expo seriously lately. I have a problem with packages that I own with it. For example, while in development I try to symlink my package in the node_modules folder. When I do this the module can never be found. It only works when it's not symlinked. I tried things like explicitly defining it in my metro config with no luck. Has anyone found a solution for this?
Maybe publish the NPM packages and use those packages?
I'm using Expo and I don't know why it doesn't support hot reloading when I update a small changes in code it is completely reloading from welcome screen. What is the solution
Thanks
Maybe you have some routing issues or logic that triggers it? For me it's working just fine!
@@galaxies_dev Ok thanks I'll try another project for this issue and consider your solution 😀😀
Linking in metro in 2023 makes it feel like you made this video in 2021
you forgot to mention one thing, adapting and maintaining an application made with expo has become a headache,because of the very stupid and untested changes.
X,y,z starts breaking when you update sdk
Issue. I was following Expo tutorial under Learn section. I came across the Gesture.Tap, and the Expo Go app suddenly closes without any error logs. But the gesture works well on android/ios SIMULATORS and web. But not on the Expo Go App. Anyone encounter this same issue? How to resolve it
Hmm maybe they have their own gesture handling for the app. I'm a big fan of prebuild anyway!
@@galaxies_dev I found out the issue. When you first open the app and allowed permissions, it would work. But in your device and when you manually change the settings back to disallow permissions, then either your ProjApp and/or Expo app won’t ask the same permissions again, and it would just suddenly close when trying to access those.
The workaround solution to resolve this is we have to manually turn off all permissions again in Expo, basically from zero and rescanning the QR code again. So it will ask permissions for the first time again.
Next video: expo or ionic/capacitor, what's best? ;-)
Pretty sure there is a video on this already. RN vs Ionic/Capacitor vs Flutter
Yes there is a bigger comparison of those and Flutter here: ruclips.net/video/-tTVYqyNZas/видео.html
hey please make a video on expo file system, I want to learn to store profile pictures in local storage so that each time app is opened, I don't need to make API calls.
Sounds like a plan!
thank u, it will be great help, coz I have created a a library of workouts, and I don't want my users to make so many API calls on my s3, so I will store all images in local storage.@@galaxies_dev
This information is a bit of out date now (and only 6 months old!) as it doesn't mention Expo Dev Clients which solve loads of the testing problems for apps needing third party native libraries.
Yeah I kinda felt like dev client and prebuild are the same, in that they give you the whole freedom of development. But thanks for your addition!
I made my project using expo, and its been 2 weeks and I am still not able to create apk, My apk always crashes don't know wtf is the problem.
Did you try to use EAS?
@@galaxies_dev yeah, i had made a childish mistake, I name my app folder as src. when I changed it started working
As a Professional React Native developer with experience in lot of native module and custom native functionality, I would suggest every to go with React native cli approach, Yes I agree some libraries are outdated for bare react native project but then you can still use expo module inside your React native cli project with this you can have best of both world ✨
Hi, Since you are experienced, I want to consult you on something. I may be wondering why I am getting the error "RNGestureHandlerRootView" was not found in the UIManager even though I installed the gesture handler package. React native cli version 0.72.5
@@stickshift583 Try cleaning the cache and rebuild the application. Since it is a native view it requires full restart after installing the package from npm.
@@praveenvinopv9929hey mate, im nee to reactNative tho I have experience with reactjs I'm thinking RN might be a different beats, even tho its same syntax with Reactjs, how do you suggest i go about things, do you suggest i start with expo or bare bones react-native cli
@@kenthankgod2619For a first approach I'd suggest to go with expo it already supports a lot of libraries out the box, so you can do a lot of stuff with it as you learn, the moment you need something expo does not provide you can look up for "expo custom development clients", if you plan on keep on learning you must for sure try the cli approach, I started with the cli approach and it's really not that difficult, all you need to know is how to read the docs of the desired library in search for "linking" steps.
Hi all.I am new react native developer.Anyone can give exp in which module available for Bare React Native and not available for Expo.Thanks
I usually watch these kinda videos after learning that specific thing. So, that I can guide others if this guy is lying or not😆
True, you should always fact check my stuff as well!
CLi is suck. All of my updated projects keep crashing on android 12+. I start migrate them to expo.
Should I use expo go instead of Expo cli
Join Galaxies.dev today - the Home of the Best React Native content🚀
Expo is easy. except for basic stuff like Google Auth, which is confusing. wtf...
Of course you shouls
This is the way
What? Expo or CLI?
@@reactnative4 He was answering the question (title of the video) ;)
In my previous job i was working as a software developer I was suddenly asked to build a mobile app from scratch and barely had 2 days to learn mobile development.
I chose to go with expo since it was the easiest to get started and I think I made the right decison as I was able to focus more time writing the code than wasting my time on setup
But Eventually there was a requirement where I had to install a native package which was not supported by expo, so ejected out and converted it into a cli app.
start with expo but if you feel you need more control eject out of it
Eject doesn't exist anymore in 2023. There is prebuild, and it's really easy to use!
So i cant Use Recht native packages with Expo?
What kind of RN package? Normally you can.
@@galaxies_dev react-native-midi e.g.
I do use them all the time with expo without problems
i searched for jobs "react native expo," found NONE.
There’s still lot of bugs
In Expo?
revenuecat woo woo
The 95 % of people, who are saying go with Expo, were saying it because of simplicity to use or because it gives everything we need for app development? What was the experience level of those 95% with the app development and what kind of apps have they built?
Among the 95% are some of the biggest agencies building React Native apps, so I think they kinda know what they do and why they picked it!
@@galaxies_dev searched for jobs "react native expo," found NONE. ziprecruiter
searched for jobs "react native expo," found NONE.
@@galaxies_dev Well, I was just asking, not doubting. The number 95% doesn’t mean much without it without the proper context. It also doesn’t matter how big the agency. All these big companies have many projects. Unless, we know for what kind of app they are using Expo, it is not very useful. Anyway, I found one of your video where you mentioned some of the famous apps using Expo.
this is clearly biased