My Final Flutter Video

Поделиться
HTML-код
  • Опубликовано: 15 авг 2023
  • I'm genuinely so tired of Flutter. Every time it comes up, I feel like I'm going insane. I'm still waiting to have a good experience in a Flutter app. Until then, I'll be sticking with React Native.
    Please be kind in the comments. I'm sorry for my harshness in this video, I just want to be done once and for all.
    ALL MY VIDEOS ARE POSTED EARLY ON PATREON / t3dotgg
    Everything else (Twitch, Twitter, Discord & my blog): t3.gg/links
    S/O Mir for the awesome edit 🙏
  • НаукаНаука

Комментарии • 526

  • @t3dotgg
    @t3dotgg  9 месяцев назад +179

    CORRECTIONS:
    - image picker uses native picker now, cool
    - Flutter rewrote their entire engine again, and if you use the new Impeller engine, it addresses some of the iOS jank
    - the creator of Flutter was so pissed about the OTA thing that he quit Google to start a company to do it himself (Shorebird iirc)
    This video is an edit of a rant from stream. I get asked dozens of times a day about my thoughts on a framework I genuinely hate. Sorry I was spicy at the end. I stand by every word.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +34

      (Also, still waiting for someone to name a single good Flutter app I can install and try on my iPhone. Don’t you dare say EBay Motors)

    • @cula4083
      @cula4083 9 месяцев назад +1

      I think either Pixels or Pixels Journal by Teo Vogel are made with Flutter, but he may have changed them idk

    • @_____case
      @_____case 9 месяцев назад

      ​​@@t3dotgg
      Reflectly has a great iOS app. And it's been available for years.

    • @TechBuddy_
      @TechBuddy_ 9 месяцев назад +5

      Google pay
      Stadia ( with negative latency lol 😂 )
      They are also improving the ffi bridge to make it better. I use both react native and flutter ( wierd I know ). RN is fantastic when you already have a team of web engineers. Flutter has awesome dx ( well..... Dart is uhm IDK not that great but ) the hot reload and the pace of dev is very good
      Anyways you have great points ( for now........ hopefully 😅 )

    • @oussamabouchebak6877
      @oussamabouchebak6877 9 месяцев назад +13

      @@t3dotgg How about you name a mobile app that you'd like built and I try building it in flutter? just for fun.

  • @redsun9594
    @redsun9594 9 месяцев назад +227

    Flutter gives you full access to the underlying native layer via platform channels, you can show and hide toasts, and you can also do an outlet to show native UI when it makes sense (for example when showing Google map, google ain't gonna rewrite google maps for Flutter), so your argument on this regard is misinformed
    Flutter has tons of native bindings to native libraries as well, I guess (???) not as much as React native, but that's subject to change
    I don't know where you read about image picker, it sounds absolutely made up, pickers use native code because it's just plain easier to write
    Abstracting native makes sense because you support a lot more platforms
    Jank is mostly gone with Impeller, the issue you're referring to seems to not be updated but has been mentioned to Impeller which is enabled by default is iOS and is soon to be fished for Android
    Flutter is far from perfect, but your arguments seem vastly misinformed.
    1. Not using a native platform allows for more uniformity and code portability
    2. The engine doesn't suck, even though it still has ways to go, it only gets better with time
    3. Flutter can do OTA updates, this would require some changes in the engine, but they don't do it, because app stores don't allow it anyway
    React Native is good, Flutter is good, neither is perfect, and both are getting better with time, competition is good, mixing facts to make your thing look cooler - not good.

    • @hoobz1988
      @hoobz1988 9 месяцев назад +71

      Theo’s vendetta against Flutter is kind of weird and unjustified. At the very least it is super misleading because there are A LOT of inaccuracies in his arguments that do more harm than good when objectively talking about a Framework.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +56

      1. Why not use Unity then?
      2. It’s incredibly unreliable compared to native platforms, and often overlooked by the primary audience of Flutter (early career devs)
      3. OTA is still a very early thing in Flutter. The literal creator of Flutter quit Google to solve the problem because it was THAT BAD. I also update App Store apps via OTA at least once a week, it’s a very soft “ban”
      I’m sorry man, but your word to incorrect assertion ratio here is much worse than mine 🤷only people checking the replies are Flutter fanboys so ratio away

    • @EmptyWaterBee
      @EmptyWaterBee 9 месяцев назад +62

      1. Why use browsers then?
      2. RN is even more unreliable. You have to rely on community developed packages for implementing every little thing.
      3. I don't think many people care about OTA updates.

    • @prerakmann1418
      @prerakmann1418 9 месяцев назад

      I feel Theo is intentionally writing stuff to provoke, perhaps for views.
      Soon natural selection will do its thing. We'll see what's better as the years go by 😃

    • @MikeNugget
      @MikeNugget 9 месяцев назад +67

      ​@@t3dotggWhat a childish way to write arguments w/o proofs 😂

  • @yousafwazir3167
    @yousafwazir3167 9 месяцев назад +26

    I’m disappointed.
    Once I realised I should just build in stead of argue of every technology I should use, I realised I was more productive 🎉

  • @shannonhall5055
    @shannonhall5055 9 месяцев назад +102

    14:25 flutter calls the native image picker, it uses platform method calls to call native functions just like react native does. Image croppers, maps, phone etc etc. In fact you can create your own methods and call anything native you want.

    • @exprove2496
      @exprove2496 9 месяцев назад +94

      I agree with some of his takes; however, making wrong statements like this reveals that Theo likely hasn't spent much time practicing with Flutter. Consequently, his opinion loses credibility. In my opinion, providing viewpoints to a broad audience without sufficient knowledge about both platforms is not right.

    • @phantomofhavoc
      @phantomofhavoc 9 месяцев назад +9

      absolutely correct! And my team is building our own channel to create a flutter SDK to call our native SDKs! becuase we have fully developed echo system nativly built and we want a quick way to port it to flutter!

    • @Aleaths
      @Aleaths 9 месяцев назад +12

      Not the first time Theo has a smooth brain take on something
      Typical for a webdev (nodev) that are crazy about frameworks

    • @giuliopimenoff
      @giuliopimenoff 9 месяцев назад

      ​@@exprove2496even if he made a wrong statement, it doesn't mean that the other things he said aren't correct or well said

    • @BooleanDev
      @BooleanDev 9 месяцев назад +5

      @@giuliopimenoff it certainly discredits it if he misses something so basic

  • @bogdansinitsa5089
    @bogdansinitsa5089 9 месяцев назад +66

    I used React Native for my project a couple of years ago, and the development experience was not good at all. The debugger would fall off constantly, library updates were a nightmare, with a lot of random bugs. Sometimes, the project simply wouldn't run anymore for weird reasons. Quite often, I had to troubleshoot strange errors with unclear descriptions. At some point, I gave up and switched to Flutter, which simply provides better development tools out of the box.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +17

      A few years ago, there was a lot of work to be done. Things have gotten much better in a post-Expo world, I highly recommend checking RN out again

    • @AntonioBrandao
      @AntonioBrandao 9 месяцев назад +3

      Yeah React Native was a mess without Expo

    •  9 месяцев назад +15

      My experience as well. Flutter tooling is orders of magnitude simpler and more powerful. Honestly, I think Theo hasn't spent 5 min trying out Flutter. If he had made just one app he'd know that we can also call native SDK via platform channels and even C or Rust libraries via the FFI.
      It's okay, who cares anyway...

    • @Healing_Bunny
      @Healing_Bunny 9 месяцев назад +6

      @@t3dotgg Couldn't the exact same argument be made for flutter? It doesn't seem like you have used it in its present state.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +5

      @ You literally can't call native UI at all since it's not a native render layer. You can call APIs in like the backend sense, but you can't render anything from native land

  • @adnanjpg
    @adnanjpg 9 месяцев назад +52

    I am NOT a flutter fanboy, I've started with flutter and now in the process of moving to React Native for numerous reasons, but I still have the need to say that Theo's flutter videos have a big chunk of lack of research and experience with flutter.
    Some of the arguments in this video are outdated, but he thought that a correction comment is enough when a lot of the new devs that are led by him may not read it, so he's also misleading the new devs.
    As he mentioned the benefits of react native on the web, this is clearly not a mobile dev video, so he should've mentioned flutter's desktop stuff, which is what flutter has been focusing on for a while.

  • @bobDotJS
    @bobDotJS 9 месяцев назад +23

    I built a bot that gives Theo takes. No AI needed. All it does is ask "Is this a JS ecosystem technology?". If not, it says "it sucks".
    So obviously Kubernetes sucks, Flutter sucks, Rust sucks, etc...

  • @hambaba
    @hambaba 9 месяцев назад +56

    Why does JS people always love to hard sell RN so badly? (The same case also happened in my old company).
    I’ve used RN myself to have a single codebase for 3 platforms altogether. The dev experience was really bad and there are a bunch of overhead implementing things on each platform. Don’t even get me started on debugging 😅
    Native dev experience for me personally is still better. Haven’t got any experience in developing with flutter tho, so I can’t say much.
    In the end of the day all of them are just tools. Use what solves your problem and suits your use case best. Don’t need to die on a hill for it

    • @arashitempesta
      @arashitempesta 9 месяцев назад

      must be because of expo, react native by itself is a completely different beast, with expo you just install compatible packages and can test immediately on your own device, and even add native code not supported by expo nowadays, and gives so much stuff that people overlook some jank that you will still find sometimes.
      for example recently I had an issue on react native with expo that, I've had to use adb tools to see crash logs on the compiled apk 😅didnt happen in the dev env. its an app that started on the v35 of the expo sdk, is now on the v49 and overall ... no problem free but like I said, so much stuff that outweights the issues you might find.

    • @Trucho1996
      @Trucho1996 9 месяцев назад +1

      Sounds like you're not a true React dev. The RN experience is very very solid now a days. Specially when count in Expo

    • @Trucho1996
      @Trucho1996 9 месяцев назад +1

      The React experience itself is rock solid too. With hooks and functional components and now React 18

    • @MsVsmaster
      @MsVsmaster 9 месяцев назад +1

      1- because it uses javascript/typescript
      2- has lot more job offers than flutter, took canada for example and there is like 60 job offers while for react native it has 800
      3- react native is real doing native bridging here and not painting in canvas
      4- if you want to move to another background like web or backend you just have to learn the APIs from those sides
      Flutter has good dx smoother than react native, and looks faster in android, but for job or company owners looking for investment and talents, they will choose first react native because IT IS more accessible.

    • @DaFuqMIWatching
      @DaFuqMIWatching 8 месяцев назад

      @@Trucho1996 "You're not true react dev"
      been developing with rn professionally for past 6 years, both expo and non-expo debugging is not great at all. dealing with platform differences and limited api when it comes to it is pain. Anything that is more complicated than a view with a button inside requires a lot of hacking to make it visually satisfying.
      Maybe my use cases were leaning more on graphical side of things, but Flutter feels like a less janky tool for me. Which in the long run (over the years) saves me a lot of stress over shit breaking.
      And don't get me started on upgrading RN in mature projects

  • @additionaddict5524
    @additionaddict5524 9 месяцев назад +27

    commenter: what about react native without expo
    theo: react native with expo is great

    • @mrrobinet5551
      @mrrobinet5551 25 дней назад

      expo is for beginners, seasoned RN developers don't use it.

    • @additionaddict5524
      @additionaddict5524 25 дней назад

      @@mrrobinet5551 i mean, that's clearly just untrue, eg Alan migrated pure RN to Expo

  • @smokeyoak
    @smokeyoak 9 месяцев назад +34

    "Stop writing your apps in game engines" dang I thought I was blazing a new trail in the field of app development but I guess I'll go back to writing my form based web apps in a JS stack instead of the Source engine

    • @purvanjaro
      @purvanjaro 9 месяцев назад +4

      real chads write apps in source

    • @underscore.
      @underscore. 9 месяцев назад

      @@purvanjaro real chads write apps in assembly*

    • @owenwexler7214
      @owenwexler7214 9 месяцев назад

      @@underscore. real superchads write apps with the Rollercoaster Tycoon engine

    • @_erayerdin
      @_erayerdin 8 месяцев назад

      source 2 when?

  • @christiannababan9744
    @christiannababan9744 9 месяцев назад +28

    The fact that developers are hating each other over which framework they prefer is ridiculous and toxic. I've developed app for 9 years now, 4 years with native, 5 years with Flutter (and native, because flutter method channel made it possible), and I also tried React Native, here is my opinion: they're all wonderful tools that can help you create great apps as long as you spend enough time to learn them correctly.
    I gotta say, this framework wars are nothing but nonsense that only distract us from the real culprit: Lazy employers who only want to take developers with specific framework experience. They don't wanna give any training to new developers or at least give them 1 month time to learn, they'd rather have bad developers with the required framework than good developers who can easily adapt to any new framework/language. This situation makes framework = developer livelihood, inciting hatred to any developers who develop with other framework/language for taking away parts of their opportunity.

    • @wiztek1197
      @wiztek1197 9 месяцев назад

      Smartest guy in this comment section

  •  9 месяцев назад +67

    I really love this channel until the topic flutter comes up ...I spent nearly my whole IT-carier (10+ years) building mobile apps.
    I mostly used android native but unfortunately I had to use all the other framework like cordova, ionic, xamarin and React Native and not one have delivered what they have promised.
    Then flutter came and I switched frome native to flutter. I have used flutter since 2017 and since 2018 professionally. I would never recommend react native to anyone who wants to build an app.
    IMO for a startup I would recommend first build an Website, improve it and use all the PWA features. If that is not enough write a app flutter or maybe Jetpack Compose (which has iOs supper in alpha).
    In general I would try to push the need for an app as far away as possible.
    But maybe that just me, and my background in Java / Kotlin land and my general preference for statically typed languagea 😂

    • @gofullstack
      @gofullstack 9 месяцев назад +3

      I was hoping to see his response to this, lol.

    • @andreilucasgoncalves1416
      @andreilucasgoncalves1416 9 месяцев назад +1

      Most apps can easily be a website

    • @Vim_Tim
      @Vim_Tim 9 месяцев назад +3

      There is so much more to app development & maintenance than whether the programming language is statically-typed. The merits of Dart are totally irrelevant to Theo's complaints about the platform.

    • @LenkeDev
      @LenkeDev 9 месяцев назад

      I don’t recommend Compose for iOS…. It would be easier to write SwiftUI and Kotlin multiplatform for some backend logic, but I agree with you in some points.

  • @Malix_off
    @Malix_off 9 месяцев назад +128

    And we peasants wondered why they take so long to release GTA VI …

    • @t3dotgg
      @t3dotgg  9 месяцев назад +68

      Why release GTA VI when you can re-release GTA V a fifth time?

    • @thedevminer
      @thedevminer 9 месяцев назад +1

      ​@@t3dotggGTA V * V :deranged:

    • @oggy112
      @oggy112 9 месяцев назад +1

      @@t3dotgg GTA taking a page out of skyrim's book

    • @meqativ
      @meqativ 9 месяцев назад +1

      malix

    • @Malix_off
      @Malix_off 9 месяцев назад +1

      ​Wow hello @@meqativ, how are you doing? Are you still using S4D?

  • @WilsonSilva90
    @WilsonSilva90 9 месяцев назад +18

    I had some comments from the Flutter perspective, but very quickly realised why experienced Flutter developers abstain from engaging in these rants. There's so much bias and tribalism here that it requires a lot of energy to refute. It is more productive to use that energy to build apps.

  • @drantunes
    @drantunes 9 месяцев назад +59

    Flutter can call native APIs as same as Kotlin or Java in Android, for example. Your explanation is wrong. Native APIs, like sensors, exposes a C / C++ API via Android NDK - Native Development Kit. Kotlin and Java abstracts the NDK to facilitate the development, calling these native methods via JNI (Java Native Interface). In background, this communication uses a foreign function interface (FFI), a mechanism that allow a communication between languages in binary level. Well, Dart have the dart:fffi and (recently) supports JNI.
    About the UI engine: is a choice. Instead of having different layouts and inconsistencies across platforms, you can effortlessly get same design app on iOS, Android, Mac, Windows, Linux... This is extremely useful for companies with same design system across platforms (e.g. Spotify). If the design team needs the OEM widgets, so RN makes sense and Flutter will be a pain.
    Your Image Picker explanation is definitely wrong. Flutter can call the Native OEM widgets and functions of Android and iOS using the platform channels in the more near level than RN bridge. As well, if more performance will be need, just call native C/C++ via FFI...
    The Jank video showed have 2 years ... now, Flutter uses the Impeller engine and calls Metal / Vunkan renderers.
    Code Push is now possible in Flutter with Shorebird, created by a ex-Google engineer.
    Opinions are important. But it's not fair to spread misinformation about something you don't know about...

    • @dongueW
      @dongueW 9 месяцев назад +1

      Interesting

    • @gofullstack
      @gofullstack 9 месяцев назад +3

      Ask him to keep the JS contents, that's why I'm here its fun too use.
      I think we need to verify things these guys say on RUclips lol

    • @juliusab
      @juliusab 9 месяцев назад +9

      Thank you just what I was saying. Theo is not a flutter dev. For people who have started with RN and moved to flutter and actually learnt to build good apps the right way we can easily tell you Flutter>RN. I just feel bad for people here who will like to try flutter but skip cos Theo's opinion.

    • @mrrobinet5551
      @mrrobinet5551 25 дней назад

      can you create a native view and show it in your flutter (skia canvas)?

  • @charliesumorok6765
    @charliesumorok6765 9 месяцев назад +5

    For game engines that you can modify, like Godot, would it make sense to design an app in the editor, then export it to multiple platforms using exporters that create more native apps?

  • @guramguram6706
    @guramguram6706 7 месяцев назад +7

    I had to develop an MVP of an app with React Native couple years ago. This was my first experience building mobile apps with React Native and i hated every second of it. I would leave for the day, come back next day and perfectly running app wouldn't even compiel. Compiler would just bombard me with kilometers of giberrish text. Flutter on the other hand though...perfect developer experience so far. I'm sure React Native is better now, but for me personally choice is between dev and user experience and how much tech solution compromises in each of them. Flutter seems like a best compromise to me so far.

  • @dracsharp
    @dracsharp 9 месяцев назад +18

    I think most devs just pick one and use it for everything.

  • @developeroppa
    @developeroppa 9 месяцев назад +18

    Flutter's developer experience is one reason I use, then the cross platform advantage too is a huge plus and then material 3

  • @mehulsharmamat
    @mehulsharmamat 9 месяцев назад +27

    don't tell anyone but im scared of native dev

    • @purvanjaro
      @purvanjaro 9 месяцев назад +4

      none of my react apps are mobile-friendly and i will shit myself if anyone views them on a phone.

  • @levibaraka
    @levibaraka 9 месяцев назад +5

    What about Kotlin Multiplatform and Compose Multiplatform isn't that the most native you can get?
    Though on ios it's on beta beta but there's some companies that are already in production with it

  • @marknefedov
    @marknefedov 9 месяцев назад +16

    Jokes on you, I build apps in Godot!

    • @aurkodipde
      @aurkodipde 9 месяцев назад

      is it available online?

    • @BooleanDev
      @BooleanDev 9 месяцев назад +1

      godot is amazing

  • @pokefreak2112
    @pokefreak2112 9 месяцев назад +37

    I seriously doubt you have significant experience writing flutter and Unity apps. as someone that has actually used web, rn, flutter and Unity, flutter is the best platform to make apps for small businesses.
    - React/Native and web are not made for complex UI's
    - Unity lacks accessibility and responsive layouts, and the startup time is unacceptable for regular apps
    With flutter you get to have fancy animations on a small budget, which is exactly why companies want an app. if they wanted some boring UI they would just ask for a website.

    • @aurkodipde
      @aurkodipde 9 месяцев назад +5

      i think i have tried all u have just mentioned..i second u..flutter will win the cross platform war..taking market share from unity, react native, electron & ionic/capacitor..kotlin multiplatform dosent support desktop or web, so there is no comparison.

  • @Santon-Motho
    @Santon-Motho 9 месяцев назад +135

    Ah yes, the good ol' graph-assisted Theo rant. Love it.

    • @Igstefano
      @Igstefano 9 месяцев назад +1

      Had been a while, hadn't it? Good to have it back.

    • @rasib101
      @rasib101 9 месяцев назад +1

      Love it !

  • @sambaotaku
    @sambaotaku 9 месяцев назад +34

    Flutter dev here, I think is fine for both to exist.
    As for the discussion, flutter vs react, both are mainly use by small dev teams, big apps are using native code, as you said flutter developers doesn't know to much about react native, and is the same for react-native devs with flutter(the video itself), in the end, if you are good at one, why would you switch to the other? if you can take advantage of that time to become a native.
    Both frameworks are improving and that's because are competence, flutter still has important issues to address to get a native-like feel, and react-native has his own issues, don't know much about they, but we are in 2023 and the "next" version is still experimental... but yeah, I would find much better to create a comparison each year, like the Fireship last year comparison, than a rant video.
    From what I know Philips Hue app is made with flutter, although I don't think the switch to the new engine(for now is op-out, and only for ios).

  • @MikeNugget
    @MikeNugget 9 месяцев назад +28

    The next final Flutter video: I was wrong about Flutter 😂

    • @aurkodipde
      @aurkodipde 9 месяцев назад +6

      will happen for sure :)

    • @mrrobinet5551
      @mrrobinet5551 25 дней назад +1

      flutter is still crap, lets be honest here. with all the canvas painting.

  • @Dominik-K
    @Dominik-K 9 месяцев назад +2

    Very nice video, and with some features like Service Workers (offline capability), camera access (with QR code scanners, etc. Available), we were able to ship an event application that allowed us implement an IRL art hunt game with just a website. Project Fugo and a middle class phone can allow for even more interactivity are possible. And some features like notifications are possible to implement just with websites for years now
    Just the UX is still suboptimal. Flutter is a fun tool for some, very specific use cases. But performance can be solved way easier than just doing a flutter app

  • @NikolayNIKfeed
    @NikolayNIKfeed 7 месяцев назад +5

    Besides obvious stuff I like the way Flutter lets me just render whatever I want. Here's a couple examples from my table library project:
    2D scrolling with intricate clipping of frozen at the edge columns while keeping all cells in the same row hierarchy to support interactions
    Applying the same shader to a specific set of widgets for shimmer effect
    Sliver version of with the same features plus sticky header and footer which can be used in any vertically scrollable list along with anything else
    May be its me, but I don't see a way of doing this in any other UI toolkit. Not without jank, at least

  • @marana.th4
    @marana.th4 8 месяцев назад +20

    3:48 Flutter "literally" takes screenshots wtf lmao, I get you don't like flutter but mate.
    Flutter uses a technique called "skia painting" for rendering UI elements, and it doesn't rely on taking screenshots or overlays like you described.
    When you build a Flutter app, the UI components are drawn directly onto the screen using the Skia graphics engine.
    10:56 Flutter makes writing native code and calling it in flutter nearly impossible? okay at this point, I'm assuming you never really used flutter before or something, there's something called PlatformChannels, write in native and simply call it in flutter

    • @mrrobinet5551
      @mrrobinet5551 25 дней назад

      That's what Skia is if you didn't know, it's a graphic engine same way like unity (just for games). So stop proving Theo's point and use maybe wikipedia before writing nonsense.

    • @marana.th4
      @marana.th4 25 дней назад

      @@mrrobinet5551 lmao, so unity takes screenshots and overlays it on a canvas? and I'm the one writing nonesense
      I keep rereading you're comment and I can't make any sense of it, how did you read the original comment and come up with what you just wrote?
      Do you even know what is being discussed?

    • @mrrobinet5551
      @mrrobinet5551 25 дней назад

      @@marana.th4 you're just dumb, the word 'like' doesn't always mean 'equal'. learn to read the whole sentence. and for your information, unity renders 3d and doesn't try to copy/screenshot native ui elements like flutter.

  • @lesnitsky_dev
    @lesnitsky_dev 9 месяцев назад +31

    Discalmer: I'm not saying Flutter is ideal, neither I'm saying React Native is bad, I can bring arguments in favor of both (or against), based on my intent. I have almost equal experience in Flutter and React Native (around 4 years of daily use for both), so here are my few notes: some wording in this video is misleading (not sure intentionally or not), many statements are very arguable, a few are just plain wrong. I'm not sure what was the original author's goal when making this, It might make many people jump into wrong conclusions which in some cases could cause poor decisions on their workplace. It also feels like that the video could have been on a next level if the author had more Flutter expertise. I wonder if the author is open to a public discussion about all this.

    • @skyhappy
      @skyhappy 9 месяцев назад +5

      Can you elaborate on what is misleading or arguable

  • @whatsanimesh
    @whatsanimesh 9 месяцев назад +3

    what do you have to say about the large app sizes of RN ? Also Do you what tech is the Bing app on android using, cause it absolutely sucks to use it.

    • @fnfal113
      @fnfal113 9 месяцев назад

      mostly due to the universal support for different processor architectures (ARM64, x86, etc), this bloats up the app unless separate packages are used for every arch and also javascript and c++ are bundled with the app too so larger than native.

  • @viyicciyiv
    @viyicciyiv 9 месяцев назад +6

    interesting video!
    i just started learning flutter and it's been quite nice, but i'll keep that in mind

    • @dontdoit6986
      @dontdoit6986 9 месяцев назад +12

      Flutter is great. Don’t let others opinions sway you. I’ve been on a team with multiple enterprise Flutter apps with 1m+ users. It’s a great frontend framework.

    • @zzzyyyxxx
      @zzzyyyxxx 9 месяцев назад +6

      Keep learning Flutter, it's awesome. I loathe working in RN and I've done that for years before diving deep into Flutter.

  • @thepickicool97
    @thepickicool97 2 месяца назад

    I was waiting for someone to do this video ! Thank you !

  • @pxnx
    @pxnx 9 месяцев назад +9

    what is your take on jetpack compose? kinda like react native, but written in kotlin.

    • @MaxProgramming
      @MaxProgramming 9 месяцев назад +1

      Yep definitely really nice. Not cross platform but we get the bestt experience on android

    • @t3dotgg
      @t3dotgg  9 месяцев назад +2

      Seems dope, haven’t used it yet though (I am an iOS soy boy nowadays)

    • @levibaraka
      @levibaraka 9 месяцев назад +1

      ​@@MaxProgramming Compose is cross-platform now I use it for desktop development though
      But plenty of people are now using it for ios now that compose for ios is in beta

    • @MaxProgramming
      @MaxProgramming 9 месяцев назад +2

      @@levibaraka yep even for ios it's good. But you still need to write some Swift code. Probably the UI or the logic part idk exactly

  • @sevenreup
    @sevenreup 9 месяцев назад +22

    Flutter is a cross platform graphics render engine that has an emphasis on UI, while RN is a bridge between different renderers across different platforms.
    I dont think the custom renderer should be the reason you don't pick flutter. The approach that flutter makes has some benefits and so does the RN approach. In flutter the only time you have to touch the native code is when you want to access a specific native feature and not something UI related. For example the Image picker mention uses the native image picker on all the supported platforms, it does not create a new UI. But you also have an option to host native UI in your app.
    Flutter makes sense in the applications that were mentioned but it also makes sense in applications that need to act or look the same across all platforms, what flutter gives you is away to abstract out the UI concerns away from your multiplatform application. I understand the IOS issue, and the did release a fix for it, a new renderer to fix those graphical issues that's situation could happen to any cross platform framework.
    At the end of the day both of them are just tools and it all depends on what you want to achieve. And some tools make sense once you have used them.
    PS. I am write both RN and Flutter

  • @JacoBoogie
    @JacoBoogie 9 месяцев назад +13

    Oh no here we go again 🙄
    Sike! Here for every bit of these takes 😂

    • @cellularmitosis2
      @cellularmitosis2 9 месяцев назад

      Psych, not sike. As in “I psyched you out”

  • @LUKAS3675
    @LUKAS3675 12 дней назад +1

    I'm at 4:20 and I'm already overwhelmed by the amount of wrong info about flutter, pulling myself together to make it at the end of the video

  • @AntonioBrandao
    @AntonioBrandao 9 месяцев назад +7

    Flutter provides a pretty good developer experience overall if you follow along the instructions and method. I understand why noobs like it. It places you in a little Flutter land, narrowing the number of places you have to learn from, and seemingly providing a lot of useful widgets ready to use. The code is easy and does a great job at displaying errors. I wish I had something like this back in 1999. Even I was impressed how quick I set up a working app with custom UI. But I gave it up for the same reasons cited by Theo. I did the same app afterwards in SwiftUI and not only did it perform much better, it also took me half the time to build!!
    Writing SwiftUI is in a way similar to writing Flutter, except the performance is much better and it’s just for iOS.
    If you need to make a truly high-performance multi-platform app or game, you can use something like QT. It’s language (QML) provides a writing experience similar to writing Flutter.

    • @UbuntuBanksie
      @UbuntuBanksie 9 месяцев назад +2

      no.

    • @marana.th4
      @marana.th4 8 месяцев назад

      you almost got it, but I don't think you hit home with this one chief lol, you said a lot of wrong stuff here

    • @marana.th4
      @marana.th4 8 месяцев назад +3

      Comparison of Developer Experience in Flutter and SwiftUI: Flutter is a cross-platform framework, allowing you to build apps for multiple platforms (iOS, Android, web, desktop), while SwiftUI is primarily focused on iOS and macOS app development. Therefore, the comparison might not be entirely accurate since the two frameworks have different target platforms and capabilities.
      Performance Comparison between Flutter and SwiftUI: performance can vary based on factors such as the complexity of the app, the device it's running on, and the specific optimizations applied during development. While SwiftUI might offer certain performance advantages in the context of iOS app development, Flutter also employs a high-performance rendering engine and provides tools to optimize performance for various platforms buttttttttt QT and QML are distinct from Flutter and SwiftUI. QT is primarily used for C++ development and is more commonly associated with desktop applications. Flutter, on the other hand, is designed for modern app development with a focus on user interfaces, while supporting multiple platforms including mobile, web, and desktop.
      Flutter's Learning Curve and Easiness: Flutter is suitable for beginners ("noobs") due to its simplified learning curve and ready-to-use widgets. I agree that Flutter does provide a rich set of widgets that can streamline development, but if you're a "professional developer" as you claim, you should know that becoming proficient with any framework, including Flutter, requires time and practice. Additionally, the term "noobs" might not accurately reflect the diverse range of developers who use Flutter, including experienced professionals.
      You're a seasoned developer, since you mentioned 1999, so make accurate comparisons and avoid generalizations that might not apply universally across all developers and scenarios.

  • @dimitmoto1716
    @dimitmoto1716 9 месяцев назад +1

    Tell your opinion about ionic react + capacitor. In this case you use the same code for web, mobile, pwa, desktop. There ara plugins for the most native features

  •  9 месяцев назад +20

    I honestly don't understand why people care about calling native views so much? For that use case it's best to just use Kotlin and Swift. Personally I like Flutter because it allows me to make the app exactly the way I want to make it and call for platform's native code only when I absolutely need it (which is almost never).
    I also like that we can easily integrate C, C++ and Rust libraries via the FFI. We are also largely escaping the dependency hell of JavaScript. I don't want my app to have a million rapidly changing dependencies. With Flutter that situation is much better. Things seem much more stable.
    Dependencies that I use don't get updated so much as they are written from scratch and don't depend on other packages, build tools etc. They are simply done and they can stay like that forever if there are no security issues found in the future.
    Animation jank is a real issue, not as big as it used to be. Personally I've never experienced such huge jank issues as on some videos that I've seen. I suspect they are probably doing something wrong in their code in that case.
    But yeah, flutter makes me pretty happy so far and I hope it gets much better.

  • @dalanxd
    @dalanxd 9 месяцев назад +5

    The Javascript Native bridge, which is this option of going to the native layer, writing custom code and calling it from the React Native Javascript world is also a reality in Ionic / Capacitor
    Capacitor also has a pretty rich ecosystem of plugins to access the native layer and you probably wont need that
    Yeah, great vid, Theo, I just disagree where you've put the Ionic's line hahahah
    It makes sense in more scenarios in my opinion, specially with projects on a tight budget

    • @redhotbits
      @redhotbits 7 месяцев назад

      half of capacitor plugins were buggy as hell last time i checked

  • @szmr
    @szmr 9 месяцев назад +2

    7:01 I built my dissertation app with Ionic and it was super nice when I was still learning, however there were some issues since is wasn’t a native app

    • @dukeselwood
      @dukeselwood 9 месяцев назад +1

      Hi, I've just started using Ionic, and really like it so far. I'd be interested to know what problems you had with it?

    • @szmr
      @szmr 9 месяцев назад +1

      @@dukeselwood well it was to do with performance for some of the components, I found the modals specifically to be quite unresponsive at times - granted it could be user error; I am much better at coding than I was when I built the app and I have a long way to go currently (to put it in perspective). I was using ionic v6 - but have fun building!

  • @GeneralHurrell
    @GeneralHurrell 4 месяца назад

    Great video. I started a personal project in flutter (also to give it a real shot and learn something new). On the other hand, I work with RN. I know I'm not doing it right and with best practices because I don't know them with Flutter and I want to build an mvp fast. I kinda achieved it, but I still find it alien, and the code is a huge mess. I now started to think if I'm better off migrating to RN with Expo and start again, considering that I'll build something much better and faster with RN (and I know this is biased because I work with React for years now). I loved Flutter at the beggining because it lets you prototype faster IMHO. But know I feel more obstructed than faster and more productive. Now I have a mess, and it doesn't even feel right, I guess it has to do with the things you mentioned. IDK I don't know if I should continue or invest in rewriting everything again but nicer. I guess, doe to my experience, RN would be better in the long term, because I'll be able to maintain it better. Flutter was fun tho. Opinions?

  • @_____case
    @_____case 9 месяцев назад +22

    Platforms come and go. Web is forever.

    • @bruwyvn
      @bruwyvn 9 месяцев назад +1

      Trying to ignore hybrid HTML5 apps is like trying to ignore Javascript

    • @smokeyoak
      @smokeyoak 9 месяцев назад

      @@bruwyvn ah yes, the "Quiet Web"

    • @jujujajajujujaja
      @jujujajajujujaja 9 месяцев назад +1

      Isn't web a platform?

    • @_____case
      @_____case 9 месяцев назад

      @@jujujajajujujaja I am using "platform" to mean ISA + OS combination that binaries must target to run directly on a device.
      The Web provides a truly "platform"-agnostic runtime for apps.

  • @chris.dillon
    @chris.dillon 9 месяцев назад +3

    Games themselves are a junior trap. "Games are fun! I'll make an MMO and be rich!" But games are software at least (if not a domain specialization, if not art/design/feel, if not divergent from apps).
    About 20 years ago a very special dev told me that OpenGL is just an API. I was learning everything and now see what he means. I'm not even a gamedev now, nor would I assert I am one until I learned the API. But I didn't know what that meant. Sometimes things don't land because communication is a relationship.

  • @joranmulderij
    @joranmulderij 9 месяцев назад +14

    You forget the second real use case for flutter: Cheap cross platform apps. Quickly building a flutter app is quite a lot faster than doing that in react native, or even web wrappers.

  • @austincodes
    @austincodes 9 месяцев назад +10

    I think every flutter dev in north america is here in the comments of this video 😂

  • @fullstack_journey
    @fullstack_journey 9 месяцев назад +15

    Hard to believe you're a senior Senior dev, must be the stache helping you

  • @GabrielRodriguez-iz9ob
    @GabrielRodriguez-iz9ob 4 месяца назад

    Code pushing in RN sounds so cool! I think Flutter may make sense when you target Android and also want to support iOS (rather than the opposite); different brands of Android devices may have native components that look or act differently.

  • @aakashr79
    @aakashr79 9 месяцев назад +47

    Love your content Theo but completely disagree with you on this. Yes, the years of native features baked into native components are invaluable. But it's not like they took years to build. Rather it took years to identify and can be re-implemented in a significantly shorter amount of time in comparison. However that's not what Flutter is about. Coming from a native app dev background, the sheer UI flexibility and native interop that Flutter provides is a game changer and satisfies almost all use cases of an application. The ease of use and intuitive APIs aren't comparable with anything else like RN on the market. (Maybe KMM compose in the future but who knows) The difference between the ease of implementing UI libraries in Flutter & RN are poles apart, let alone the additional native dependencies that might come along with the RN libraries. (We all know how we feel about resolving incompatible dependencies) I am not even going to touch upon bundle size and performance differences. To me one of the major USPs of Flutter is the sole confidence it gives a dev regarding UI design accuracy. I am not saying that the same accuracy isn't possible w/ RN or in native of course, it's just the plain ease with which it's possible in Flutter. And we all know, no matter how complex we can make applications, most of mobile development is just fetching data and displaying standard UI. In this aspect Flutter shines through with the sheer simplicity of the Framework. No hooks. No redux. Just plain and simple classes and context. (Streams or Rx if you want to take it to the next level!)

    • @Trucho1996
      @Trucho1996 9 месяцев назад

      Valid points but your opinion is still not a strong argument for using Flutter over RN or native. You're essentially saying that because Flutter APIs are easier to work with that means is better. Did you forget that the point of an app is to bring some value to your users? Is not about making ur code more readable or increasing your abstraction layer is about the user experience. And I'm sorry but Flutter will never be native and native is what users expect. I think there are good use cases for flutter beyond the ones theo mentions. But let's be honest the majority of developers are just thinking of themselves when picking flutter not about the users

    • @aakashr79
      @aakashr79 9 месяцев назад +4

      @@Trucho1996 The user expects an app to be fast and that the features should work seamlessly. What is easy to forget is the business value that comes along with a better dev experience. The pace at which a product can be delivered is a huge win for an organisation. If the user expects native elements, most are already available in the framework. Others can easily be implemented when needed.
      Just remember. Flutter accesses the graphics layer directly. It’s what the native framework also does. The only difference is that the native elements have in built behaviour in them that can easily be included with Flutter.

    • @Trucho1996
      @Trucho1996 9 месяцев назад

      @@aakashr79 fair but thanks to Expo the RN dev experience is arguably superior in most use cases. It allows for more code reusability with the web plus it's easier and cheaper to find React developers when building a team. So although Flutter has benefits and sure can be used effectively thanks again to Expo RN would probably be the best choice for most projects. But anyways I'm not going to argue this to death at the end of the day great software can be written with both

    • @ivensauro
      @ivensauro 8 месяцев назад +1

      ​@@Trucho1996I disagree that users will prefer native over flutter, users don't care about how this is made, but if this is good and don't break

  • @rede_neural
    @rede_neural 6 месяцев назад +1

    React native with expo is pretty weird on miui devices. The dark mode of miui changes the brightness of the color to a maximum of 25% (I guess), which changes all colors in your app, even if the user specifically clicked on a theme toggle switch. The only way I could solve this was by using react native without expo and messing up with an xml file. Please have a look into this problem bro, is there a solition?

  • @s3rit661
    @s3rit661 3 месяца назад +1

    4:50 The point of Flutter is to have one codebase for all the platform, you give up the native stuff to pay 1/5 of engineering and working with a better written language, that is dart

  • @sirk3v
    @sirk3v 7 месяцев назад +5

    you really need to fact check your videos.

  • @tusharjain2604
    @tusharjain2604 3 месяца назад +5

    This guy doesn't know what he is talking about

  • @boredstudent9468
    @boredstudent9468 9 месяцев назад +1

    My biggest use case for flutter is, Graphics as an afterthought. Darts FFI works reasonably well, so I can just slap a screen on my PI and then maybe route the event bus through a socket and *bam* I have it on my phone.

    • @boredstudent9468
      @boredstudent9468 9 месяцев назад

      And thanks to MUI they don't even look that bad.

  • @mehmetedex
    @mehmetedex 9 месяцев назад +3

    Wow such a cool roasting. We need more.
    So when will you release a "My Final ReactNative Video" video

  • @henriquefigueiredo4077
    @henriquefigueiredo4077 9 месяцев назад +2

    This is not just a flutter video. This is a mobile development technology choices video

  • @hisamafahri
    @hisamafahri 9 месяцев назад +24

    "It's genuinely really-really hard to have conversation about Flutter. Because, the average Flutter fanboy is a new developer"
    Dang, that's made me laugh so hard 🤣

    • @kennyfully88
      @kennyfully88 9 месяцев назад

      Yes, that's the problem. That and sometimes I feel like Flutter developers don't really explain what's the real problem that Flutter is trying to solve. Instead, we see apps with tons of animation and no real functionality. As a former web dev, I started building some of my apps in Flutter then making a JavaScript version of the same thing so that I can explain the difference.

  • @TheBuddilla
    @TheBuddilla 9 месяцев назад +6

    The only reason I considered flutter was because it had linux and embedded support. Sadly projects that allowed linux apps to be made with react native are not well maintained if at all. Basicallically flutter allowed a "single" codebase for mobile, desktop and embedded. It's implementation sucks though and is just as bad as working with QT if not worse.

    •  9 месяцев назад +3

      How so?
      What issues have you encountered?
      Btw for embedded you can make everything in C or Rust and just the gui in Flutter. It's pretty great actually.

  • @GAoctavio
    @GAoctavio 9 месяцев назад +2

    I don't particulary care for apps "feeling native" (that doesn't mean I don't like "native performance")
    Funnily enough, I've had some bad experiences with some React Native apps in that area

  • @rtachallenger
    @rtachallenger 9 месяцев назад

    Can you address the vite + capacitor stack for mobile apps? it's been a year since i first commented this on one of your youtube videos, lately many people on your socials are also talking about it. I know you mention Ionic but Ionic is just the UI framework to display native-alike components, the real sauce is on the capacitor plugins. The world could become such a good place if we had just as much capacitor plugins as we do have native bindings for react native. The big thing about capacitor is that you are not forced to use React, you can do Vue, Svelte, Solid, Vanilla, Jquery, whatever your web view supports, you can also extend your native-generated projects to include and customize your implementation as you wish.
    You could also go crazy and render 2d/3d if the WebView you are using supports stuff like webgl or simple html5 canvas.

  • @gofullstack
    @gofullstack 9 месяцев назад +14

    I think you still need to take a good look at Flutter because when it comes to UI as you've stated Flutter recreates what you think should look like native, in fact your application doesn't need to look different on different platforms if you don't want it to
    What you've failed to realise is that flutter can talk to any native API.

  • @thelightsilent
    @thelightsilent 9 месяцев назад

    so unity for applications and games?

  • @Matthew-eu4ps
    @Matthew-eu4ps 2 месяца назад +1

    The thing is I don't really want to write an app in javascript

  • @owenwexler7214
    @owenwexler7214 9 месяцев назад +8

    6:06 literally my exact use case for a mobile app. The mobile site does literally everything the mobile app will do with the exact same native app feel and experience but I’ve had people tell me “I just really need that app icon on my phone”
    Might try and do a PWA to tide those folks over while dealing with the extra moving parts of a mobile app if I can.
    Edit: the mobile app is going to be Ionic, this has already been decided.

    • @ethanneff9817
      @ethanneff9817 9 месяцев назад +3

      PWA is another gimped horse. Users don't add app icons on iOS and full push notification support is still not a thing.

    • @NateLevin
      @NateLevin 9 месяцев назад

      @@ethanneff9817 Just to note, push notifications finally got support on iOS a few months ago.
      Apple still makes it very confusing to add a PWA though (you literally can't tell the difference between installing a PWA and installing a shortcut to some website!).
      Hopefully someday they will add some better indicator that websites can be installable. It's ridiculous.

  • @armada2483
    @armada2483 6 месяцев назад

    I stumbled upon this video while trying to find an answer to what to use in my project, I want a cross-platform compatible way to develop games&apps but i can't decide which one to pick. Flutter was my main idea at first but then after researching i also liked React Native and Kotlin Multi-Platform, i truly cannot decide which one to pick can someone who is experienced at this area help me PLEASE?
    (FYI i am a newcomer to coding grounds and my goal is firstly make my dream project(2d-web-ios-android kinda basic word game) and then continue developing for web and both mobile platforms but especially for mobile side)

  • @neociber24
    @neociber24 9 месяцев назад +14

    I feel you should try to make the same app in Flutter and React Native using native stuff, yes is a lot of work, but its better that throw random facts that may or may not be true at the moment.
    At the end users doesn't care about your fancy codebase they care if the app is slow.

    • @Vim_Tim
      @Vim_Tim 9 месяцев назад +3

      "At the end users doesn't care about your fancy codebase they care if the app is slow." This was Theo's entire point: Flutter provides worse interaction & accessibility because the native UI elements will always be better.

    • @Vim_Tim
      @Vim_Tim 9 месяцев назад +1

      @@Seashell833 is it really “faster” in a meaningful way? I use Outlook, Messenger, and Discord regularly on a iPhone SE 2 and haven’t ever had performance concerns. Animations are always great. I would love to see some good benchmarks. Artificial CPU stress-tests and CPU utilization don’t really tell the whole story.

    • @kennyfully88
      @kennyfully88 9 месяцев назад +1

      @@Seashell833 I wanted to explain that the jank may had came from the app being in debug mode and not release mode. We have to remember that there is a way to not show the debugging tag even when we are building in debug mode. Ah... it's very hard to explain how Flutter works to people who never developed in Flutter before... As someone who codes with both Flutter and React Native I'm fully aware of the downfalls to both approaches.

  • @andresrub10
    @andresrub10 9 месяцев назад +23

    EYE OPENNER!! Thanks for this. As a Flutter Dev for the past 3-4 years I have been loving flutter for it's ease of use. But I do recognize performance is super bad for complex apps. Honestly I was mysinformed, I tought they were uising native components for everything. As for running native code, Its a pain in the ass. But I think the most important thing about flutter is dart. You basically can forget about HTML, CSS, JS, Android ans Swift. Wich at the time I tought it was a huge win. But I realize how this was shooting myself in the foot cause basicaly I'm useless now in those languages. It's beautiful how you promote to choose the right tool for the jod and be concious on how to pick it.

    • @gofullstack
      @gofullstack 9 месяцев назад +5

      Try RN then come back to tell what your experience is like.
      Bout performance you can run your app on profile mode to see what the problem is then spin up an isolate (the multi threading thing) when required.

    • @str2254
      @str2254 9 месяцев назад +3

      The problem with RN is its unstable API, so libs will likely break on every RN update, but it may be better nowadays with expo.

    • @BooleanDev
      @BooleanDev 9 месяцев назад +2

      how did you go 4 years thinking they used native components for everything???
      also. performance is fine on complex apps, its up to the developer to optimize their code.

    • @gofullstack
      @gofullstack 9 месяцев назад +2

      @@BooleanDev 🤣🤣🤣 you nailed it.
      I don't want to sound rude, so forgive me. I think some people who are mostly solo just want a face for their business and don't care bout what tools they use, if it can do it then it should do it.
      The UI isn't native and anyone who says it is, is telling a lie and 3-4 years is enough to much time to figure that out as it means you don't fully understand the tool.

  • @ado3247
    @ado3247 Месяц назад

    Since Android by itself uses Skia for rendering UI natively, does that make Android a game engine? Since Chromium uses Skia does that make Chromium a game engine?

  • @jimiscott
    @jimiscott 9 месяцев назад +28

    Anything which runs closer to the system it is interacting with will ultimately run better and faster.

    • @_____case
      @_____case 9 месяцев назад +5

      I guess all web apps are worse than native apps, then?

    • @erenjeager1756
      @erenjeager1756 9 месяцев назад +9

      How can you explain that all benchmarks indicate that flutter is faster than react native then?

    • @OwnnOfficial
      @OwnnOfficial 9 месяцев назад +5

      Flutter still beats React Native in almost every metric

    • @revanscript
      @revanscript 9 месяцев назад

      ​@@erenjeager1756 Funny, because it's actually Flatter that works closer to the system, compiling to native code, whereas React Native interprets JavaScript at runtime and calls native APIs through the bridge.

    • @neociber24
      @neociber24 9 месяцев назад

      That's not true, binding and sys-calls are expensive, if you want to be faster use the native platform

  • @gitgudchannel
    @gitgudchannel 9 месяцев назад +2

    No offense but it's always like third world, yet to land their first job developers who just loooooove their Flutter, no need to argue these people lmao

  • @JeannoC
    @JeannoC 9 месяцев назад +14

    I am happy with Flutter being where it is at and moving towards. I develop graphics editors on the mobile so this is exactly the use case Flutter excels at.
    However I agree React Native is a much better choice for most mobile apps as Theo pointed out.
    The only issue I have with Flutter is how it is advertised by the community that it can do everything.

    • @arashitempesta
      @arashitempesta 9 месяцев назад +1

      Question, for mobile development I've worked mostly with react native and expo, touched flutter briefly, last bit I saw was they created flutter for web and for desktop (similar to react native for web, which I'm not particularly a fan off).
      In the case of react native I wouldnt touch the web part unless it shares 90% of the design with mobile but with flutter have you used the web or desktop apis? wonder if they have made some progress since then, flutter might make sense for desktop apps too if you care about size as you wouldn't need to bundle a browser with the binary like with electron.

    • @JeannoC
      @JeannoC 9 месяцев назад

      @@arashitempesta I have not used flutter for web and desktop in production so take my opinion with a grain of salt.
      Flutter supports for web and desktop seem to be getting more and more mature. And I can see the advantages of using it to support web, mobile and desktop with one code base, especially when you are a solo dev.
      However, one huge caveat is that with web and desktop, the specs of your target machines can vary a lot.
      Screen size, input peripherals, processing power. I can imagine your “single code base” would become a lot more complex in order to support web and desktop also.
      I would rather have code duplication than complexity in this case, if I’m already developing a fairly complex piece of software.
      Another thing, Javascript will always be the first class citizen of the web, and web is not the top priority of Flutter. Using flutter to develop web app will almost definitely give you a ton of technical challenges. So I guess this is the same case with RN web.

    • @JeannoC
      @JeannoC 9 месяцев назад +2

      Still there’re always some use cases that favor the choice of flutter. For example, if one day my graphics editor needs to support desktops. Rather than doing a complete rewrite, it would be much more sensible to strategically refactor some core components to be used on both mobile and desktop

  • @engineeranonymous
    @engineeranonymous 9 месяцев назад +21

    If you have your own or want to have an unique UX design language which you want to communicate with your user flutter is a nice choice. It will set your brand apart from others like Apple, Balenciaga or the pub you hang out which have old rusty bicycle tires on the ceiling.

    • @OryginTech
      @OryginTech 9 месяцев назад +7

      You can create your own “unique UX design language” in react native too 🤦‍♂️😂

    • @hunterwilhelm
      @hunterwilhelm 9 месяцев назад +6

      ​@@OryginTechI find it easier to implement the designs given to me by the UI/UX team in a pixel perfect way in flutter. Meta uses React Native in the best way that I've seen since they made it. You can do great things in both, the time spent in each is a cost. So try both and see which one you like instead of convincing people that things are impossible or possible in either.

    • @OryginTech
      @OryginTech 9 месяцев назад +6

      @@hunterwilhelm I have tried both. For a very long time... RN is actually easier for what you’re describing than flutter.

    • @virgule9901
      @virgule9901 9 месяцев назад +2

      I work with RN on a daily basis and only made a few things with flutter, but did you guys try to do proper shadowing of elements with RN? What about rendering a centered blue shadow of 5px spread on a button on Android?
      It's a small example, but a good one IMO.
      Theo expressed that same idea pretty well I think. The native platform is great because it's more accessible, stable, etc. but being tied to the platform can also limit the possibilities of what you can do / show to your users. Flutter is great if you want to control your UI down to individual pixels (similarly to a game engine), while RN / native apps are better for most common apps which most of the time doesn't need that level of customization, even when designers are a bit pushy. It just depends on what you're making and what tradeoffs you're willing to make

    • @user-wb9le5xp9w
      @user-wb9le5xp9w 9 месяцев назад

      ​@@OryginTech you said you use them both but you are more like JS person i guess, that is why you feel RN is more easier than Flutter, most people insist that Flutter is more easier than RN. you should think about perspective for noobs when you are talking about "Easy"

  • @wahidislamlinad
    @wahidislamlinad 9 месяцев назад +2

    i don't use ios personally but it seems like flutter is more performant than react native on android, maybe the issue is with devs but most of the flutter apps still runs smooth than react native for some reasons.
    but writing kotlin for apps is still the best choice by a lot that's for sure.

  • @DuongBui-dq6km
    @DuongBui-dq6km 9 месяцев назад +9

    "I hope that we can be more responsible when it comes to these technologies." Lol, you just hate what you hate and don't want to use it. I use both and I think the Flutter is cooler. In the end, platform doesn't matter, user experience matters most and Flutter ensures it in 6 different platforms :D

    • @dontdoit6986
      @dontdoit6986 9 месяцев назад +4

      Yup. As an aging developer, I really like how productive I can be with Flutter vs anything in javascript/typescript.

    • @draikentz
      @draikentz 5 месяцев назад

      The platform doesn't matter to users, but for engineering costs it does

  • @Insanara
    @Insanara 9 месяцев назад +2

    Thank you for this video. Currently prepping a larger SaaS platform-framework, and have been considering what framework to use for the mobile-space.
    This video and your prior on reduction in app-installments, have given me quite clear indication on where to put the research focus, as reducing code-duplication and having multiple repos (when my mono-repo nextjs is so perfect for the web-solution).

    • @LeCyProductions
      @LeCyProductions 9 месяцев назад +8

      This video is riddled with inaccuracies and doesn't cover any of the flaws of Expo and RN. Please look into it more than just watching this video to make your decision.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +6

      @LeCyProductions feel free to list any of those inaccuracies :)

    • @LeCyProductions
      @LeCyProductions 9 месяцев назад

      @@t3dotgg seems like you already did.
      There was a really good one by @TheGamingAlong but not sure what happened to it. @drantunes has a good write up.

  • @OwnnOfficial
    @OwnnOfficial 9 месяцев назад +13

    This video is misleading.
    Flutter still beats React Native in almost every metric

    • @dontdoit6986
      @dontdoit6986 9 месяцев назад +2

      Sure does. Including development time, and not just writing code: even environment issues and deployments.

  • @MsShowshank
    @MsShowshank 8 месяцев назад +1

    If you are working with bluetooth (BLE), Flutter is much easier and has better support for such stuff than RN so it depends on the use case

  • @EduardoSanchez-un2hh
    @EduardoSanchez-un2hh 8 месяцев назад

    Does this apply to Net MAUI?

  • @Alex_online
    @Alex_online 9 месяцев назад +6

    The thought of maintaining the average react native app keeps me up at night.
    I have yet to see a well structured, well made React native app that wasn’t just the hottest of garbage in my career so far.
    I won’t write it off completely but it really feels like a foot gun.

    • @t3dotgg
      @t3dotgg  9 месяцев назад +4

      I’ll admit I’ve seen some utter messes in older pre-expo RN (or expo ejected) codebases. Has gotten much better over time

    • @itsfolf2
      @itsfolf2 9 месяцев назад +3

      @@t3dotgg So the only way to not get yourself into an utter mess is to be locked into a subscription service?

  • @xBiggs
    @xBiggs 9 месяцев назад +11

    I've used Expo React Native, Jetpack Compose, and Flutter. I enjoyed the developer experience with React Native the most. However, i don't know how you guys keep up with the node dependencies

    • @AlvarLagerlof
      @AlvarLagerlof 9 месяцев назад

      Using a bot like Renovate or dependabot helps a lot. They make PRs for you.

  • @ondrasimek7139
    @ondrasimek7139 9 месяцев назад +3

    If only RN used Dart instead of JS. Dart is boring (it was even marketed as such), while JS is the opposite of that. Different strokes, different folks.

  • @wandenreich770
    @wandenreich770 9 месяцев назад +29

    I was a bit unsure why in the last video you were really rooting for react native cause I was more into flutter but I think this video offers a much better explanation and I finally understand your point of view

    • @aurkodipde
      @aurkodipde 9 месяцев назад

      are u leaving flutter?

    • @wandenreich770
      @wandenreich770 9 месяцев назад

      ​@@aurkodipde to be honest im not a mobile app developer...but ive been looking at the mobile app development in general from time to time and always saw flutter as being the better alternative...besides this I think every flutter developer is aware of how flutter web renders a whole canvas as the website and I personally dont like that..to hear that the mobile app as well is also a canvas feels just odd to me..from this video I felt like the difference between flutter web and react/svelte/vue is the same as between flutter and react native...so yeah im switching my focus to react native

    • @BooleanDev
      @BooleanDev 9 месяцев назад +4

      take much of what he said with a grain of of salt, he is not experienced with flutter at all

    • @aurkodipde
      @aurkodipde 9 месяцев назад +2

      @@wandenreich770 do it if u want, but i can guarantee u will come back to flutter sooner or later..react native is not a horse for the long run..either native or flutter is the future

  • @MightBeRasor
    @MightBeRasor 9 месяцев назад +1

    damn theo, I don't know what time zone you're at, but down here is way too early to bludgeon people like that

  • @cold_ultra
    @cold_ultra 9 месяцев назад

    Is the screenshot of native features real even to this day? because it's so funny.

  • @pianoman6216
    @pianoman6216 9 месяцев назад +2

    yeah okay, but can i write my game engine in next?

  • @isakhansson917
    @isakhansson917 9 месяцев назад +1

    Why isn't Kotlin Multiplatform getting more attention? It allows native app development with shared business logic and its 'expect-actual' feature surpasses Flutter and React Native offerings.

  • @cakemnstr42
    @cakemnstr42 9 месяцев назад +27

    I used to fanboy Flutter because it enabled me to do iOS without knowing anything about it, which is of course a problem in it of itself.
    And I didn't like react-native because of that Airbnb article and "bah Javascript".
    It took looking at Flutter Web for me to really make it click why it's a bad solution for regular UI dev. Flutter mobile of course has the same issues but for some reason it sounded fine to me where as "everything is a canvas" sounded bad.
    Tldr: your take on juniors "falling" for it was definitely true for me.
    Anyway, now I do web dev with react (and recently more next) fulltime (and I like to think I've gotten pretty good at it) and if I needed native I'd probably try to make Ionic or a PWA work for as long as possible 😂
    I still don't like working with react native buuuut I've also only worked on apps that aren't super well architected and don't use expo and are pre-fiber and all that so my opinion is outdated.

  • @zakraw
    @zakraw 9 месяцев назад +15

    Flutter is an actual cross-platform app development technology unlike React Native which is a just for mobile app development. Don't tell me that it supports web by migrating to/from Web, because you still need to rewrite an half codebase which is mostly UI.
    Unity is not relevant cause it not free and does not have built-in components like Flutter. Unity is not optimized for that, because it has multiple cons like long startup time, large installation file. Unity apps are executed using Mono runtime which interprets ( JITs) .NET Framework built and has no AOT support while Flutter apps are compiled to native files in production.

    • @Vim_Tim
      @Vim_Tim 9 месяцев назад +1

      "Flutter is an actual cross-platform app development technology unlike React Native which is a just for mobile app development." This is not true. React Native for web has existed for a long time. Also, React Native for Windows/macOS is a real project that looks very promising and could be a great replacement for Electron on desktop. I have no idea how much React Native is shareable with a mobile app.

    • @Vim_Tim
      @Vim_Tim 9 месяцев назад +3

      Also, Unity has a compilation mode called IL2CPP (Intermediate Language to C++) which can AOT compile the C# code.

    • @zakraw
      @zakraw 9 месяцев назад +4

      @@Vim_Tim Those are experimentary but really promising. However React Native is still years behind to be considered well-established technology with a full package like Flutter.

  • @succatash
    @succatash 9 месяцев назад

    Do you build mobile apps?

  • @andrewc8125
    @andrewc8125 9 месяцев назад +33

    I get excited when Theo starts drawing a chart!

  • @BozCoding
    @BozCoding 9 месяцев назад

    I appreciate the suggestion for Ionic :)

  • @forno_nicolas
    @forno_nicolas 7 месяцев назад

    what about jetpack compose?

  • @StefanvonderKrone
    @StefanvonderKrone 9 месяцев назад

    Much love for react native and expo ❤️

  • @yossefdawoad4311
    @yossefdawoad4311 8 месяцев назад +2

    Isn't google who develop the main Os itself 📱..!!!! I think they know what they doing i think it's just devs expect a lot of it and compare it to more muture framework like react, these development take time and they promised a lot of good things just let them cook 🔥🔥

  • @Luke1000
    @Luke1000 9 месяцев назад +6

    I literally just opened our flutter work app and tested the scroll with two fingers... WTF.

    • @rydmike
      @rydmike 9 месяцев назад +7

      Lol, yes wtf indeed! It is a feature by now :D Now do it with 3 fingers and watch it go 3 times as fast. It can of course be fixed. It has just so far been chosen on purpose to keep it around, kind of as as an "insider" easter egg. There is an issue open to fix, maybe it is already fixed in master, did not check. In any case it has been decided to remove/fix this peculiar "feature" since it may interfere with accessibility and usage expectations.
      I'm not going to go into the debate though. There are good comments here already, from people developing with with both frameworks offering a more balanced view.

    • @gofullstack
      @gofullstack 9 месяцев назад +8

      How many of your users use two fingers to scroll?

    • @programming2588
      @programming2588 9 месяцев назад

      ​@@gofullstacknailed it

  • @alamo_DevFlow
    @alamo_DevFlow 8 месяцев назад

    I work with both platforms, but the React Native ota update won my heart

  • @VojtaIsLame
    @VojtaIsLame 9 месяцев назад +23

    gotta love the quotes that came out of this
    "the result is that every flutter app has this terrible uncanny valley experience, you can feel it when you use a flutter app there are lots of simple silly ways to check like if you use two fingers to scroll in flutter, it scrolls twice as fast because they didn't implement their scroll layer correctly"
    "just stupid thing like that are the defining characteristic of flutter"
    "you're throwing away the entire native platform in the decades of hard work, hundreds of thousands of developers have put into improving that native platform because you think your game engine is a better experience"
    "and this is what kills me with flutter is people building like e-commerce apps and flutter, you're hurting your users, you're hurting your engineers you're hurting yourself, please stop doing it"
    "people feel like flutter should be this entire chart, and when I challenge them on that they just shit themselves"
    "I have a feeling when we scroll down the comment section in this video, it is going to be a bunch of flutter fanboys shittin themselves saying I don't understand anything about applications"

    • @MNbenMN
      @MNbenMN 9 месяцев назад +2

      ​@@1879heikkisorsaIt didn't sound overtly aggressive to me. That's just flavor. Theo isn't just providing raw analysis, he's also entertaining. Rants and hot takes can bring points to light that might just get glossed over if they are just bullet points in a dry, academic analysis.

  • @aliarefjs
    @aliarefjs 5 месяцев назад

    I personally started with flutter on 2020 later on I switched to RN and now I really enjoy REACT NATIVE with expo💯.

  • @illya_ike
    @illya_ike Месяц назад +1

    I think the main reason why Flutter is better than React Native for me is Dart vs JavaScript. Dark past of JS casts shadow to React Native.