I don't *want* to use React Native
Вставка
- Опубліковано 29 вер 2024
- React Native doesn't build the best apps, but I would choose it over building 2 apps with Swift/Kotlin for iOS/Android store.
#benawad #reactnative
----
Follow me online: voidpet.com/be...
#benawad
I don't want to use React Native(as a millionaire)
TechLead’s line
More like Clement mihilsenoughAlready with the AlgoExpert plug.
Lol... toasted....
But are you a divorced tech lead that was working for fb?
He is great teacher, I don't know why he used that title, whatever.
In one word I love you !
Hey! You are the guy who created VS Code Stories. Awesome!
I think flutter for web could be cool one day. I just don’t like the idea of not being able to use html
Not able to inspect also😂
+ it's on canvas, the last child element is canvas
Needs 3 files to load and then the first content shows up, one file is main.dart and other two are of web assembly for canvas loading
I dont wanna eat react.native ~ Ben Awad
why not use a PWA?
I just come here to hear Ben ASMR
Yes that's what it's called. I was trying to think of a name for why I keep coming back.
Truuuu
Hahahahahaha
wtf
@@thecashewtrader3328 lmao
"There are some developers out there that will write you an app in assembly and it just comes out slower than a python interpreter"
Lol
"It's the way things are, life sucks" - New React Native Slogan.
This guy looks like he's always smiling or about to laugh
Indeed 🤣😂
Zuck is a computer lizard though
I’m a WET programmer. It’s so much easier.
Write Everything Thrice
Why even try?
These thirsty bots are getting smarter
@@volmehen I felt that...
Write Extra Tests?
I feel like developer experience is severely underrated. The power of having a single codebase way outweights any performance or size costs you add imo. Especially in 2020 when everyone is dropping support for any device more than 10 years old.
companies don't and don't need to optimise experience for developers. they want best experience for the users.
Companies should optimize user experience for the user...
Just a few performance issues on react native for the user means the company is going to lose millions of dollars, so its actually cheaper to have two teams.
Your opinion is wrong IMO. Hyrbrid frameworks are always frustrating as hell to work with, full native is a way better development experience and it yields a superior product. The only reason to go hybrid is if the business is on a shoestring budget or cannot find competent enough programmers.
@@Goremachine Yeah, antoher fun thing is some devs need to write native code and abstract it with react native xd imagine
"a single codebase way outweights" You mean a single codebase that has Javascript AND Swift AND Kltlin code? Yeah 3 codebase in one, and pretend it's fine
bro you scared me in the beginning
Ben is Ben 😂
I think that native development should be done just to know what react native is abstracting, but I feel like in a year react native will be able to create apps that can contend with native development
senator, we run ads
**cheeky mark smile**
Performance is less of an issue everyday when you carry a super computer in your pocket
The real question is do you make more money as a UA-camr or as a Dev?
pretty legit question
yes
Honestly I prefer Flutter over React Native but I see why people choose RN.
yeah I've been using flutter, it's missing a few things but it's getting there
@@handsanitizer2457 I've been learning flutter for a week and i don't have any development experience so i can't even compare them what do you think should i switch to rn for adapting to web easily in future or just stick to flutter
@@burakkosova8481 just stick to flutter. But, it's up to you. I just started learning flutter a few days ago and i'm used to react native (not saying that i'm an expert at it). But for me, since rn use javascript, it was easier for me to learn.
@@StarBattle08 yeah committing to one technology would be better i guess thank you
For me personally, I prefer RN because Flutter uses Dart which is OOP. While in RN I can use something like ReasonML for FP. IMO writing logic is way more crucial than building UI
I'm onto flutter because it's so much easier than Android, ios and react native. But yeah flutter web is not that good neither will be in the foreseeable future. But the mobile app will rapidly evolve to be much more than your site would ever be with web technology I guess. But yeah react native is not awful, I just discovered flutter because first, react native cached my eye because is the first hidrid tech to do something usable for mobile
@Vizman216 What? I've coded 250+ screens, and I never had to write conditions in layouts.
If you're talking about same widgets that look different on iOS and android like in RN - remember, that RN UIs break every time, when underlying widgets change.
I just recently built my first app in React Native and this video makes me very happy
What I’ve been hearing that interests me is companies making apps that are native but utilize React Native for specific views (like a profile view, or a view that fetches and displays rows of data).
I believe I read that Airbnb is one of the proponents of this approach.
Probably worth revisiting now that Flutter for web is production ready.
yessssssssss
the main advantage right now with react native is that you have something like expo, which is a godsend. "want to test your app without having to bend the knee and suck apple? no problem bro, here, download this little client on your ios device, log with your expo account and you will see your project currently in dev or on the release channel you want to test, go ahead have fun", "on android too? kay buddy do the same there".
"oh ready to make a build? kk, dont worry bruh, I will build and compile that for you on the cloud, just sit tight I will send you the artifact for the download".
on top of the fact you have release channels where you can tell certain builds to only receive updates from a staging channel, production channel etc, it really raises you up to speed.
Disadvantages however are what you would expect, need to configure that low level shenanigans? want to add a native library that is not currently in the expo managed workflow? good luck buddy, see if you can work around that, if not welp, you can always eject and keep using the channels and the other expo libraries that are compatible with the bare workwflow but now the config and compiling for each platform is on you.
meanwhile in flutter, ionic and others, there is nothing akin to that yet as far as I know. The react community is both a blessing and a curse sometimes.
I've just started app dev and have really been enjoying all the stuff that expo makes easier for newbs like me. However, I can't figure out how to reduce apk size after builds no matter how hard I look.
People tell me to just copy paste sources from the expo project over to a "react-native init" project but how will I get the expo libraries I imported originally without expo? This has been such a headache. Made a simple audio playing app as my first one and it had a bloated 58 MBs apk x_x
@@hououinkyouma5372 there is no way around the size of an app build from expo, that is one of the drawbacks too, all of those are in the documentation.
The app is big because expo by default includes all the binaries and native configs for anything you might need from expo so you can just use expo publish without worry, that also means there might be a lot of code you dont really need so in return you get a really thicc app.
They are aware of such shortcomings and have been saying they are working on trying to customize such behavior to only include what you need and such but yeah, if you really need to shave off that size you would need to eject, and that suggestion they gave you make sense, you can take all your code you have right now and just migrate it to a plain codebase, but it would be easier to just use expo eject, it will give you all the configurations for ios and android and you wont need to track which libraries you need to install again and such.
Of course if either you eject or take the codebase to a react native init one, you still need to check which expo libraries you were using and check if they are avaiable outside the managed workflow. The most common ones are avaiable, at the end of the day, when you use expo install, its just an npm package that makes sure that whatever you might end up installing, is compatible with the expo sdk version you are using, check the eject section in the docs so you can make a well thought decision.
@@arashitempesta Thanks for the advice! I didn't know about the eject option for expo. Will surely look into it. Also, I read on a stackoverflow post that some libraries aren't available through expo and one would need to download them from a simple react native project. If that's true, then wouldn't getting too used to expo be detrimental to one's experience in the long run? Sorry for the questions, I'm just curious 😅
@@hououinkyouma5372 expo install uses npm under the hood, expo install is an utility to make sure that the packages you are downloading are at the correct supported version for your expo sdk. Example, react native webview needs native configurations below, that is why its included in the expo documentation because the expo team included those configs for you so you can use that library if you need it. if the library uses only JS there is no problem.
And the detrimental part well yes, expo abstracts all the configurations you would need to learn, maintain and configure for the platforms you are targeting. Its like create react app, under the hood it configures babel, webpack and such so you can just start coding and set up all the base functionality, if later you need to configure those low level configs, eject and do it but at that point it means you now have to bite the bullet and learn how to do that.
It all comes down to what you need and time, if you can just use expo because it fulfils all your requirements there is nothing wrong with going with it and not bothering learning the platform specific configs. It all comes down to weighting the pros and cons for each option.
Plz make advance tutorials videos frequently ....
True that
He did a 14 hours video that could have been a two weeks video
@@usmansbk and it probably took him a few months to make.
If you do Flutter you can make the website in the time you saved using Flutter. I have made two production apps using RN, and am now about halfway in my first Flutter app. My impression so far is that if developing an app natively for iOS and Android is 2, then React Native is about 1.5. Flutter feels more like 0.8 so far.
As long as you develop CRUD apps with mostly just forms and standard widgets you'll probably be OK with either, but when it is time for slippy maps and video playback I had serious headaches with RN, especially on the Android side.
2:17 I literally just died over here. Best content of coding history bruh.
How about Ionic + React? I'm a filthy Angular dev so Ionic works for my use case, but Ionic announced support for React in around April.
I might be wrong but idk if ionic compiles to native. I think it is all in WebView? Not sure if that changed so in terms of performance not as good as react native
@@RadTwin it's still PWA
@@RadTwin yes its not native, still a webview but way faster than before. In terms of performance, yes, ofc its not as fast as RN but its also extremely easy to make apk or ipa with it
As a flutter dev I have to say that the code sharing between native apps and web is actually very easy now. Flutter web is still in beta so it has some quirks that you have to account for but for the most part it's a very smooth experience between mobile and web (I would argue that more so than with react native and web). Obviously for companies it's much easier to find react devs and put them to work with react native with very small amount of time needed for adjustment which is probably react native's biggest asset right now compared to competition.
Not to mention transpiling for desktops is also quite easy, (quirks as well) but still
Good luck with SEO on your flutter app
@@HonestCode you mean google play SEO? lol
You mentioned React Native's biggest "advantage" is that it uses JavaScript... and that's EXACTLY the reason why I hate it so much 🤣🤣 along the unnecessary "web like" notation for every single freaking component.
Did you try using typescript instead? I think you would love it
And I bet you take forever to build apps, probably jerk off to functional programming, and configure emacs all day while getting nothing done.
Flutter is really nice now, but there are simply MUCH fewer jobs than React Native. I learned Flutter for fun, and its very impressive, but I'm learning React Native now, for fun, and for the fact that there are lot more jobs that ask for it vs Flutter
Idk about your development as a programmer. But as an entertainer... steep AF 👌
His development is great lol
@@nathanielwoodbury2692 I just literally meant I have no clue about it :D
@@nathanielwoodbury2692 his an ok dev. React native over flutter give me a break. He's a dev that refuses to us anything but javascript/typescript - backend, frontend, mobile, driving, walking, skating
maybe you can see his one on one coding online challenge with William candillion, you will realize how sharp he is
@@xacobtrott9204 Yeah exactly, Ben has been coding for a long time and he’s really impressive.
Honestly, If you ask me why people prefer React Native over Java (Android) and Swift (IOS) is because the whole Javascript ecosystem and NPM. Your project gets setup in minutes, you don't have to worry about configuration and there are a lot of open source projects to get the job done!
Is this satire. Someone pinch me
that's called being a simp.
it's kotlin. Java is dead for Android. Also there is kotlin multi-platform and jetpack compose coming up which could replace flutter by another year.
@@SpaceTimeBeing_ I was questioning if his preference for the React ecosystem was satire? What does that have to do with Kotlin or Flutter
what excuse does Kotlin has to not compile the same code into IOS native ?
4:11 this totally opened my eyes to why I absolutely need to use React and React Native for my personal project. This alone saves so much time and work for solo devs.
thanks for that, I share your opinion, I think many developers are also just missing the business side of code and digital tech in general - just beeing able to move to the market faster with a smaller team and a shared codebase enables organizations to stay more flexible, especially in highly uncertain market environments, which is a huge benefit for me from a business innovation and transformation perspective.
Interesting thoughts 🙌.
I know this video is a couple of years old. Flutter has come a long way now.
IMO React native is clunky and does not give consistent behavior across all devices because of the Metro bridge. In some devices, it can be considerably slower. flutter on the other hand has consistence experience. Flutter also has great tooling and development experience. Yes, you cannot share code in Flutter without website. But they can share the same server-side API. There are always going to be some downsides no matter what technology you choose. I don't mind writing extra code for the sake of reliability and performance.
More react tutorials please. Love ya Ben
You can get a mvp for all plataforms much faster with react native
React Native performance is sucked my 16gb ram are ran out its terible than chrome . Flutter make me so happy more.
What about kotlin?
Fun fact: the average user downloads 0 apps per month
@@internet4543 It means that nobody downloads apps in general. You can just Google it if you want.
Exactly! We're in this bizarre downward spiral because people won't recognize the fundamental reality.
NOBODY CARES ABOUT MOBILE APPS.
That's why we're trying to make them as cheaply as possible.
Dang. I'm just getting started in app dev and this sounds scary 😬
I don't use many apps at all. My phone memory is 98% full all of the time. I clear it and a week later it's full again thanks to WhatsApp. I would maybe have more apps if memory for phones wasn't expensive. If my phone cost me 150 bucks I'm not buying no 100 bucks SD yo have a stupid ass app to turn off and on my air conditioner.
True. That’s I switched from native mobile dev to backend after 11 years. It’s very difficult to get a freelancing work. Now learning React side by side.
I would use unity for ultimate platform support, it is technically a game engine but it can render UI really easily and it has great performance.
can u explain more ?
Use Blazor so you can C# everywhere
Microsoft now uses React Native to build Window apps and Xbox store apps.
Explains a lot
Yeah! I’ve just known this months ago and this sounds interesting
Microsoft keeps taking steps in right direction
It was my decision.
Used React Native at work to make apps for iOS and Android and I’d say it was a pretty bad experience. I’ve since moved to just native Objective-C.
You look so much like Alireza Firouzja, the chess guy
Flutter ftw
@@SourceHades How would you make such a framework without OOP? How would you use it without the IDE autocompletions? Functional programming shouldn't be a dogma. It's not the best solution for everything.
@@SourceHades For me it's easier to navigate code structured into classes. I don't know what the advantage of FP is, except forcing immutability to prevent potential errors. The other advantage might be the ability to reuse code easier, but dart supports Mixins very well, so you can have composition instead of inheritance in your classes.
@@SourceHades also, the flip side of immutability is a performance loss and higher memory usage. Duplicating objects is not cheap, it's probably better to mutate their props. (I guess this is not that important in many cases, but still)
@@SourceHades depends how you use them I guess. In my case I just use them to provide generic methods to the main class. I just wish typescript had such a great Mixins support. I don't advocate using them everywhere, but it's a nice tool to have. As far I know, react used to support Mixins pattern, but JS is not a statically typed language and without native support for them, it truly is a mess. I wish TS would implement the Mixins pattern, but doubt it, they don't want to deviate too far from JS.
I 100% agree. It is not about native vs hybrid or kotlin/swift vs react native/flutter it is about having a common standard for a common app. And after all this time we still do not have that that's what crazy.
It's 2022, can flutter make websites now?
Angular Dart gonna be a disaster 🤣
I closed my eyes during 2:56 and for 4 blissful seconds Michael Jackson was alive again.
I will talk as someone who is a Senior Android Developer by profession but only develops with Web technologies outside work... Native development has so many problems.
I am confident that doing a webapp once well is better than two half assed Native apps. I am more confident in the webapps I've built than the native apps.
You can always stick a webapp in a Native app using a webview and most people will never ever know the difference, so you can eat your cake and have it!
For the most part the browser api is enough, but writing native bindings is stupidly easy if you understand a bit of Native.
PWA + Webview FTW, because it can do absolutely everything a Native app can do with least effort to develop and imperceptible performance penalty on modern phones.
1) For example if you are developing an app for a big client, they typically want the Android app and iOS app to be the same most of the time till they want it to be different. The amount of time wasted trying to make sure both implementations are the same when it matters is honestly nonsense. Also even worse clients and designers can make the mistake of thinking something that was easy to do in iOS will be the same in Android and vice versa.
2) Team size will be larger, and the larger the team more inefficient it typically gets.
3) Native development is slow, one good web team can deploy to web, android and iOS quicker than a team dedicated to Android can deploy.
4) The backend may have to make separate end points for each platform in some really extreme cases, with at least Native and web being different.
5) Android UI Framework is terrible as soon as you try to do anything not out of the box
6) With phones getting faster, JS and browsers getting better the difference between Native and Web is likely imperceptible on modern mid-high end phones.
7) HTML + CSS + JS/Typescript beats XML + Kotlin every time, and I'm saying this as someone who thinks Kotlin probably my favourite language. (HTML + CSS + Kotlin/JS is also possible)
Want me to go on, because I can.
thank you for this video. a lot of stupid ppl keep trashing on React Native, especially the flutter devs, and this is so disappointing for beginners!
What are your thoughts on Ionic React / Capacitor?
I’ve had a blast using Ionic and capacitor. Plus it’s much more forward thinking with stencil web components and native wrapper for any platform. Haven’t tried their ci/cd app flow but from what I’ve heard it’s buttery.
Ben, you’re awesome.
Agree
PWA for the win !
I was totally on that boat too, but it sunk a year ago. Apple screwed the pwa app ecosystem completely. Flutter can save the day as soon as flutter to pwa/js is properly released
I see a new Ben Awad video, I click. It’s simple.
Hi Ben, if I recently learned the fundamentals of JavaScript what else should I need to learn in order to learn react native? What would you recommend??
Hey bro. You don't need to learn Node.js to start learning React Native. Just learn Fundamentals and ES6 JavaScript. Learn how to use React useState, useEffect hooks at bare minimum .
@@Ivcota i will try that thank you
As someone who's been writing Android apps for years - no, don't use react native, tools are bad, it's slow and developer experience is just bad
Kotlin or java?
@@yakimura96 both, currently - flutter ;)
haha, only thing is with all of RN sh*t you will end up needing to go to both native code either way once your app gets to production size.
so at the end of the day you will do almost the same dev time only with a lot more tears with RN trying to hack around unmaintained native libraries to make things look and feel like native on both platforms.
On the other hand once you learn Swift and Java/Kotlin (and Im trusting you can handle it without any problem :) )
Then things are not that different - A lot of logic and architecture is same (Android trying poorly to mimic IOS like always..)
but developing both in parallel is not that hard because all the big issues/decisions you need to solve only once then the implantation is similar in a lot of ways
So to sum it up. Developing only one native, lets say Swift app vs RN will be much faster, things just flowing. No RN nonsense and no buggy libraries that make you go into old Objective-C code and cry your eyes out. Plus UI wise you don't have to waste time on mimicking the original. Also you are at the top of IOS tech not dragging around waiting to new features get RN libraries a year later.
Then if you do an Android app in the same time you will see things are running fast as you go feature by feature. At the end
you will have almost the same dev time but end up with a solid top performing and looking app instead of a broken mess that now will take a lot more time to add more features.
There is a reason why no "real" app uses RN these days. (and no FB's Messenger uses RN only for a few menus like settings and etc which was the original RN purpose in the first place)
Anyways, try doing a project in Swift or Kotlin/Java, your life will be so much happier :)
Hilarious! Thank you for this. And yes, I completely agree.
Wondering what's your take on Flutter now, ~6 months later - Flutter 2 is released with support for Mobile, Web and Desktop (Windows, Mac and Linux).
You should do a follow up video...
This introduction had me rolling 😂
Great video! 🔥
One of your best videos so far (well, I've watched < 10 but still)
Ionic React is pretty good for most apps :) You can use the exact same code on all platforms (Web, Desktop, iOS, Android) - you don't code share, you use the exact same project for all of them.
Flutter is alright but you need to learn a new framework and language (dart) to work on it, and as you mentioned, no code sharing.
I think the framework is very intuitive. Dart wasn't a problem for me to learn either coming from a JavaScript background. But I still don't really like dart. I would've loved to see Typescript with Flutter.
TLDR: I love Flutter but hate Dart.
@@hagenlens1403 Whats wrong with Dart?
Dart is pretty easy
I like flutter, but hate having to keep in mind the quirks of yet another language. Having to switch my thinking between flutter+dart and react+typescript is very annoying.
I usually stick to Ionic because it's sufficient for most apps.
@@maddada It's strange. I develop back-end with ts, mobile front-end with flutter, and it's easy to switch between them, 'cause they are so similar.
What do you think of capacitorjs or Cordova, where you just run your PWA inside of a web view as an app(addressing your issue with PWAs)?
I hear that by end of year, react native will have an update that removes the bridge and Make it almost as fast as native
you got any sources? As a new level flutter dev I'm interested in React instead.
You just made my day better Ben !
Love from Nigeria.
awfa?
I dey man.
Is there anything wrong with just having a plain HTML/JS website and a TWA or WebView?
Yes, webviews suck.
@@samuelscheit Ok, yeah, I knew that. But it's the easiest way sometimes, especially if it's already been done in plain HTML.
@feldim2425 If it's just a basic static site with a bit of JavaScript, then it's not a big deal to use webview. With Trusted Web Activities they're trying to close the gap between web apps and mobile apps. The performance isn't really any worse than opening a website. I still think, if you have the time, it's sometimes worth it to make it native.
You may present the same text on both with a webapp... When you write a native app you're targeting performance. If you want something that's not as great but is not a webapp you go with kotlin. Most stuff can start out as a kotlin app and then optimization if the app takes off. ¯\_(ツ)_/¯
Builds a website to share recipes........Brings up different types of Pasta in every video...........Damn! Ben is making me hungry!!! :D
The first part gave me enough motivation to continue watching.
Im willing to give up some speed and just build an app once. I rather save 5+months plus you can always make React Native faster I think, just needs more development ?
Discord with electron is just a joke tho, 40% cpu on an 8 core 16 thread processor is just ridiculous
Really ? It's using :- CPU: 3.8%, RAM: 197.3 MB for me
Hey, i love your intermediate level courses on youtube. So, any new course coming in near future?
I might be laughed at.... but what's wrong with just going Ionic. One codebase and you do all three fairly well unless you want a super crazy performant app, for most people Ionic nowadays should be a decent choice. No?
Those big companies that have both Android and iOS teams also use React Native because they like to manage three code bases: Swift, Kotlin and React.
Sure. With "good enough" is hard to argue.
But... i personally do not install any apps anymore. Moreover, i removed Facebook, Messenger, Twitter and many more long time ago just to increase my battery life by nearly 50%.
For me those apps are total piece of sh***t! Try it for the week and you will see the difference (i know you will tell "I don't care about the juice" :) ). And thus... your app also will be the same sh***t at least for me if using RN.
And by the way... i see more and more people around me cleaning up their social networking and what not app noise. People got totally tired of all that c**p and constant data breaches. Not an particular issue of RN, but it's a trend at least where i am.
What about using a website disguised as an app, with something like capacitor for native bindings
No subtle Angular dis? Are you ok? Is this the real Ben or one of his clones?
05:29
But you can put a PWA on the app stores so the masses will think it's a regular app.
I waiting for react native 1.0.0 🤣
Keep dreaming.
Flutter Now have same code to android , ios , web , desktop , embed 😁😁
One of the better 30 second intros I´ve seen on UA-cam. Well done.
Can’t agree more! Can you make a to tutorial on how to setup IAP with react native?
Lol and this is why you use native
@@jmitchell2464 good point. but after all, i still want to build it with react native. One reason i can't agree more is my website is already using react, so a lot of stuff can be shared (copy and paste) between two.
React native is good for Android ?!! Why not talking about bridge between react an mobile ??!!
Python and React Native getting famous! you know the reason don't you?🙃
Next time put a hat with react logo on it 🥴
But yeah I'll pick react and react native too 😂
Come on the cost for an app is about $5000-$6000 it will takes years to make that money back from an app. Users want apps but they will still visit your site to buy.
more react native content pls
What's with the lack of lighting and backgrounds in your videos lol and no makeup either
Would love to hear your take on flutter web now!
To the point. Care to take a look at flutter for web now and share your opinion? Or too busy with your startup?
Ben is like a typical infidel trying to spread his computer religion...
No offense
Has anyone here tried skype. It is really dumb decision that they choose react even having proper native apps
Why waste our time with all this boring expression please present properly and conclude.
"The rest of the freaking world is just addicted to apps"
That resume everythings hahaha. PWA looks great but are used by developers or specific geeks..
@Ben Awad you have full compatability in sharing code with Flutter apps and Flutter Web Apps or even just an web app with a JS library. Dart transpiles to Javascript if you use the correct approaches on your code to be fully dart and not depend on Flutter
imagine you like Facebook because they make a better world...
React Native is great for smaller projects where you don’t want to afford too much time. I code apps since 2014 (professionally) and native is still best, of course. But RN is neat to play!
have you used Flutter?
Reject humanity and praise our lizard cyborg overlords.