No video

React Native vs Flutter vs Native - Let's Talk Engines

  Рет қаралды 131,794

Theo - t3․gg

Theo - t3․gg

Күн бұрын

Пікірлер: 664
@kahanx10
@kahanx10 2 жыл бұрын
He sounds like he built React Native alone by himself but his ex girlfriend came up with a somewhat better solution.
@tcurdt
@tcurdt Жыл бұрын
I am not even a Flutter fan, but "code push" is really a Apple/Google problem. The same problem exists for fully native apps. TBH I am surprised Apple even tolerates "code push".
@IncomingLegend
@IncomingLegend 9 ай бұрын
are you mad? OTA can be implemented in native apps... Your entire phone gets updates OTA! Imagine having to manually update your android system, or worse, buying a new phone every time an update comes out...
@tcurdt
@tcurdt 9 ай бұрын
​@@IncomingLegend Maybe don't raise your voice if you don't even understand the subject matter? System or even full App OTA updates are not the same thing as "code push". Sure it's being used and possible. But a "code push" like that by-passes reviews. Not something Apple is a fan of usually (to put it mildly).
@LusidDreaming
@LusidDreaming 7 ай бұрын
​@@IncomingLegendare you involved in any mobile app distribution processes at all? If so, could you please share how normal updates are instantaneously reaching 100% of your users, even the ones who have auto update turned off for your app? There are a lot of people (including people at my organization) who would be very interested in hearing how you could release an update to a native app through the app store and get 100% adoption.
@moshedicker6786
@moshedicker6786 7 ай бұрын
There are stories of apple rejecting it. This is one of the reasons the flutter team has rejected proposals to work on it.
@Greeem
@Greeem 6 ай бұрын
@@IncomingLegend Look at that, you never replied. Sit the fuck down.
@florianrohrauer8471
@florianrohrauer8471 2 жыл бұрын
As a React Native Developer i have to say that the developer experience in React Native sucks! Debugging native code is just pain in the ass. In React Native, except Flipper (which is the most incapable and worst debugger tool ive ever used), there is absolutely no good debugger out there. Additionally, your React Native app is relying completely on either third party libraries developed by a single person or your own custom native code which increases the risk of additional bugs and glitches for both platforms. Using libraries and components from a single person is very risky, since there is no guarantee, that the developer keeps maintaining the library. Flutter solves a lot of those problems and it makes me (as a React native developer) a little jealous of the developer experience in Flutter. This whole video is just complaining about Flutter in two aspects, while mentioning "downsides", which do not impact the user's experience, nor the developers experience. I think Flutter uses a different solution and it is not a bad solution, only because it does not use native provided elements (UIKit...). Apple and Google provides Hardware and Software and a preferred way of writing performant apps (Kotlin, Swift), but it doesn't mean, that other technologies are bad! Instead of roasting Flutter in another video, i would be very interested in covering the vulnerable points of React Native. If you're the opinion, that React Native is Heaven on Earth, than you're just ignorant, stubborn and "not living in reality". I want you to defend your opinion and talk about the developer experience (debugging, library version management, JSON Serialization via Bridge...) in React Native, because it is far from good.
@encyclopediablender
@encyclopediablender 2 жыл бұрын
This
@VarunVasudeva
@VarunVasudeva Жыл бұрын
Although JSON serialization via Bridge has been tackled and fixed in React Native’s ‘New Architecture’, everything else you said about debugging and library-oriented DX is right on the nose.
@duckmasterflex
@duckmasterflex Жыл бұрын
I have worked with people who have had serious trauma from react native. In my opinion has its own set of drawbacks of the same magnitude as flutter.
@rohitmahto1559
@rohitmahto1559 Жыл бұрын
this, the developer experience is horrible
@SaiyanJin85
@SaiyanJin85 Жыл бұрын
That's a good one, a well needed reality check kick
@DavidCZ2051
@DavidCZ2051 2 жыл бұрын
*opens app* App: "update for a new big feature!" *updates app* Resolved
@sudhanshugaur2317
@sudhanshugaur2317 3 ай бұрын
Exactly what I thought.
@Kapendev
@Kapendev 2 жыл бұрын
First example for not using Flutter: The worst-case scenario for any app. Ok bro.
@iGhostr
@iGhostr 2 жыл бұрын
You can do better man. Don't have such firm opinion on things. You can get easily attacked by saying such irresponsible thungs. I'm a senior RN developer but Flutter is better in a lot of aspects. It is not black and white.
@Ghibliite
@Ghibliite Жыл бұрын
Not an argument
@penna420
@penna420 Жыл бұрын
"better in a lot of aspects" well you conviced me with your sound techincal reasoning! /s
@purplevincent4454
@purplevincent4454 Жыл бұрын
"you are not allowed to have opinion, never have firm conviction or beliefs in anything if it goes against the crowd"
@armanamini1450
@armanamini1450 Жыл бұрын
I like this guy's content and have never even touched flutter in my lifetime but this is when you recognize someone's more into just talking about stuff and sounding edgy instead of actually building with them.
@eduardomachado3740
@eduardomachado3740 Жыл бұрын
Dude's not meaning to address the Flutter Vs RN issue but give some well-meaning criticism to Theo's argument presentation
@the_snoodleking
@the_snoodleking 2 жыл бұрын
Definitely disagree. Some valid points for sure, but "dying on a hill" for the take of "hurting your users" in this context is... extreme. Dare I say... "not realistic?" I have experience shipping multiple RN apps (varying in size and complexity) professionally, and with one Flutter app as a freelance project. The Flutter experience has been my favorite by far. 1. CodePush - yeah it's super handy. In the last 6 months we've probably codepushed a fix out for our RN app a few times (maybe 4-5). Wish we could do this with Flutter, but again, not HUGE for me. 2. Web - Sure Flutter web isn't great, but my questions is... does it hurt your users more if there simply is NO web app, or if the web app is a Flutter port of your mobile experience and it's a few extra MBs for them to download? My reality (which apparently doesn't count) is that my freelance project would have no web app for users in any acceptable time frame if we were not able to port it over with Flutter. 3. Using the platform - good points here. Recreating the whole platform is goofy. HOWEVER I've spent SO MUCH time fixing rendering bugs for RN where the Android version just didn't line up with the iOS version. It's very irritating. Haven't had this issue on Flutter given the way it renders. A lot of people in the comments bring up the DX. Flutter is so much better in this regard in my experience. The RN toolchain is just so brittle. The whole thing feels like a hack to make React/JS work on native mobile platforms. I guess this is all your opinion though. Flutter certainly isn't perfect. Maybe you should try and make an app with Flutter, sounds like you haven't. I think the "non-reality" for some flutter devs is working at companies or on projects that don't have a budget to built a bespoke web app, mobile, and desktop app all for maximum user experience. It'd be awesome if everyone could, but ... that doesn't seem like reality either.
@josecoverlessons
@josecoverlessons 2 жыл бұрын
True king comment
@scion911
@scion911 Жыл бұрын
True actually making a native interfacing application with the ability to go crossplatform is a lot easier to do on flutter. I have experience building both RN and Flutter applications but building an application which uses for example custom ML model and runtime or even any other application with even a bit of native interface is lot simpler to implement in flutter than in RN. Just because of how flutter works, flutter's UI is rendered on a Graphics API layer so entire flutter library compiles down and runs on top of native, and dart can easily interface with native code that you wrote yourself because for the application to compile, guess what? Flutter is compiled then native code is compiled. Makes the toolchain very easy to work with :) also makes you feel like you can do anything native can but also have such a good UI layer which is performant and fast. RN makes me feel like I am stuck in a browser environment sadly I actually pivoted from RN because of this reason for most of my personal projects because all of them are usually complex enough to make custom solutions. Even for work I don't like working on any RN applications which have such low level sophistications. For me most applications need these sorts of implementations but that is because I like working with projects that require tinkering with native.
@paulholsters7932
@paulholsters7932 6 ай бұрын
I am learning flutter. What is the alternative for code push?
@JoRyGu
@JoRyGu 2 жыл бұрын
I really wish content creators weren't so invested in these "the thing that I use is just better than what you use, and you are stupid for using what you use" videos. You have a ton of solid arguments. If you framed this in a way that argued for react native and what it brings to the table that Flutter doesn't, that's a great piece of information for someone trying to determine which tech stack to go with on their project. As soon as you start saying things like "Flutter devs don't live in reality" it takes away from your otherwise extremely good points. Edit: Dude your outro was spot-on. More of that type of even-keeled takes please.
@maxevangeliste
@maxevangeliste 2 жыл бұрын
Yeah he could change the tone maybe, but the point he is making blows flutter out of the water. Even blows out native for a lot of use cases. The only way I could justify using native for a project is when you need absolute native performance for a game or something like that....
@maxevangeliste
@maxevangeliste 2 жыл бұрын
I personally have a capacitor JS app in production and the ability to do over the air updates is kind of a no brainer for a lot off use cases I think....
@jj4l
@jj4l 2 жыл бұрын
Their Brand is Vaush but code
@user-wz3pi1vh7o
@user-wz3pi1vh7o 2 жыл бұрын
@@jj4l lmaoo
@cristianproust
@cristianproust Жыл бұрын
He is trolling for views. Using words as "harming", it is like one of those SJW s that pretend to create drama qualifying things as "problematic", "harmful", etc. Find a grievance and exploit it to appear interesting, specially when there is a 2 camps dynamics
@fullstack_journey
@fullstack_journey 2 жыл бұрын
Having used both react and flutter, i find flutter's plugin ecosystem and inbuilt widgets far more better (and less toxic fanbase)
@kerodfresenbetgebremedhin1881
@kerodfresenbetgebremedhin1881 2 жыл бұрын
the fanbase shouldn't have a bearing on ur choice of technology, my advice is to stick to the merits
@fullstack_journey
@fullstack_journey 2 жыл бұрын
@@kerodfresenbetgebremedhin1881 it was a joke.
@fullstack_journey
@fullstack_journey 2 жыл бұрын
@@kerodfresenbetgebremedhin1881 I use react for the web because it has merits over flutter web. I Primarily work on reactjs, but when it comes to cross platform, flutter has some more plus points which makes me favour it. The toxic fanbase comment was for people who are biased towards their favourite tech and take a dump on everything else even before they tried spending some time working with it and getting involved in it's community.
@terjeber
@terjeber 2 жыл бұрын
@@kerodfresenbetgebremedhin1881 That woooosh sound you heard was the extremely obvious point of the joke flying by. This entire video is about an RN religious fanatic taking a dump on something that clearly frightens him. Hence the "toxic". Prince once said (shortened): Michael Jackson's "Bad" was named such because there was no room on the cover for "Pathetic". This video reminded me of that.
@srymisclick
@srymisclick 2 жыл бұрын
Ah yes, more better
@chastriq
@chastriq 2 жыл бұрын
Just to be clear, this logically extends to "It is irresponsible to your users to build the app in Native iOS/Android" right ? Or is there a codepush capability there ? They are both compiled.
@RogueTravel
@RogueTravel 2 жыл бұрын
Lol
@kerodfresenbetgebremedhin1881
@kerodfresenbetgebremedhin1881 2 жыл бұрын
That applies to code push not the jank that he was alluding to by not using UI Kit. Not taking sides, just informing.
@chastriq
@chastriq 2 жыл бұрын
@@kerodfresenbetgebremedhin1881 Correct. I'm only addressing that argument here. But to be fair, it did seem to me like the flagship argument for the whole "irresponsible to users" take.
@adamhenriksson6007
@adamhenriksson6007 2 жыл бұрын
@@chastriq It sesms that way because it is what is it. That is the argument, with pretty much no logical steps. There should be a bunch of ways to fix the "users are not updating" problem. Update screen which blocks the app or is just very obtrusive if you don't want to update, push notifications, etc. etc. I must say, this was a really dull hill to die on, especially when increasingly many people complain that their multi-dollar company web-apps with their fancy stacks feels slow and bad to use.
@geisterfurz007
@geisterfurz007 2 жыл бұрын
Yes, that's correct; he also mentions it around 4:01
@vitofromearth4098
@vitofromearth4098 2 жыл бұрын
Well. Idk. I’ve been working with RN and Flutter for a long time and RN is a pain in the ass for the most of the time. You spend more time fighting with RN rather than working on the actual project
@mikem7084
@mikem7084 2 жыл бұрын
I have tried both, for me RN worked far better.. in what is flutter better than rn.. I'm just curious
@SayWhat6187
@SayWhat6187 2 жыл бұрын
Same for me. I’ve used both and Flutter is just better.
@vitofromearth4098
@vitofromearth4098 2 жыл бұрын
@@mikem7084 maybe it’s personal preference. But updates are far easier, less issues with modules because some RN modules are hard to deal with because of how native bridge was written. But mainly it’s debugging and overall performance. Debugging: You can debug Flutter apps inside VScode or Intelij IDE and it shows overall all you need. To debug RN I have either browser console or Reactotron app. And at some point you have to restart it because memory leaks too much and whole app starts to freeze too much. Performance: In most cases you have to be very careful with RN data flow. You need to know when to load data properly to avoid stuttering at page transitions for example. Also different routers provide different performance and issues with it. It’s like you always need to optimize what you have written. With Flutter I mostly focused on writing the app in the first place. And if I mess up smith i go optimize it. Routing is straightforward and it’s performance does not depend on the package I use And updates of course. If you want to migrate to latest RN it is easier to create new RN project and move stuff to it rather than update current project which is stupid :) In Flutter usually you just update dependencies and hit “update” that’s it (excluding updates with breaking changes)
@dealloc
@dealloc 2 жыл бұрын
​@@vitofromearth4098 You can absolutely debug RN within VSCode with little effort and without external tools. Just like with Flutter, you'll need a way to attach to the debug process to a proper experience within VSCode through extensions. But even then, you can likely get far with debugging JS by attaching to the debug process. Regarding performance; there is no such thing as "RN data flow". If you mean with regards to how data handling in React works, this is just as much of a problem with Flutter as it is with fully native code. Where you preload data depends on your use-case. You'll get to know the pitfalls, respectively to the language/system you use. How you pass data may be different, but the footguns are the same.
@vitofromearth4098
@vitofromearth4098 2 жыл бұрын
@@dealloc thank you for the info and corrections! Will check VS code debugger attaching. I would not say that I know all the details and small pieces of both framework. Just expressing my experience with both tools :)
@Gaijin101
@Gaijin101 2 жыл бұрын
having used both RN and flutter for company apps. flutter was much easier and cheaper to maintain. atleast for a small team of non hardcore RN nor flutter dev.
@lutfiikbalmajid
@lutfiikbalmajid 2 жыл бұрын
I am alone in the company using RN 😂
@daumienebi
@daumienebi Жыл бұрын
@@lutfiikbalmajid and who do you run to when you have problems? 😂😂
@michelfeinstein
@michelfeinstein Жыл бұрын
The Flutter team deliberately chose to not ship code push, this is not because of a technical limitation. They made a document about this. One of the reasons is that code push can go against App stores policies
@alienm00sehunter
@alienm00sehunter Жыл бұрын
Well probably because flutter is built by Google and Google doesn't want updates without their approval.
@steamer2k319
@steamer2k319 Жыл бұрын
This sounds less like a problem with Flutter and more like a problem with selling through certain app stores.
@catsby9051
@catsby9051 Жыл бұрын
​@@alienm00sehunter For good reason. Nobody wants malicious developers pushing malware directly to user's devices with zero checks in place.
@scay1c
@scay1c 11 ай бұрын
@@alienm00sehunterthat’s a wrong argument. Most of Android app are shipped easily. The approval process for your app is very low compared to Apple
@angryprogrammer7788
@angryprogrammer7788 11 ай бұрын
Shorebird is in alpha right now, it enables code push for flutter
@st-jn2gk
@st-jn2gk 2 жыл бұрын
Your point on code push is valid but it isn't a fault on flutter's end as much as it is a super cool perk on RN's end, but still a valid point. Performance wise, Flutter is amazing. Your point on the iOS glitches were from early 2021 and have been fixed. I work on a Flutter project at my company and we haven't had any performance issues (even though the code was ridiculously far from well written) Dart VS JS, I love dart. It feels like the best parts of javascript mixed with the best parts of java, but again, I don't want to be that guy just stubbornly arguing. Code push is fucking amazing, and I wish we had that especially on an issue we're dealing with right now on Google Play Store. The native UI calls... cool I guess. I mean if you like them, awesome. we use the flutter ones and they work perfectly fine. I haven't found a difference between them and the native buttons. As for flutter for web, i think it is further from production ready than you understand. Everything behaves exactly how you expect it, technically, but its a canvas. If you build a hello world web app, and use your browser to search for hello world, it wont find it because they're canvas pixels, not text. Flutter for desktop has been amazing so far. Very small binary sizes and much much much better performance than electron, but we will see. I think for web, React is just better than Flutter. For mobile, Code push gives react a beautiful edge, and if you dont care about code push, then its rather subjective what you choose. For desktop, I think flutter is actually perfect and works very very smoothly, even on linux which i thought would be its weak point because very few people use linux compared to mac and windows. If you read this far you're truly amazing, even if you disagree with everything I say. I hope this channels pops off. The quality is rather consistent and you support your points with logic. (and drawings)
@Rick-ng3lr
@Rick-ng3lr 2 жыл бұрын
Agreed!
@st-jn2gk
@st-jn2gk 2 жыл бұрын
@Andrija Orešković I use Bloc. Bloc in itself has different solutions like provider, cubit, and just "bloc". I have used all of them and can say bloc is the best. It has some boilerplate, but once you're used to it, it completely separates the UI from the logic, and is what I recommend.
@bisrat_girma
@bisrat_girma 2 жыл бұрын
good point
@flaviobarros8305
@flaviobarros8305 2 жыл бұрын
Perfect!...Same here!
@BooleanDev
@BooleanDev Жыл бұрын
@@st-jn2gk have you had a chance to use riverpod in a project?
@rickdg
@rickdg 2 жыл бұрын
The next step for maximum flexibility is just a cordova web view so you can easily inject both JS and CSS. Fortunately, since we're getting push notifications on iOS, the other step is to ship a PWA and forget about store approvals altogether.
@nicolaska1761
@nicolaska1761 Жыл бұрын
Yes but you lose a lot in app interaction quality and user experience
@rickdg
@rickdg Жыл бұрын
@@nicolaska1761 You lag behind in native features, but the UX can be just as good.
@jSyndeoMusic
@jSyndeoMusic 9 ай бұрын
⁠@@rickdgLagging behind native features and top-quality UX are mutually exclusive, IMO. I confidently believe that the best possible result for the _best_ UX comes from truly native bespoke tailored carefully for each each platform. Now, is that even close to being cost-effective in many cases? No, unfortunately. Can you have a “good enough” UX without being fully native? Sure! But it _will necessarily_ suffer, at least a bit, in the process.
@victor95pc
@victor95pc 3 ай бұрын
@@jSyndeoMusic Yeah I still think the only way to get the best UI/UX is with native, but damn it would be expensive... I think 99% of the apps can be done with PWA or React Native and no one would care, the users never cares.
@jSyndeoMusic
@jSyndeoMusic 3 ай бұрын
@@victor95pc It's true, which is frustrating for those of us who really like and appreciate quality UX. Users definitely still like an excellent app, but will accept a "good enough" app as long as the overall task at hand is accomplished satisfactorily. As long as the goal is reached in a mostly-painless fashion, the journey isn't super-important to most people, it seems.
@rid9
@rid9 2 жыл бұрын
If code push is so important, then I'd say this is not even going far enough. Stop writing apps altogether and just ship a PWA in a WebView, then your app will be an evergreen version 1.0 forever.
@serhiipylypenko
@serhiipylypenko 2 жыл бұрын
Yeah, but the issue with that is PWA on iOS sucks
@DarkChasmGamers
@DarkChasmGamers 2 жыл бұрын
​@@serhiipylypenko that's his point
@yestermonth
@yestermonth 2 жыл бұрын
@@serhiipylypenko Thank Apple
@PanosPitsi
@PanosPitsi Жыл бұрын
@@serhiipylypenko there is a major security concern, what if my app gets approved and I then ship a virus inside the javvascript
@cdrbvgewvplxsghjuytunurqwfgxvc
@cdrbvgewvplxsghjuytunurqwfgxvc Жыл бұрын
That code push… i have no idea how the app platforms can allow that. Seems to be an easy way to get malware onto phones
@MrSN99
@MrSN99 4 ай бұрын
as a native developer, i am also surprised how it goes by google and apple
@pmoohkt
@pmoohkt Жыл бұрын
Little one-man dev here, writing "tailor made" applications for small businesses in my neighbourhood, with very simple user interfaces: data entry forms, reports. Flutter absolutely rocks for me, as I can develop apps that run on anything, either mobile, web or desktop application. Not everybody is developing apps for fortune 500 companies with one million users ! 😄 (although I would like to)
@t3dotgg
@t3dotgg Жыл бұрын
Ionic would be great for this too
@Android-ds9ie
@Android-ds9ie 11 ай бұрын
Can you make a social media app with flutter heavy usage of cameras and microphones
@dampfwatze
@dampfwatze 8 ай бұрын
​@@Android-ds9ie Yes. Flutter doesn't take away any native APIs. You just need to write native bindings, to use them from dart. But React Native doesn't take away this need for native bindings either! If you want, you could use any API there is. And most times, there are open source solutions by the community already available! Maybe they won't fit your need perfectly, but if you want to build a really big Social Media app, you probably a multi billion dollar company anyways and would have no trouble doing this. This is also nothing different from React Native! Also, you would probably implement stuff like image filtering in a separate library using a lower level language. But this is something you would do in any case. If it's Flutter, React Native or completely native! Also, Flutter not only allows you to deploy to Mobile and Web (although we are still waiting for good performance on Web), but to Desktop too! And this with near native performance, since your app doesn't run in a browser runtime!
@TheTdg97
@TheTdg97 7 ай бұрын
@@Android-ds9ie would be a great point if every app was a social media app with heavy usage of cameras and microphones, here are some news, there is no "BEST" solution, everything depends on the use case, sometimes Flutter is better, sometimes RN is better, sometimes going native is better, neither is perfect, which is what a lof of people dont understand
@catsby9051
@catsby9051 Жыл бұрын
Code push is like a massive, MASSIVE, security vulnerability. Like I get that it is convenient but it is terribly dangerous.
@laughingvampire7555
@laughingvampire7555 Жыл бұрын
yes, however Theo is a soydev
@PanosPitsi
@PanosPitsi Жыл бұрын
@@laughingvampire7555 massive problem for google and apple huge plus for us cs students who want to burn peoples iPhones when they shop for groceries :)
@kasrabaghernezhad9610
@kasrabaghernezhad9610 Жыл бұрын
Users accept the application's permissions when they install it. You can not push code that goes beyond that. So this is not a security issue.
@catsby9051
@catsby9051 Жыл бұрын
@@kasrabaghernezhad9610 You have literally no idea what you are talking about. It is easy to exploit permissions that you already have.
@sneu420
@sneu420 Жыл бұрын
but that's how the web work?
@thedudeabides8637
@thedudeabides8637 Жыл бұрын
Theo, you're a smart dude, and you definitely know more about web development than I do. But this Flutter rant is so ridiculously hyperbolic its not even funny. Flutter straight, up has better performance than RN. Is that difference negligible in most cases? Sure. Is CodePush a good reason to use RN over Flutter? Sure, if that's a priority. That video you showed is with Flutter in debug mode, so not at all fair, and they've since replaced Skia with Impeller to address those issues anyway. They're both perfectly viable options as it gets harder and harder to justify going native. "Harming your users" ,"Flutter devs not living in reality" Ridiculous.
@FaizanIzen
@FaizanIzen 2 жыл бұрын
Even I used to think RN is better than Flutter. But recently I cloned a RN app to Flutter and realised that development speed with flutter was 3 times faster than RN because of the built in libraries in Flutter and the performance was better too. In flutter 3.0 they have added support to Linux, windows and mac. I ran the app on my M1 mac and it was flawless . Ps: I didn’t had any experience with dart before this
@apidas
@apidas Жыл бұрын
how long you've been working on RN?
@FaizanIzen
@FaizanIzen Жыл бұрын
@@apidas maybe 2 years
@AshishBeck
@AshishBeck 2 жыл бұрын
I'm sorry but I think this video focuses too much on 2 problems related to flutter and calls it a bad framework. The developer experience in flutter is pretty outstanding imo. You can build apps and UI extremely faster compared to other hybrid or native tech (Let's speed code some UIs 😉). The packages and dependencies don't eat up your storage because flutter has a global cache compared to local node modules in RN. In RN, you spend more time dealing with dependencies when one of them updates while flutter does it automatically for you. The UI is more consistent across Android/iOS and you can be assured that a button stays in its place between platforms. (Google- reflectly flutter rewrite) You can build complex and eye candy animations without having to worry about performance and optimisations. This has HUGE implications especially in this day and age when user retention is largely affected by how good the app looks and feels Flutter web is not meant for developing websites. It's intentions are to build web apps that can integrate inside certain pages in websites for a unique UX. Yes, even the hello world app is a big binary (~6mb Android APK) but a large and complex production ready app with performant animations is also under 10mb in size (after splitting the APK) And lastly, while we flutter devs absolutely miss having the code push capability, it goes against the policies set by Apple and Google. Sooner or later they're gonna notice and kick your app out of the stores when too many devs start using it. Also, is it supported for native iOS and Android development? By extension, native is also bad! While your argument is absolutely right, it fails to acknowledge the other aspects of flutter framework that gives it an edge. Some of my arguments might also be wrong so feel free to educate me.
@vitortorres-
@vitortorres- 2 жыл бұрын
He has extreme side of opnions, but after he claims he doesnt even write tests to his code, I dont take too serious
@codenameirvin1590
@codenameirvin1590 2 жыл бұрын
@@vitortorres- it is true that most developers spend way too much time worrying about testing.
@azizsafudin
@azizsafudin 2 жыл бұрын
@@codenameirvin1590 not enough time you mean? Why would you be proud of not writing tests for your app?
@codenameirvin1590
@codenameirvin1590 2 жыл бұрын
@@azizsafudin no, I meant what I said. Don’t get me wrong, you absolutely should write tests for your application. But a lot of developers focus too much time on testing. All the time you spend writing tests is time that you aren’t developing new features. Plus the more tests you have the less likely it is that adding a new test with be valuable. Testing is subject to diminishing returns. Furthermore, I see a lot of developers writing tests that don’t actually test anything.
@yuvoria.official
@yuvoria.official 2 жыл бұрын
This guy talking the most crucial aspects, not generic information who everybody knows like yours
@laughingvampire7555
@laughingvampire7555 Жыл бұрын
So you think forcing a version upon your users is service them? please, tell me what apps you have made so I can avoid them.
@sarunas8002
@sarunas8002 5 ай бұрын
force upgrade has always been a super used feature even in native App.
@marketmeteorology9171
@marketmeteorology9171 2 жыл бұрын
Theo, I’m a fan. I also have a few of my own mobile apps released. I use react native, and now recently flutter. Everything aside expo is not a solution for real devs. It’s just not, and it’s so disadvantageous in so many ways when you get into the real world it’s almost comical. Forcing people to update through a “gatekeeper” on app load or even an app state change is too easy. Because I have a track record my fixes on google play are approved in 30 minutes. Apple takes about 12-24 hours but every time I’ve requested an expedited review, it’s been approved and done in under 2 hours. This is a bad hot take on what’s obviously based on inexperience in the space.
@st-jn2gk
@st-jn2gk 2 жыл бұрын
This man reads books on speaking and writing.
@obvinpro
@obvinpro 2 жыл бұрын
I couldn't have said it better
@Rust_Rust_Rust
@Rust_Rust_Rust 2 жыл бұрын
@@st-jn2gk who does?
@dealloc
@dealloc 2 жыл бұрын
This is not the norm, and if this is true then I am wondering what details you're leaving out. Not sure if 30 minutes is even possible since Google require QA tests to be done across supported devices per release. Having released multiple apps across multiple Android versions and devices, I can tell you that about 2-3 days is the minimum for a review; with a good track record and without any integration with services (so no entitlements and no user authentication).
@dominik_vit
@dominik_vit 2 жыл бұрын
I disagree. Remote push is nice feature but should not be a deciding factor. There are ways to cope with the problem you showed. For example remote feature toggle (firebase provides this), alpha and beta testing etc. I would use RN anyday for most usecases, but there are apps that could benefit from Flutter. It is not black and white and everything has positives and negatives
@neociber24
@neociber24 2 жыл бұрын
How is this different than creating your app natively in Android and/or iOS? You will have the same "no code push" problem.
@yaronlevy
@yaronlevy Жыл бұрын
It's not different. Code push just changed the game. Try to imagine a world where to update your website, you'll need to go through a review process that might take a week.
@tedbendixson
@tedbendixson 2 жыл бұрын
I find myself not so much disagreeing with you but wishing we could achieve the same thing React Native does but without the added complexity. The stack keeps growing and growing, and there are pains that go along with that. You've mentioned all the positives of React Native without mentioning the drawbacks that come with the added complexity. In my experience, React Native frequently breaks in the binding layer and you have much less direct control over what shows up on the screen. When working with it, I probably spend at least 50% of my time fixing bugs which result from its inherent complexity. I don't spend much time just working at the application layer. Very unsatisfying. It's kind of like trying to chop onions while wearing two pairs of oven mitts or just throwing everything into a boiling pot and hoping it turns out. Great for convenience but ultimately the lack of direct control means you ship a lower quality product. Great, you get code push. But it comes at the cost of all this unnecessary complexity and the need to constantly fix bugs in the binding layer.
@michelfeinstein
@michelfeinstein Жыл бұрын
I guess your analysis would be the same for Swift, so only RN is the good solution, because only RN has code push, so native development is bad?
@Dev-Siri
@Dev-Siri Жыл бұрын
Honestly, I 95% disagree with this video. Take this from a current Flutter dev who has used React Native a lot in the past. First of all, for what I agree with the video, Flutter Web is BS. They are trying to push it hard now with the new Flutter + WASM update, but I don't think they realize the elephant in the room is the size of the binary itself. Flutter Web has a 3MB JS bundle for a simple app that has a Text( ) widget. With the WASM update, its still 1MB of crap. But now, the cross-platform mobile range. If you say Flutter's decision is bad because it doesn't help with code push, doesn't that go against Native Kotlin/Swift apps as well? Code push isn't a big deal, if some bad feature gets pushed to production, then its your fault. Thorough testing is necessary to ship apps with less bugs. Fetching a JS bundle from a Remote Server and then running it on the device basically makes the user download the app's bundle/binary twice. (Once from the app store, and again when they enter the app). This also means that the user need's to have a constant internet connection which means nothing can be done with the app when its offline. (Some might argue of caching, but then if the bin is going to cached, whats the point of using a remote server? How can you tell the app to refetch the bundle if it can't run in the first place? And even if you successfully embed some logic in the core binary itself, the app might not work with the newer features if connection is not available). Secondly, "Sacrificing DX"??? I have used React Native in the past, and the experience was just OK. The bundler died all the time, it required like 10 different dependencies to start a bare project, the performance of the app was good I guess but it was hard to optimize, and the size of the app (especially with expo) was huge. (Although the performance problems are mostly fixed with the new architecture, but still its not as good as Flutter). Flutter had a much better DX compared to RN, the plugin system was better than NPM, the app was performant by default so less headache for me to optimize it & the size of the binary was just right for what I expect (6mb for hello world and 21MB for a full on Social Media App). Although the one thing I hate about Flutter is its templating system, which basically doesn't even exist. (Its like writing React without JSX). Flutter's ready-to-use widgets are far better than React Native's bare bones native component wrappers IMO. They are also customizable so it is _easy_ to build a good looking app quickly. Lastly, the UX. If you say Flutter apps feel sluggish, then I don't know what you think of RN. Bugs do occur in every software and performance issues are a part of that. In RN, I had to go through so many third part libraries that rendered lists faster than React Native's . But in Flutter, the ListView( ) is already _blazingly_ fast with support for garbage collection of items not visible on the screen. No more confusion with and . There is even a AnimatedListView( ) which allows for smooth animations when scrolling through the list. (Which in RN feels like hell to implement without another engine library like RN Skia). Flutter not using the platform is definitely a problem that I have faced, since I need to do runtime checks for platforms and then import it accordingly. They have a `kIsWeb` variable that tells if the app is currently being COMPILED for the web, but I think this "compile step platform checking" is needed for all platforms. "Flutter devs don't live in reality because they abstracted in their own Skia world" ? seriously? Then it also means the React devs don't live in reality because they are abstracted in thier own Virtual DOM. Flutter does have its fair share of quirks but so does React Native. Its like you pointing out React's (for the web) issues. They are not significant. Every update Flutter is getting faster, better & more efficient. It shouldn't be that if you use RN rn, every other tech sucks. Every tech is suited to a person and the same is for Flutter vs React Native argument.
@migueljara9399
@migueljara9399 Жыл бұрын
You nailed it!
@SyntaxLexx
@SyntaxLexx Жыл бұрын
Started with Flutter v1, got annoyed by non-null-safety... Switched to React Native w/ typescript...wasted a whole yr (wait till you need to eject from expo + constantly deprecated expo plugins) went back to flutter v3 (null-safety) and after 6 months can confidently sleep in peace knowing the app is 100% easily maintainable, sound null-safety, and better performance! Flutter has overall better DX! If you plan on integrating Ads, Google Play Game Services... You're better off in flutter land.
@codenameirvin1590
@codenameirvin1590 2 жыл бұрын
I’ll go ahead and dispute the idea that code push is even a good thing. The review process that Google and Apple have in place actually serves a purpose. 1. Prevent malicious software from getting into the App Store. 2. Prevent low quality software from getting into the App Store. As a user, I don’t want applications to be updated without proper review because it can be easily abused. No doubt it’s better from the developer prospective but it is questionable from the user prospective.
@doc8527
@doc8527 2 жыл бұрын
I really wish PWA can be a thing for most general apps that do not require sensitive permissions in the future, and browser behavior and performance slowly catch up the native performance. However, afaik, apple ios is trying its best to prevent any advanced use in PWA for the sake of security (also protect its ecosystem).
@ychinamale
@ychinamale Жыл бұрын
Knowing Apple, it is 80% to protect its ecosystem and 20% about anything else.
@beneficialknowledge124
@beneficialknowledge124 2 жыл бұрын
Smell of hatred! Flutter made app development a lot easier and faster. Flutter is perfect for small scaled apps!!
@TimothyKimemia
@TimothyKimemia 2 жыл бұрын
This is on an engineering standpoint, where all the 1's and 0's to build the language is talked about... but honestly, on a business perspective, timeframe matters, and Flutter environment is stronger than ReactNative at current workflow
@Tropical126
@Tropical126 2 жыл бұрын
This isn't really a valid excuse to sacrifice useability and accessibility (NOTHING is a valid excuse in accessiblity's case). If your app sucks, then that's likely going to harm you more than saving a buck and maybe a few months shipping a better solution. "Engineering standpoints" exist for a reason.
@tehillahville
@tehillahville 2 жыл бұрын
how?
@ooogabooga5111
@ooogabooga5111 2 жыл бұрын
No it is not, im working at a startup company that uses flutter. Its a total shit show. Devs don't know what is happening with the code they have written and funny enough they are reinventing trying to make solutions to stuff just cauz they use "flutter" and would have been a better to impliment on native lang or react-native type. just like he said the worst part about this flutter hype ( because the dev experiance is nice ) is that they lie to themself expecting changes around the flutter ecosystem that will benifit the company. Its been over an year I have started with this project at the company and I can tell you life is better without using it in its current state.
@SaiyanJin85
@SaiyanJin85 Жыл бұрын
That's a bad video. you ranted about code push thing, so based on your saying we shouldn't use native ios and android sdk either. About the junkiness yes you are right, it's a bas decision from them but on the other hand they provide a precaching mechanism to avoid the jankiness 95% of the time. Please don't tell me that RN don't force us to use various "hacks" in order to do the job. Unless we are using the native language, all the other solutions (cordova, react native, flutter etc) will use a "hack" solution at some point and that's a fact. About the skia engine what is the problem? I agree that they ditched work from others but from my experience it's a pretty good system. Tbh personally I've used cordova, nativescript and flutter and in all of them we hve to do compromises. Please don't make it sound like React Native is the holy grail because I know a tone of cases that the developers pulled their hair out at some point
@MrDebranjandutta
@MrDebranjandutta Жыл бұрын
Who gives a shit (def not end users) whether a flutter app uses the native UI toolkit or not. It basically treats the device as a dumb terminal and draws individual pixels on screen, and compiles in native C++ pretty much the fastest runtime environment on any computing device. A good tradeoff between maintaining multiple codebases and dealing with crappy RN performance. Their declarative interface programming toolkit is still miles ahead of jetpack compose in Android which incidentally accounts for 90% of worldwide smartphone shipments outside of the US. Also Google isn't exactly stupid investing so much in the tech
@DuongBui-dq6km
@DuongBui-dq6km 2 жыл бұрын
Theo - "the JS fanboy"
@ReddSpark
@ReddSpark Жыл бұрын
New to mobile app building but after spending a week having a torrid time dealing with dependency issues in React Native (try building a simple QR code scanner!) I'm giving up and will try Flutter. Even creating a brand new React Native Expo project and running npm Audit on it gives you "high security" issues. Between that and peer dependencies React Native is an absolute mess I've decided.
@kirilokun2426
@kirilokun2426 Жыл бұрын
Normally your content is well considered if opinionated, which is informative and entertaining. This one sounds like a fanboy tirade for RN though. Many comments below have pointed out that this RN hill is more of a pile of rubbish, and that the so-called Flutter shortcomings are rather purposeful decisions instead of an accidental amalgamation of old technologies like DOM and JS. And perhaps the reason you have so many errors and need the code push is that JS/RN is much harder to debug than the properly compiled strongly typed code with a comprehensive selection of components instead of a hodge podge of conflicting packages. In reality it is much easier and faster to build a usable and functional across all platforms application in Flutter than in any JS framework. And if you add FlutterFlow builder to the mix that time can be reduced by an order of magnitude still. Flutter is not perfect by any stretch, neither is RN. And the issues that you focused on are manageable and don't really warrant the bombastic death vow.
@andreimclive
@andreimclive Жыл бұрын
WOW! had no idea about FLutterFlow. Thank you for making me aware of it. Amazing stuff!
@IncomingLegend
@IncomingLegend 9 ай бұрын
I used to have an interest in flutter but never followed through with it since I don't want to waste time learning Dart when there are way better languages out there that open more doors on the job market, like C# for example you can do cross platform apps, backends, machine learning, and so much more, meanwhile if you can't find a job as a flutter dev then no one will hire you if all you know is Dart...
@RemeLeHane
@RemeLeHane 2 жыл бұрын
Having spent years with React and React Native before moving to Flutter, RN has decades to go before its half as good as what Flutter is today. It’s a tinker toy on its best day. I would not wish that nightmare of a framework on my greatest enemy.
@eudrino
@eudrino 2 жыл бұрын
I love when React Native developers talk about performance, flutter performance will always be better (even in jit mode), just go native dude
@elmermatthew6796
@elmermatthew6796 2 жыл бұрын
I still have no idea why people still go with react native. It has been proven that react native apps are much slower and take a much bigger space in storage and memory. Like there are tons of companies still prefer to use React Native rather than Flutter. I guess the developers are having cold feet.
@KManAbout
@KManAbout 2 жыл бұрын
@@elmermatthew6796 ecosystem, developers, the fact that react native apps aren't that much slower and that react native apps render native applications.
@lutfiikbalmajid
@lutfiikbalmajid 2 жыл бұрын
@@elmermatthew6796 for me, that coming from web dev world. RN is easier and faster development. I use RN for company App developing alone, but ya i am agree RN is slower if you are using native App like camera. When i use camera, i am using kotlin.
@FranzAllanSee
@FranzAllanSee 2 жыл бұрын
@@elmermatthew6796 A lot of the developers started their career in react. With that, they're now experts in react. Every problem that react has, they already have a solution for it. However, with a new/unfamiliar tech, every new problem is a deal breaker. It's not about bang for buck. It's all about comfort zone :D
@elmermatthew6796
@elmermatthew6796 2 жыл бұрын
@@FranzAllanSee yea true. There will be some learning curve in Flutter but everything will be much easier and quicker afterwards.... Also, as a Flutter developer, I can still read react codes quiet easily and understand it as they both look similar. I think, if they want to learn Flutter, they can do it really quick. It's not that different, unlike jumping from native android (Java) to Flutter/React
@DaniIhzaFarrosi
@DaniIhzaFarrosi Жыл бұрын
This aged poorly
@dmitriyobidin6049
@dmitriyobidin6049 2 жыл бұрын
Shipping new versions of an app without user approval is also not the best solution… there are times when i would prefer to use an older version of an app(mostly cause i don’t like new ui developers came up with). And i should have that power. I would say that code push is a good feature for developers, but borderline bad feature for users.
@kamehameha38
@kamehameha38 Жыл бұрын
Eventually you'll have to update at some point either ways
@dmitriyobidin6049
@dmitriyobidin6049 Жыл бұрын
@@kamehameha38 Yes, but it should be my choice. There are users that still prefer Windows 7 and they have that ability to use it even when official support by microsoft is over.
@DevinRhode2
@DevinRhode2 2 жыл бұрын
Once upon a time, Airbnb posted this infamous blog post that they are giving up on React Native. I think it may take quite some time, but I’m excited to see Dart come around. I don’t care as much about Flutter, but, throwing away the dom is actually very exciting. It’s coming on twenty years if built up compromises. Twenty years of no breaking changes. Imagine any library that makes no breaking changes for twenty years.
@ilyasayusuf5447
@ilyasayusuf5447 Жыл бұрын
airbnb move completely to native app not flutter right ? They have to write their own native library for react native to the point that writing native app is better because u write less code. If they move flutter, then they will repeat the same mistake.
@PanosPitsi
@PanosPitsi Жыл бұрын
if you think throwing away the dom is a good idea go become a graphic designer
@Rick-ng3lr
@Rick-ng3lr 2 жыл бұрын
Edit: it wasn’t clear to me that you were responding to your livestream questions. That explains your way of responding. And thus my earlier response is partially invalid. Each framework/tool/language has it’s use cases. I agree that there are some solid issues with Flutter. Which is why I preferred to use RN at first for a recent project, but i found Flutter easier to work with. But I’m definitely aware of it’s limitations and risks. But for my project it’s fine to use/experiment with Flutter. And last of all. I do enjoy your videos. 👍🏻🙂
@fus3n
@fus3n 2 жыл бұрын
Hes basically saying "you dont use react native you suck cuz i like react native i find it helpful you dont you suck you use flutter you suck" every single framework has its pros and cons react native has too ingoring it completely is what hurting mobile users
@dealloc
@dealloc 2 жыл бұрын
Could you elaborate what Flutter solves that React Native doesn't, and where Theo is wrong about why Flutter is hurting users? As someone who have worked with both, a lot of what Theo says here is absolutely true. Flutter requires you to do extra work to provide a native enough experience to the respective platforms, which RN provides out of the box. iOS and Android have different guidelines with regards to navigation and user experience that are often incompatible and ignored by Flutter developers because it's a lot of work to maintain and you are at the heels of Flutter's development team to make sure that you are compatible with changes and updates made to the native OS.
@dwiatmika9563
@dwiatmika9563 2 жыл бұрын
Idk, Flutter apps is a pain in ass to ship, can't make any small changes which is really bad
@Rick-ng3lr
@Rick-ng3lr 2 жыл бұрын
@@dealloc i’m not saying he’s wrong or right. I’m saying that each tool/framework/language has it’s pro’s and cons. People should always be aware when someone is completely bashing something or telling that their solution is perfect (or give the impression nothing is wrong). From my experience RN was harder to begin with since i never built a R(N) project before. At first i was really sure RN is the way to go, but my personal experience with Flutter is up until now better. Even though Flutter was also new to me. My preference for Flutter could change in the future as I’ll likely hit some constraints of the framework/ecosystem. And if so maybe RN in the future is a better fit for me. But for now i choose what helps me go forward. And did i ship a Flutter project? No, but soon. So i’ll have some real world experience to reflect on. But as of now Flutter isn’t perfect for me neither, but it helps me get the job done.
@AvinashSewpersadh
@AvinashSewpersadh 2 жыл бұрын
Did u even watch the video?
@owen_nx
@owen_nx 2 жыл бұрын
i think the saying "your biggest strength is your weakness" is appropriate. but this tech wasn't made for users. it was made for Devs and those who didn't learn js (and react)
@Mindcrawler23
@Mindcrawler23 2 жыл бұрын
About the code push problem where many users could be stuck on an old bugged version.. Woudn't it be an easy workaround to just poll the minimum required version from a server and to show a blocking dialog with a link to the appstore? At least that's how i planned it for my app. Flutter with Riverpod feels awesome so far!
@CanadianN1NJ4
@CanadianN1NJ4 Жыл бұрын
sorry, that doesn't fit the narrative, we must still say that it doesn't fulfill the requirements because "flutter bad"
@andpoul
@andpoul Жыл бұрын
many people still won't update, they will just go to the mobile web page
@ibnShafee
@ibnShafee 2 жыл бұрын
Toxic fans shout! He's really talented but when it comes to any good alternative to react world, he becomes that toxic react fan.
@kuzux
@kuzux 2 жыл бұрын
"not using react native specifically is choosing to prioritize your beliefs over your users". This has got to be satire, right?
@abmorphious9543
@abmorphious9543 5 ай бұрын
As a native Android/iOS app developer watching Flutter getting bashed for the same reason that native development could be bashed is nonsense. No room for firm opinions! And code push is adding vulnerability to the users, unless it is used as a feature flag purpose only.
@devarshranpara9043
@devarshranpara9043 2 жыл бұрын
Conclustion : There is just one thing, which is not supported by Native iOS, Android and Flutter CODE PUSH, so developers, google, apple all are shit and use RN. 😂
@kartikgarasia5685
@kartikgarasia5685 2 жыл бұрын
You have made good points about flutter app is not preferment in iOS I am experiencing my self in my existing apps. But while flutter engine was being developed that time iOS devices had openGL support and then they drop the openGL support after 2018. And right now they are building replacement for skia called "impeller" and at a same time they are adding metal support for Apple devices. And right now if you ship to the iOS you have to compile the metal shaders in advance they have created little toolkit for that and after all animations work as expected (I know this is not ideal solution but it works). So my point is yes skia is not perfect but they are actively working on in to solve the iOS jank issues. Flutter is made to run anywhere where rendering engine exist which includes windows, mac, iOS, android etc... and all platforms have native abstractions (from rendering side) so it takes advantage to utilise native performance. React app bundle size is way bigger than flutter. Initial app start time is also much slower in react native. You can’t build desktop apps with react native. You can always create platform plugins if you want to use platform specific feature with flutter apps. Now days cross-platform apps like canvas try to be very consistent about UI it needs to be same in both android and iOS so for cases like that flutter is good fit for it. You will not have platform specific UI querks. With feature like hot reload will make you more productive and if you have simple CURD app than with very small team you can ship in number of platforms. And also Yes flutter web sucks! So basically if I only talks about negative points about react native suddenly it will sound bad, Same goes with flutter it has it own pros and cons. My point is by choosing flutter you are not "hurting your users"!
@manvvm5678
@manvvm5678 2 жыл бұрын
You can build desktop apps with react native. In fact Facebook and Microsoft have used for a few apps, which are some of the most popular apps in the world
@virgule9901
@virgule9901 2 жыл бұрын
Would love to see a debate between you and a flutter advocate
@sevenreup
@sevenreup 2 жыл бұрын
So this is a codepush rant. I am a big react fan but I have always found RN slow and awkward to use. I have used Xamarin Forms before so RN always feels like that to me sometimes. I get the whole performance issue on IOS is a big turn off but it's also understandable since they have to ship a metal compliant version soon. Flutter has stuff it excels at and I feel like if you feel comfortable in flutter you should continue.
@t3dotgg
@t3dotgg 2 жыл бұрын
Yep this is meant to be almost ENTIRELY focused on codepush. If you can actually live without it and the lack of native stuff on Flutter doesn't bother you, then I'm totally cool with you using Flutter
@qorzzz9252
@qorzzz9252 2 жыл бұрын
@@t3dotgg "Then I'm totally cool with you using Flutter" lmao dude who asked if you were "totally cool" with what anyone else uses. You're entitled to your own opinions but the vast number of people watch your videos like this and get turned off because you try too hard to see things in binary.
@Ghibliite
@Ghibliite Жыл бұрын
@@qorzzz9252 keep getting triggered on all his vids bro
@qorzzz9252
@qorzzz9252 Жыл бұрын
@@Ghibliite Will do "bro" - it is easy when his takes are so terrible and overly opinionated to the point where if you do anything other than what he preachs you are wrong.
@mooska3
@mooska3 2 жыл бұрын
Thats a theory based approach. The fact that you CAN do something, doesnt mean you SHOULD do something, and code push as a way to fix bugs is not something you should do. There are other ways to handle that, like, I dont know - a decent QA, alpha/beta testing or rollbacks. I know it sounds cool, but this is pushing into gray zone of apple/google publication policies, which they are more than eager to kill as soon as they become too wide spreaded. Don't do it. Also - bashing a framework you dont use for a feature it doeasnt have (by default, cause yes, its there), but you like, is very 2010' and kinda childish.
@OryginTech
@OryginTech 2 жыл бұрын
Yeah sure… a startup strapped for cash can totally put a bunch of resources into QA and extensive testing 😂
@mooska3
@mooska3 2 жыл бұрын
@@OryginTech He mentioned Twitch chat. Thats not startup strapped for cash. Author is trying to approach mobile development as the web development that he got use to. You DONT have control over the platform. Get use to it, dont preach crappy shortcuts for you own shortcomings. Learn the platform, adapt, there are reasons why there are limitations. And if you cant deliver quality product swallow the pill. Android takes 2 hours to deliver the update, and apple usually less than 24h, for f sakes. If 15 users your underinvested startup will lose will make you go underwater, maybe you shouldnt do it in the first place.
@OryginTech
@OryginTech 2 жыл бұрын
@@mooska3 so dumb I can’t even find the strength to reply 💀😅
@PenguinCrayon269
@PenguinCrayon269 2 жыл бұрын
@@mooska3 based
@KennyFully
@KennyFully Жыл бұрын
To be honest, I really wanted to use Flutter but every time I start up a project, the thing that turns me off is the syntax.
@doodlebear1351
@doodlebear1351 8 ай бұрын
The issue of flutter mentioned in 15:00 seems to be fixed? what do you think about it.
@kuti1643
@kuti1643 10 ай бұрын
This guy always has some good points and he's obviously very smart, but this high-and-mighty ranty attitude is so off-putting.
@s3rit661
@s3rit661 6 ай бұрын
00:30 Yes, but it's not as much multiplatform as Flutter is, one codebase all platform, with a better language than JS, that is dart. 02:10 There are right now libraries that allow code push in flutter, shorebird, CodePush 12:53 All the performance issues have been solved with impeller, also available for ios since last summer. 16:37 Yes, i totally agree and we all keep hating JS and it's not just reimplementing all the JS features, it's really just avoiding JS letting dart be converted into it, and yes, dom is the reason we hate JS, it's all linked. 22:07 Excuse me? Just iOS and Android? What about Web, linux and Windows?
@CodebreakerCove
@CodebreakerCove 2 жыл бұрын
Code push is great, but also an excuse for developers to write poor code and can show a lack of QA from the developers and QA team... its a nice to have and that's it. Really poor video though... proper fan boy of RN and the ignorance is insane. And I've never used flutter but have used RN.
@nevaknowmanamesame5089
@nevaknowmanamesame5089 Жыл бұрын
Also what you don't mention is that whenever you add/update a lib that has some native code, bye-bye code push.
@_____case
@_____case Жыл бұрын
The original author of the HTML5 spec was one of the founders of the Flutter project and -is still- was its TL. Edit: Hixie has left Google but apparently will continue building out the Flutter ecosystem.
@pr0ximus
@pr0ximus Жыл бұрын
You should suggest Musk to use JS in rockets - if something went wrong he could push update after start 😂
@nyambe
@nyambe 2 жыл бұрын
Your argument might actually favor flutter when it comes to pushing changes live. There is no better way to have disasters
@chastriq
@chastriq 2 жыл бұрын
Also, codepush implies bypassing the supply chain security provided by the platform and taking on that responsibility yourself (or 3rd party). Isn't that similar to your argument against Skia and not leveraging the platform (UIKit) ? Except with codepush it's imo a lot more important, since the integrity of your entire app is in question as opposed to a bunch of UI/UX inconsistencies.
@OryginTech
@OryginTech 2 жыл бұрын
Definitely not the same thing. Can’t compare those 2
@seannewell397
@seannewell397 2 жыл бұрын
I'm not sure this argument stands if your app has ANY n/w features at all (db calls, api calls, files loaded via http or otherwise) then it's you have your attack surface. By how much is the attack surface widened when running n/w served JS bundle inside a runtime container? That is what browsers do all day on mobile. I'm sure there's a tradeoff here (security vs speed of deployment) but counting the cost of the tradeoff considering the other n/w served resources makes it a much more narrow call imo.
@chastriq
@chastriq 2 жыл бұрын
@@seannewell397 My point is not about network features that are part of the intended codebase shipped by the (trusted) developer, and therefore not about general network exposure. I'm talking about supply chain security, where a malicious actor would try to "update" your app with malicious code that is different from the intended codebase created by the developer. The processes and checks designed by Google/Apple are there for a reason. With codepush, you're taking on more of that responsibility yourself.
@chastriq
@chastriq 2 жыл бұрын
@@seannewell397 regarding the browser comparison, yes, it is comparable to how content is served in the browser, which is objectively less secure in terms of supply chain than the app store / Google Play model
@geekboy328
@geekboy328 2 жыл бұрын
So regarding your “best tweet” I feel like you went too far. The one professional project I worked on with RN the DX was terrible. I think flutter may sacrifice UX, but when it first came out it had better DX. Hot reloading worked better, etc. still agree with your other points
@erosborba6910
@erosborba6910 2 жыл бұрын
This guy is so biased, is painful to watch. I like RN, but Flutter is better in so many ways.
@kataii
@kataii 6 ай бұрын
There is no one size fits all solution, and "code push" alone does not triumph other benefits provided by other language/framework. The same goes for why many companies/developers still go for Native not React Native and bear with store review because it is worth it for them.
@scottiedoesno
@scottiedoesno Жыл бұрын
I've done both Flutter and RN. I have to say that my biggest agreement coming into this video was already the web portability. Flutter web is awful and it's not being prioritized (at least last I worked with Flutter). Expo is great and I really can't say that it feels any more noticeably heavy than Flutter. It really comes down a lot to how you code things up. I do think that Dart is generally a good language and inspires better coding practices than JS (TS might be closer), and the fact that there aren't thousands of badly written packages for Dart might actually help in some instances, but one thing that I can say is a major pain point with Flutter are API interactions. God help you if you decide to use a Flutter front end with anything like gRPC or GraphQL. It's just a living, breathing nightmare. All that said, love the video, more mobile content would be great, super excited to see the T3 stack moving to mobile too!
@ClaudioBrogliato
@ClaudioBrogliato Жыл бұрын
Had a little introduction on Flutter last Friday. They didn't improve the web portability, the way it builds UI is horrifying, the error messages are ugly. That being said I hope I'll be sparred the app development thing for long. I did a few things with ionic years ago and well it was sane but I guess it's not as performant.
@dontdoit6986
@dontdoit6986 Жыл бұрын
Flutter Web is designed for a mobile user, in mind. Sad, but true.
@lorenzojojoba2832
@lorenzojojoba2832 2 жыл бұрын
If you ask me the clear, simple and easy benefit of flutter over all the others is that the developer experience of it is simple. You do a new flutter app and you get a compiled language with a sample unit test and the command line interface is very clean. You don't need to know how to configure 10 different things to get a starting project (JS bundler, dev server, typescript compiler, testing framework - which may also have issues running with typescript) etc. The JS ecosystem needs to be more clear cut or simply Typescript needs to become the de-facto and so does unit testing.
@serhiipylypenko
@serhiipylypenko 2 жыл бұрын
What do you need to know about ts compiler? Adding strict mode? Enabling or disabling some rules? The same goes for js bundler and dev server. Everything is already configured for you by expo + RN. The only thing you can and SHOULD be able to choose is a testing framework. Because there are lots of posibilities that are continuosly evolving. And guess what, you might not even need to test your React Native project. You're being delusional here, when you start the RN project, you don't need to know all the things that you've mentioned, just freaking use Expo. It has already lifted all of the hard work for you and even the native dependencies side.
@WouterStudioHD
@WouterStudioHD 2 жыл бұрын
Says the dude who doesn’t test his code…
@astroid-ws4py
@astroid-ws4py 2 жыл бұрын
Interesting information, Maybe we could also use WebAssembly as an intermediate code push layer? I much prefer working in statically typed languages that can compile to WebAssembly (Zig, Rust, Nim, Go... I love all of them and will be glad to use them in a WebAssembly code push layer).
@aniketdeshmane6569
@aniketdeshmane6569 2 жыл бұрын
@Andrii Shafar yup you are correct
@fabriciovergara1109
@fabriciovergara1109 2 жыл бұрын
It's a talk as if RN is flawless and Code push argument is pretty weak. Slow startup, Slow real time animation, pretty much impossible to perform heavy lifting shared code, bad canvas drawing support, JavaScript (nothing against, is just static typed are usually better for big scale). In the end, "it depends" as every IT related problem.
2 жыл бұрын
Hahahah, Flutter is much better than React and it's just getting better. Code push is a thing that shouldn't be used. The app should be well tested.
@kdurkiewicz
@kdurkiewicz 2 жыл бұрын
The WebView frameworks like Apache Cordova / Ionic Capacitor also do have the code push feature. I know, you won't achieve a 100% native look and feel in a web app, but the DX is way better than in React Native / Expo.
@catsby9051
@catsby9051 Жыл бұрын
Having malicious devs push malware directly to your device without your input isn't a "feature".
@michelfeinstein
@michelfeinstein Жыл бұрын
Flutter for web actually can be configured to use canvas or generate the Dom.. But the dom is way slower, so people usually go with the canvas.
@JamesPower
@JamesPower 7 ай бұрын
tl;dr: flutter is much better, but people are brainwashed by javascript
@psclip3309
@psclip3309 11 ай бұрын
What your thought about the New Flutter Engine called Impeller based on Vulkan, more performance than Skia, work with 3D and complex animation
@sandalf-the-grey
@sandalf-the-grey 2 жыл бұрын
I have to move towards React in the near future because of my job. So I decided to watch the videos about the framework and I have to say, that React devs like bragging about React being the best thing in the univers and everything else is a piece of … I can see this repeating in almost every second video/article I came across. Most of the time the comparisions are so opinionated, with selective evidences and data to prove the point. Including this video. First of all, you should test your app before publishing. If you do not do that properly, there is sth wrong with your processes not with the framework you are using. Code Push is also very dangerous thing, because it allows you to push anything to the user(pontentionaly dangerous), and basicaly you are turning devices of the users into your playground. Plus CodePush also does not solve any problems with native packages, so if the “bug” is not only in the UI layer, you have to ship new build anyway. TLDR: Test your code and app. And do not worship anything that have React in the name… you are making bad branding to the framework for potentional adopters.
@FranzAllanSee
@FranzAllanSee 2 жыл бұрын
Imagine coding in 2022 without feature flags. lol.
@aamerpaul
@aamerpaul 2 жыл бұрын
You got it wrong. It is irresponsible to push screwed code. Your app goes through several phases to ensure you don't push screwed code to production.. I used both the frameworks and to be honest none of them are perfect. And i beleive to build quality mobile applications for both the platforms Native is best way to go. Yeah Flutter web sucks.. :)
@elmermatthew6796
@elmermatthew6796 2 жыл бұрын
Flutter web is still new and like Flutter when it was really new, it has a lot of imperfections. Over time, Flutter has been improving and the code is getting simpler and easier to maintain. Give it some time, Flutter web will be much better.
@dayveeddaniel4802
@dayveeddaniel4802 Жыл бұрын
This guy is just a RN dev that hates flutter for some reason and is trying to make flutter look so bad for others, maybe just scared that flutter will take his job
@EstDeLeon
@EstDeLeon Жыл бұрын
People, If users are constantly having error issues while using your apps you might be interested in that code push. Otherwise If you're a good coder you don't have to worry about performing updates without code push
@ersinbasaran
@ersinbasaran 2 ай бұрын
It's frustrating to watch Theo left-align text and then manually center it. Why not use center-aligned text and click in the middle? It would save time and avoid further adjustments. Maybe this is because he chooses React Native over Flutter (this comment is from a React Native guy who hasn't tried Flutter yet, but is considering it now :)). I love you, Theo. I learn a lot from your videos, don't take this hard.
@RodyDavis
@RodyDavis Жыл бұрын
This is a pretty bad take. This also implies development workflow is more important than design implementation and product performance.
@bumbledex
@bumbledex 11 ай бұрын
There was not a meaningful code push solution to flutter before, but there's one now and I think this shouldn't be the reason to judge the framework
@Utopy34
@Utopy34 2 жыл бұрын
First and foremost this is a business decision. If your business relies on google/apple featuring for example, then not using swift/kotlin is a huge mistake. I've been in touch with reps from both google and apple and when it comes to featuring agreements we have to use their development language (native), fix our UI/UX based on their recommendations and implement 1 or more native feature they recently introduced. If being featured doesn't matter then you can have your little RN vs Flutter fight, which is probably going to be insignificant for the business anyway.
@insanetvshort7076
@insanetvshort7076 Жыл бұрын
Thanks man
@nasouhalolabi3905
@nasouhalolabi3905 2 жыл бұрын
this is the first video I've ever seen that criticize flutter. Convincing... I'm not a mobile developer tbh
@DrMarmalader
@DrMarmalader 2 жыл бұрын
I’ve been using RN for years and if I couldn’t have written my own native modules / native UI then some of the apps I’ve built would have been impossible or I would have had to have written 2 native apps.
@oefzdegoeggl
@oefzdegoeggl 10 ай бұрын
disagree with that. i kicked out a RN app from someone else in some project as it was a slow horrible piece of crap and replaced it with two swiftui/kotlin-jetpack native apps. i personally do use flutter, but ONLY the web version. i'd always prefer swift/kotlin for mobile apps, especially if you need to interface external SDKs, all wrapper kits like Qt-Mobile, RN and flutter usually suck. delphi might be an option here, though it's commercial. i actually do like the flutter-web as i have a "programmed" UI and don't need to fool around with any html/css. as i also did qml/swiftui/jetpack, this feels more natural to me.
@DutchGamingPieces
@DutchGamingPieces 2 жыл бұрын
For the codePush usacase, I believe that it is already going to wrong in the place where you are not testing your app.
@jimw1918
@jimw1918 2 жыл бұрын
This is why apps that deliver a website-ish experience should just be websites. You can push a new version at any second.
@parametr
@parametr 2 жыл бұрын
Well, the good thing about this video is that now I can safely tell KZfaq to never show me anything from this dude. Win-win
@jhonyhndoea
@jhonyhndoea 5 ай бұрын
so if a dev gets hacked, hackers can push malicous code to all the users. sounds lovely!
@amirh.4170
@amirh.4170 2 жыл бұрын
I give Expo another chance and again, when I actually start to add some "real" functionality to the app, you guessed it: "Expo Does Not Support It Yet~" Not mentioning the slow and buggy bridge called "Expo Go" when it goes through the infinite loop of bundling the Javascript. For a simple app that doesn't need sensors it can be a better choice but for those of us who need it, do a good research first; It's most probably not there.
@spinoff2011
@spinoff2011 5 ай бұрын
Don't understand why you hate so much flutter! Like if you were fire by google not in good bterms 🤷‍♂️
@espressothoughts
@espressothoughts 2 жыл бұрын
I’ve tried flutter and actually built a pretty decently featured app in a couple months. From scratch. Their developer experience was great. I have noticed the jank though from time to time. I’m using React Native now since I’m usually on the web side of things and can share components with my Nextjs websites. JavaScript will always be in vogue
@Rick-ng3lr
@Rick-ng3lr 2 жыл бұрын
Exactly. The developer experience was the main reason i chose Flutter instead of RN. R(N) is probably better for many other projects, but for me Flutter was easier to begin with. But maybe some day I’ll choose to use RN instead for other projects.
@bekiryuksektepe3967
@bekiryuksektepe3967 2 жыл бұрын
Same, we had a medium - big sized project that needed an mobile app and a web dashboard / backend. For mobile apps we used react native and took all the components from there and with small adjustments used them for the web version. This is the main point of react native and also ofcourse code push possibility
@boredstudent9468
@boredstudent9468 Жыл бұрын
I like flutters capabilities to work on ALL platforms, which is the acutal reason for skia. And i think it's a reasonable compromise to use the Web site if you're a system or (somewhat) embedded dev.
@sihoonkim1502
@sihoonkim1502 2 жыл бұрын
What about hybrid apps with webview? Ex react app with capacitor. Single codebase for all platforms and u dont even need code push. U just update the web and the apps are also updated
@nimrsawafta1682
@nimrsawafta1682 2 жыл бұрын
You can force the update, are you sure you already close enough to be engineer, like there is something we call dynamic widgets this is remark about your app update part
My Final Flutter Video
14:26
Theo - t3․gg
Рет қаралды 108 М.
Why GitHub Won
37:07
Theo - t3․gg
Рет қаралды 35 М.
小蚂蚁被感动了!火影忍者 #佐助 #家庭
00:54
火影忍者一家
Рет қаралды 55 МЛН
Flutter INSIDE React? react-native-skia is wild
24:18
Theo - t3․gg
Рет қаралды 65 М.
I think about this article a lot...
8:18
Theo - t3․gg
Рет қаралды 83 М.
Yes, we actually won
20:26
Theo - t3․gg
Рет қаралды 95 М.
React Native vs Flutter - Which should you use?
22:31
Simon Grimm
Рет қаралды 22 М.
Corepack is dead, and I'm scared
14:14
Theo - t3․gg
Рет қаралды 42 М.
Mobile Devs Hate Servers. Expo Wants To Fix That.
16:05
Theo - t3․gg
Рет қаралды 71 М.
AI isn't gonna keep improving
22:11
Theo - t3․gg
Рет қаралды 126 М.
The State of React Native
42:04
Theo - t3․gg
Рет қаралды 66 М.
I hosted a competition to fix my terrible website
29:20
Theo - t3․gg
Рет қаралды 74 М.
小蚂蚁被感动了!火影忍者 #佐助 #家庭
00:54
火影忍者一家
Рет қаралды 55 МЛН