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

Поділитися
Вставка
  • Опубліковано 4 чер 2024
  • I'm done with this topic forever hopefully. Please make responsible decisions with your mobile frameworks.
    React Native is fine. Stop asking me about Flutter. Please.
    timestamps:
    00:00 intro
    00:30 what’s the problem with flutter?
    02:10 code push
    04:28 ios render stack
    06:55 react native render stack
    09:54 flutter render stack
    12:53 problems users are gonna have
    17:59 flutters bad decision
    22:32 the important points
    23:34 summary & outro
  • Наука та технологія

КОМЕНТАРІ • 655

  • @kahanx10
    @kahanx10 Рік тому +147

    He sounds like he built React Native alone by himself but his ex girlfriend came up with a somewhat better solution.

  • @tcurdt
    @tcurdt Рік тому +100

    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 7 місяців тому +2

      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 7 місяців тому +16

      ​@@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 5 місяців тому +1

      ​@@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 5 місяців тому +1

      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 4 місяці тому

      @@IncomingLegend Look at that, you never replied. Sit the fuck down.

  • @DavidCZ2051
    @DavidCZ2051 Рік тому +31

    *opens app*
    App: "update for a new big feature!"
    *updates app*
    Resolved

  • @florianrohrauer8471
    @florianrohrauer8471 Рік тому +323

    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 Рік тому +14

      This

    • @VarunVasudeva
      @VarunVasudeva Рік тому +11

      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 Рік тому +8

      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 Рік тому +8

      this, the developer experience is horrible

    • @SaiyanJin85
      @SaiyanJin85 Рік тому +4

      That's a good one, a well needed reality check kick

  • @Kapendev
    @Kapendev Рік тому +30

    First example for not using Flutter: The worst-case scenario for any app.
    Ok bro.

  • @JoRyGu
    @JoRyGu Рік тому +357

    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 Рік тому +8

      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 Рік тому +1

      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 Рік тому +4

      Their Brand is Vaush but code

    • @user-wz3pi1vh7o
      @user-wz3pi1vh7o Рік тому

      @@jj4l lmaoo

    • @cristianproust
      @cristianproust Рік тому +19

      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

  • @rickdg
    @rickdg Рік тому +46

    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 Рік тому +1

      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 7 місяців тому +1

      ⁠@@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 23 дні тому +1

      @@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 22 дні тому

      @@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.

  • @chastriq
    @chastriq Рік тому +256

    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 Рік тому +22

      Lol

    • @kerodfresenbetgebremedhin1881
      @kerodfresenbetgebremedhin1881 Рік тому +10

      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 Рік тому +29

      @@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 Рік тому +36

      @@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

  • @st-jn2gk
    @st-jn2gk Рік тому +159

    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 Рік тому +1

      Agreed!

    • @st-jn2gk
      @st-jn2gk Рік тому +6

      @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 Рік тому

      good point

    • @flaviobarros8305
      @flaviobarros8305 Рік тому

      Perfect!...Same here!

    • @BooleanDev
      @BooleanDev Рік тому

      @@st-jn2gk have you had a chance to use riverpod in a project?

  • @Gaijin101
    @Gaijin101 Рік тому +211

    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 Рік тому +10

      I am alone in the company using RN 😂

    • @daumienebi
      @daumienebi Рік тому +7

      @@lutfiikbalmajid and who do you run to when you have problems? 😂😂

  • @michelfeinstein
    @michelfeinstein Рік тому +88

    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 Рік тому +25

      Well probably because flutter is built by Google and Google doesn't want updates without their approval.

    • @steamer2k319
      @steamer2k319 Рік тому +8

      This sounds less like a problem with Flutter and more like a problem with selling through certain app stores.

    • @catsby9051
      @catsby9051 11 місяців тому +14

      ​@@alienm00sehunter For good reason. Nobody wants malicious developers pushing malware directly to user's devices with zero checks in place.

    • @scay1c
      @scay1c 9 місяців тому +4

      @@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 9 місяців тому +3

      Shorebird is in alpha right now, it enables code push for flutter

  • @the_snoodleking
    @the_snoodleking Рік тому +205

    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 Рік тому +17

      True king comment

    • @sids911
      @sids911 Рік тому +18

      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 3 місяці тому

      I am learning flutter. What is the alternative for code push?

  • @vitofromearth4098
    @vitofromearth4098 Рік тому +48

    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 Рік тому +1

      I have tried both, for me RN worked far better.. in what is flutter better than rn.. I'm just curious

    • @SayWhat6187
      @SayWhat6187 Рік тому +3

      Same for me. I’ve used both and Flutter is just better.

    • @vitofromearth4098
      @vitofromearth4098 Рік тому +7

      @@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 Рік тому +3

      ​@@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 Рік тому +3

      @@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 :)

  • @pmoohkt
    @pmoohkt Рік тому +33

    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  Рік тому +15

      Ionic would be great for this too

    • @Android-ds9ie
      @Android-ds9ie 9 місяців тому +6

      Can you make a social media app with flutter heavy usage of cameras and microphones

    • @dampfwatze
      @dampfwatze 5 місяців тому

      ​@@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 4 місяці тому +4

      @@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

  • @fullstack_journey
    @fullstack_journey Рік тому +255

    Having used both react and flutter, i find flutter's plugin ecosystem and inbuilt widgets far more better (and less toxic fanbase)

    • @kerodfresenbetgebremedhin1881
      @kerodfresenbetgebremedhin1881 Рік тому +28

      the fanbase shouldn't have a bearing on ur choice of technology, my advice is to stick to the merits

    • @fullstack_journey
      @fullstack_journey Рік тому +22

      @@kerodfresenbetgebremedhin1881 it was a joke.

    • @fullstack_journey
      @fullstack_journey Рік тому +11

      @@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 Рік тому +12

      @@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 Рік тому +3

      Ah yes, more better

  • @neociber24
    @neociber24 Рік тому +37

    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 Рік тому +2

      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.

  • @catsby9051
    @catsby9051 Рік тому +79

    Code push is like a massive, MASSIVE, security vulnerability. Like I get that it is convenient but it is terribly dangerous.

    • @laughingvampire7555
      @laughingvampire7555 11 місяців тому +28

      yes, however Theo is a soydev

    • @user-fr2fm3ri3w
      @user-fr2fm3ri3w 11 місяців тому +2

      @@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 10 місяців тому +2

      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 10 місяців тому +7

      @@kasrabaghernezhad9610 You have literally no idea what you are talking about. It is easy to exploit permissions that you already have.

    • @sneu420
      @sneu420 10 місяців тому +1

      but that's how the web work?

  • @cdrbvgewvplxsghjuytunurqwfgxvc
    @cdrbvgewvplxsghjuytunurqwfgxvc Рік тому +18

    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 Місяць тому

      as a native developer, i am also surprised how it goes by google and apple

  • @thedudeabides8637
    @thedudeabides8637 11 місяців тому +8

    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.

  • @DevlogBill
    @DevlogBill Рік тому +2

    Great video man gave me some perspective. Question Theo I haven't started learning React or React Native because I would like to learn React Native first for mobile. But is it true you need to learn React first in order to learn how to build mobile apps with React Native? Or am I able to start with React Native first then afterwards learn React? I was told it is much harder that the learning curve is greater if you start with React Native instead of React. I could really use your advice, thank you.

  • @rid9
    @rid9 Рік тому +39

    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 Рік тому +5

      Yeah, but the issue with that is PWA on iOS sucks

    • @DarkChasmGamers
      @DarkChasmGamers Рік тому +3

      ​@@serhiipylypenko that's his point

    • @yestermonth
      @yestermonth Рік тому +2

      @@serhiipylypenko Thank Apple

    • @user-fr2fm3ri3w
      @user-fr2fm3ri3w Рік тому +1

      @@serhiipylypenko there is a major security concern, what if my app gets approved and I then ship a virus inside the javvascript

  • @doc8527
    @doc8527 Рік тому +36

    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 9 місяців тому +1

      Knowing Apple, it is 80% to protect its ecosystem and 20% about anything else.

  • @marketmeteorology9171
    @marketmeteorology9171 Рік тому +58

    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 Рік тому +1

      This man reads books on speaking and writing.

    • @obvinpro
      @obvinpro Рік тому +3

      I couldn't have said it better

    • @Rust_Rust_Rust
      @Rust_Rust_Rust Рік тому

      @@st-jn2gk who does?

    • @dealloc
      @dealloc Рік тому +1

      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).

  • @laughingvampire7555
    @laughingvampire7555 11 місяців тому +11

    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 2 місяці тому

      force upgrade has always been a super used feature even in native App.

  • @FaizanIzen
    @FaizanIzen Рік тому +33

    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 Рік тому +2

      @@apidas maybe 2 years

  • @dominik_vit
    @dominik_vit Рік тому +23

    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

  • @owen_nx
    @owen_nx Рік тому +11

    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)

  • @iGhostr
    @iGhostr Рік тому +233

    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 Рік тому +6

      "better in a lot of aspects" well you conviced me with your sound techincal reasoning! /s

    • @purplevincent4454
      @purplevincent4454 Рік тому +7

      "you are not allowed to have opinion, never have firm conviction or beliefs in anything if it goes against the crowd"

    • @armanamini1450
      @armanamini1450 Рік тому +6

      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 11 місяців тому +1

      Dude's not meaning to address the Flutter Vs RN issue but give some well-meaning criticism to Theo's argument presentation

  • @michelfeinstein
    @michelfeinstein Рік тому +2

    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.

  • @michelfeinstein
    @michelfeinstein Рік тому +12

    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?

  • @felippewick
    @felippewick Рік тому

    Dude, I really enjoy your content 🙏

  • @carvierdotdev
    @carvierdotdev Рік тому

    Awesome!!! Great work. I love T3 Stack and your content about it

  • @SyntaxLexx
    @SyntaxLexx Рік тому +16

    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.

  • @AshishBeck
    @AshishBeck Рік тому +83

    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- Рік тому +19

      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 Рік тому +3

      @@vitortorres- it is true that most developers spend way too much time worrying about testing.

    • @azizsafudin
      @azizsafudin Рік тому +3

      @@codenameirvin1590 not enough time you mean? Why would you be proud of not writing tests for your app?

    • @codenameirvin1590
      @codenameirvin1590 Рік тому +3

      @@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 Рік тому

      This guy talking the most crucial aspects, not generic information who everybody knows like yours

  • @eyalteiger7019
    @eyalteiger7019 Рік тому +4

    Would you build a universal app with expo OR expo for mobile(iOS/Android), and another web app?
    (reference - Fernando Rojo's vid on Vercel's channel)

  • @astroid-ws4py
    @astroid-ws4py Рік тому +8

    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).

  • @LemonZorzCinema
    @LemonZorzCinema Рік тому +8

    Very interesting rant, thank you Theo! I don't have any experience with RN, though I have shipped a Flutter app on both apple and play stores as a personal project so I feel like I got a decent feel for the DX which was fairly enjoyable. My question is what issues do you have with Dart? You mentioned it near the end that it was bad and didn't go into it. Maybe you could have a dart specific rant video in the future? I'd love to hear it. My idea of the general consensus around dart was that it's pretty cool.

  • @Mindcrawler23
    @Mindcrawler23 Рік тому +14

    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 Рік тому +6

      sorry, that doesn't fit the narrative, we must still say that it doesn't fulfill the requirements because "flutter bad"

    • @andpoul
      @andpoul 10 місяців тому

      many people still won't update, they will just go to the mobile web page

  • @hugot8226
    @hugot8226 Рік тому +5

    Hi Theo ! Thank you for your videos first of all ! Do you have an opinion about Capacitor (without Ionic) ? It seems to me that it’s a real hybrid technology as you can wrap it around any web project. There is also more support than expo about certain features like bluetooth, and code push is also a possibility. RN seems like an hybrid framework only for ios and android, but Capacitor allow you to make the bridge between the web too. It will be cool to have your opinion about it 🙌 ! Cheers !

    • @KangJangkrik
      @KangJangkrik Рік тому

      Capacitor? Electrolyte?

    • @tgeorg12
      @tgeorg12 Рік тому +1

      Yea im surprised capacitor isnt mentioned. One codebase, wrap your site in capacitor and bam you have android and ios apps

    • @hugot8226
      @hugot8226 Рік тому +1

      @@tgeorg12 Maybe because it's not very compatible with the t3 stack that Theo is building. There's some experiment with next+capacitor, but you have to ditch every SSR features in order to make it work. But if I'm correct, you can still use for exemple tRPC/tailwind within a capacitor app (just need to forget about next as a backend). But RN isn't more compatible so, I would love to have Theo's guess about capacitor, even outside of the t3 stack.

  • @jenreiss3107
    @jenreiss3107 Рік тому +1

    What do you think about webassembly frameworks for web. I really like yew, but I'm a rust dev so I'm probably biased

  • @dan9948
    @dan9948 11 місяців тому +1

    Thanks for this. I initially rolled my eyes at you, but after understanding what you explained ... 😱

  • @theory-in-motion
    @theory-in-motion Рік тому +1

    The Flutter abstraction is essentially how WebGPU or WebGL work. To be honest, I would expect things like Dear ImGui on top of WebAssembly + WebGPU to become a more common abstraction. In terms of serving, it would be possible to separate the binary which is served, from the environment in which it's executed (like JS served separate from a browser, as opposed to shipping all of Unity with a game that runs on Unity), because of the WASM runtime, which runs the application code.
    It's still not a fantastic idea to expect QT or Dear ImGui to replace all of web, or to be the default user experience (instead of web), because of all of the accessibility, interfaces, et cetera, that haven't needed to be solved to the same degree in Dear ImGui as in mobile web, for instance... but it's not going to stop people from doing it.

  • @TimothyKimemia
    @TimothyKimemia Рік тому +41

    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 Рік тому

      how?

    • @ooogabooga5111
      @ooogabooga5111 Рік тому

      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.

    • @devstuff2576
      @devstuff2576 Рік тому

      🤣🤣🤣 maybe your developers simply suck! Flutter is amazing

  • @ReddSpark
    @ReddSpark Рік тому +9

    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.

  • @DevinRhode2
    @DevinRhode2 Рік тому +34

    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 Рік тому +3

      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.

    • @user-fr2fm3ri3w
      @user-fr2fm3ri3w Рік тому +1

      if you think throwing away the dom is a good idea go become a graphic designer

  • @Dieterbe
    @Dieterbe Рік тому +6

    I'm curious how well impeller is doing (the skia replacement). It should fix those render and UI bugs.

    • @moshedicker6786
      @moshedicker6786 5 місяців тому +1

      It's doing pretty well. They are working on android now, but that will take much longer. There are around 30 types of iPhones. Thousands on Androids.

  • @Rick-ng3lr
    @Rick-ng3lr Рік тому +44

    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 Рік тому +12

      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 Рік тому +1

      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 Рік тому

      Idk, Flutter apps is a pain in ass to ship, can't make any small changes which is really bad

    • @Rick-ng3lr
      @Rick-ng3lr Рік тому

      @@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 Рік тому

      Did u even watch the video?

  • @TheRcfrias
    @TheRcfrias Рік тому +1

    Completely unaware of code push in RN, I’be been shipping the traditional way each build 😅 I will check it ASAP. Thanks!

    • @TheRcfrias
      @TheRcfrias Рік тому

      Hey, I tested it out today and it works! I mean the -> Expo Update. I got confused at the beginning, because there is a Microsoft App Central CodePush that requires you to eject your Expo App and that’s a no go for my project. Thanks for the tip! I’ll surely use it from now on.

  • @kdurkiewicz
    @kdurkiewicz Рік тому +11

    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 11 місяців тому +1

      Having malicious devs push malware directly to your device without your input isn't a "feature".

  • @ronakmehta8106
    @ronakmehta8106 Рік тому +1

    nice video theo , what has happend to kenvat at the end 23:58 chat.

    • @ronakmehta8106
      @ronakmehta8106 Рік тому

      How does google recommend videos like I am getting resources on learning flutter on this video.

  • @dimitmoto1716
    @dimitmoto1716 11 місяців тому

    So what technology do you suggest for creating cross platform apps ( android,ios, mac , linux, windows)?

  • @beneficialknowledge124
    @beneficialknowledge124 Рік тому +43

    Smell of hatred!
    Flutter made app development a lot easier and faster. Flutter is perfect for small scaled apps!!

  • @lpanebr
    @lpanebr Рік тому

    Great rant! I'd love to see a good rant like that on mongodb.

  • @virgule9901
    @virgule9901 Рік тому +6

    Would love to see a debate between you and a flutter advocate

  • @psclip3309
    @psclip3309 8 місяців тому +3

    What your thought about the New Flutter Engine called Impeller based on Vulkan, more performance than Skia, work with 3D and complex animation

  • @tedbendixson
    @tedbendixson Рік тому +44

    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.

  • @jdubz8173
    @jdubz8173 Рік тому +9

    I inherited a flutter app that was simply a placeholder for a future app that a third-party was taking over. I had no idea that this is the reason why every code change required an app-store review prior to pushing the updates. It was SO time-consuming.
    Curious what thoughts are on things like Electron and Capacitor.

  • @travispulley5288
    @travispulley5288 Рік тому +4

    For future content, I'm curious to hear your thoughts about agile/scrum - I went through a ridiculous experience of agile done wrong, quit the job, then studied the best material I could find about what doing that correctly should look like. The way they did it seemed to just get in the way and deliver no benefits, like they formalized the ball-of-mud antipattern. Sounds like it can be a good idea when done meaningfully though.

  • @IncomingLegend
    @IncomingLegend 7 місяців тому +2

    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...

  • @tristankluivert197
    @tristankluivert197 Рік тому

    What web app are you using to do the drawing?

  • @kenny_speaks
    @kenny_speaks Рік тому +3

    If there was a creator stock market I'd buy some risky options on you dude, subscribed :D

  • @nevaknowmanamesame5089
    @nevaknowmanamesame5089 Рік тому +5

    Also what you don't mention is that whenever you add/update a lib that has some native code, bye-bye code push.

  • @Rihsto
    @Rihsto Рік тому +3

    wasn't there an issue with code push that apple could claim that you changed too much of your app without going through app store review and remove your app from the store?

    • @t3dotgg
      @t3dotgg  Рік тому +3

      Yes! They can do the same thing with feature flags. That doesn’t mean it’s not valid (and valuable as hell) to push updates for bug fixes

  • @sihoonkim1502
    @sihoonkim1502 Рік тому +4

    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

  • @CodyL95
    @CodyL95 7 місяців тому

    What are your thoughts on ionic and Cordova for cross-platform mobile development

  • @harvenius
    @harvenius Рік тому +1

    Very informative video

  • @dmitriyobidin6049
    @dmitriyobidin6049 Рік тому +22

    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.

  • @scottiedoesno
    @scottiedoesno Рік тому +6

    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 9 місяців тому

      Flutter Web is designed for a mobile user, in mind. Sad, but true.

  • @ForCeGR
    @ForCeGR Рік тому +1

    Nice explanation and comparisons! I've been writing native android (java/kotlin) for like 4 years now but I never got into Flutter or React for mobile. This video helps a lot having a clear understanding of what each of them is/do.

    • @elmermatthew6796
      @elmermatthew6796 Рік тому

      Must be very exhausting to develop apps on native java. I despise it

  • @eudrino
    @eudrino Рік тому +52

    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 Рік тому +7

      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 Рік тому +10

      @@elmermatthew6796 ecosystem, developers, the fact that react native apps aren't that much slower and that react native apps render native applications.

    • @lutfiikbalmajid
      @lutfiikbalmajid Рік тому +1

      @@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 Рік тому +1

      @@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

  • @oguzhanturker8903
    @oguzhanturker8903 Рік тому +2

    Expo growing faster and Expo team doing their job great. In the next few years Expo going to be a framework(kinda) by itself

  • @KennyFully
    @KennyFully Рік тому +3

    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.

  • @si4745
    @si4745 8 місяців тому

    VERY good take, thanks for opening my eyes on this

  • @angryprogrammer7788
    @angryprogrammer7788 9 місяців тому +6

    Now things have changed quite a bit and more changes are yet to come, can you give your thoughts on impeller? (Flutters new rendering engine) and shorebird (code push for flutter) and mind you these things are going to improve as well.

  • @konga8165
    @konga8165 Рік тому

    What do you think of Supabase?

  • @nimrsawafta1682
    @nimrsawafta1682 Рік тому +3

    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

  • @DrMarmalader
    @DrMarmalader Рік тому +3

    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.

  • @BosonCollider
    @BosonCollider Рік тому +7

    I'm looking forward to something like Tauri eventually exposing a more framework agnostic alternative to react native. Hopefully that should be a lot more pragmatic, since you can effectively go almost all rust or almost all js depending on what you prioritize.

    • @kamehameha38
      @kamehameha38 Рік тому

      Isn't Tauri for desktop apps only?

    • @DanWalshTV
      @DanWalshTV 10 місяців тому +1

      @@kamehameha38 Mobile targets are in the works

    • @mwlulud2995
      @mwlulud2995 Місяць тому

      ​@@DanWalshTVwhy used rust in mobile app? React native its very powerfull and good... And js it the best langage fort dev interface!

  • @yalcinozer4434
    @yalcinozer4434 Рік тому

    You got really nice points bro.

  • @boredstudent9468
    @boredstudent9468 Рік тому +7

    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.

  • @kuzux
    @kuzux Рік тому +4

    "not using react native specifically is choosing to prioritize your beliefs over your users". This has got to be satire, right?

  • @danirdd92
    @danirdd92 Рік тому

    What are your thoughts on .NET MAUI?

  • @anb4351
    @anb4351 Рік тому +2

    You have made some really valid points but those are some strong opinions you have there. As someone who have worked in both RN and Flutter each framework have their own pros and cons . I, like you prefer RN over flutter but don't hold such strong opinions against flutter like you.

  • @_____case
    @_____case 10 місяців тому +1

    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.

  • @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.

  • @kartikgarasia5685
    @kartikgarasia5685 Рік тому +27

    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 Рік тому +1

      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

  • @sevenreup
    @sevenreup Рік тому +5

    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  Рік тому

      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 Рік тому +8

      @@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 Рік тому +1

      @@qorzzz9252 keep getting triggered on all his vids bro

    • @qorzzz9252
      @qorzzz9252 Рік тому +5

      @@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.

  • @theo1311
    @theo1311 Рік тому

    Theo - what about python's kivy for mobile apps? KivyMD in particular.

  • @DuongBui-dq6km
    @DuongBui-dq6km Рік тому +4

    Theo - "the JS fanboy"

  • @pr0ximus
    @pr0ximus Рік тому +6

    You should suggest Musk to use JS in rockets - if something went wrong he could push update after start 😂

  • @PeidosFTW
    @PeidosFTW Рік тому +1

    is code push really that important, if so, isn't that more a problem of the app stores rather than the language/platform used? im just asking this since you make a really big deal out of it, and while I do understand where you're coming from, there's also the thing where those app stores have a review process for a reason, so going around it might not be the best idea if you don't want your app removed lol also, since you rely on it so much, could there be any problem on your end (lack of testing, bad testing, etc)?

    • @EstDeLeon
      @EstDeLeon Рік тому +2

      I was wondering how much errors do this guy while I were watching this video. Maybe is he letting the final users to test their apps?

    • @PeidosFTW
      @PeidosFTW Рік тому +2

      @@EstDeLeon yeah, I think he said that that's what they do, have the customer find the bugs and hotfix them without doing tests. Which is incredibly stupid, like how do you not have standardized testing?

  • @parametr
    @parametr Рік тому +2

    Well, the good thing about this video is that now I can safely tell UA-cam to never show me anything from this dude.
    Win-win

  • @lorenzojojoba2832
    @lorenzojojoba2832 Рік тому +7

    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 Рік тому

      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.

  • @DutchGamingPieces
    @DutchGamingPieces Рік тому +9

    For the codePush usacase, I believe that it is already going to wrong in the place where you are not testing your app.

  • @kirilokun2426
    @kirilokun2426 Рік тому +5

    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 Рік тому +1

      WOW! had no idea about FLutterFlow. Thank you for making me aware of it. Amazing stuff!

  • @Wyrade
    @Wyrade 8 місяців тому

    What's the whiteboard app you are using?

  • @calcio437
    @calcio437 Рік тому

    thanks, so this is why I will learn react

  • @nasouhalolabi3905
    @nasouhalolabi3905 Рік тому +3

    this is the first video I've ever seen that criticize flutter.
    Convincing... I'm not a mobile developer tbh

  • @owenwexler7214
    @owenwexler7214 Рік тому

    What about Ionic? Or do we basically consider that React Native-ish for all intents and purposes?

    • @owenwexler7214
      @owenwexler7214 9 місяців тому

      update to answer my own question: Ionic apps, as far as I understand, are basically web browsers that run only one web app (yours) and can access native tools such as the camera, the accelerometer, etc. All the code is web app code and code push as described in this video is not only possible but mostly how updates to Ionic apps are done. So in the context of this discussion yeah Ionic is very similar to RN as far as code push and over-the-air updates that don't need Apple/Google approval every time goes.

  • @thecyberhobbit
    @thecyberhobbit Рік тому

    the flutter issue you bring up reminds me a lot Adobe AIR applications.