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

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

Theo - t3․gg

1 год назад

128,605 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

CodyL95
CodyL95 - 14.10.2023 19:11

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

Ответить
Kuti
Kuti - 14.10.2023 12:40

This guy always has some good points and he's obviously very smart, but this high-and-mighty ranty attitude is so off-putting.

Ответить
Wyrade
Wyrade - 06.10.2023 05:19

What's the whiteboard app you are using?

Ответить
combatLaCarie
combatLaCarie - 01.10.2023 07:40

ability to push updates: Maybe there would be less of an issue if you had unit tests? Is it also irresponsible to write a native app?

Ответить
oefzdegoeggl
oefzdegoeggl - 26.09.2023 11:52

disagree with that. i kicked out a RN app from someone else in some project as it was a slow horrible piece of crap and replaced it with two swiftui/kotlin-jetpack native apps. i personally do use flutter, but ONLY the web version. i'd always prefer swift/kotlin for mobile apps, especially if you need to interface external SDKs, all wrapper kits like Qt-Mobile, RN and flutter usually suck. delphi might be an option here, though it's commercial. i actually do like the flutter-web as i have a "programmed" UI and don't need to fool around with any html/css. as i also did qml/swiftui/jetpack, this feels more natural to me.

Ответить
vedmack13
vedmack13 - 22.09.2023 14:35

Flutter web hello world is "5 MB of bullshit" 🤣🤣🤣

Ответить
SI
SI - 17.09.2023 14:15

VERY good take, thanks for opening my eyes on this

Ответить
Víctor García
Víctor García - 15.09.2023 13:09

The same problem with code push occurs on native apps. If you at least said that is better to code full native I would go ok, but react native?? ASTRO??? My man, those are your opinions, and let me tell you they are pretty trash. Astro has been missing the same features native developers ask for years, react native has one of the worst developer experiences I ever lived. Flutter at least has a fun developer experience. Im sorry but this vid is a no no for me.

Ответить
Bumble Dex
Bumble Dex - 15.09.2023 07:18

There was not a meaningful code push solution to flutter before, but there's one now and I think this shouldn't be the reason to judge the framework

Ответить
PsClip
PsClip - 13.09.2023 18:49

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

Ответить
Vasilis Themelis
Vasilis Themelis - 10.09.2023 16:15

I'm a bit disappointed by this video as it gives a very one-sided view of Flutter.

Ответить
Sobanya
Sobanya - 05.09.2023 14:28

Auto-updates don't even solve it. My phone is always charged on Wi-Fi, but I'm always horrified to see, how many apps are still not updated.

Ответить
Decentralised Finance
Decentralised Finance - 05.09.2023 12:15

What about performance?

Ответить
Cale McCollough
Cale McCollough - 31.08.2023 22:45

C++ for the win!

Ответить
Angry Programmer
Angry Programmer - 30.08.2023 10:01

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.

Ответить
Patrik Smělý
Patrik Smělý - 19.08.2023 01:06

Skia is not an engine (it's nothing like Unity) but a 2D CPU&GPU renderer. Skia is used by Chrome, Firefox and Android for rendering. Apple uses its own Skia-like renderer named Quartz (Core Graphics). Flutter was also using Skia for rendering but they encountered problems on iOS because Skia GPU acceleration was based on shader generation on the fly which was causing UI junk. They now wrote purely GPU renderer (Impeller) with a small set of shaders that completely solved the UI junk and it's faster than Skia. RN also uses Skia at least on Android underneat.

The great thing about the Flutter app is that they look and feel the same on all platforms. With RN you get different text rendering, different scroll behavior on each platform and weird visual differences in general between platforms - which can become a nightmare when you have professionally created UX&UI design where you need to recreate the design on pixel-perfect bases.

RN is also very slow on older Android devices - pure hello world (with Hermes and new architecture) is launching 30s (and flutter hello world is launching 3s) on 2015 Samsung. Don't get me started on the runtime performance of RN on this phone (basically unusable).

I agree that the flutter UX experience can be worse because the recreation of the "native" components isn't 1 to 1 but whenever this is a problem you can always recreate a given native component and make it right - you don't need to use the pre-created widgets (which some of them have bad UX).

I also agree that code-push is great for getting hot fixes and updates to users quickly but it's a kind of security flaw of the RN apps because you can ship malware to app users bypassing Apple&Google checks. Imagine if somebody hack your Expo account and uploaded malware JS bundle with access to location services, camera, etc... Scary.

Ответить
Pa Zo
Pa Zo - 17.08.2023 11:55

used both. You are just another biased fan boy.

Ответить
Dat Huynh
Dat Huynh - 16.08.2023 22:34

Feels like most of the comments are from ppl just watching the first 5 sentences and cant wait to disagree and prove that they are right. Thanks for the good vid.

Ответить
Gustavo García
Gustavo García - 11.08.2023 15:23

Flutter has a third party code push library, this means Flutter doesn't sucks anymore? This video is so irresponsible because you're using your bias to say everything isn't RN sucks.

Ответить
Dani Ihza Farrosi
Dani Ihza Farrosi - 10.08.2023 13:45

This aged poorly

Ответить
Isosceles Kramer
Isosceles Kramer - 09.08.2023 07:12

I did enjoy the Flutter dev experience. Dart is a nice language, and the ecosystem is less chaotic than RN's. That being said, the absence of code push and the fact reflection was disabled for tree-shaking, so JSON had to be marshaled manually is something I could no longer oblige.

Ответить
Zakaria Khitalishvili
Zakaria Khitalishvili - 06.08.2023 12:08

Who cares for Code Push, when you can publish new changes in just hours or few days at maximum?

Ответить
Esra Erimez
Esra Erimez - 31.07.2023 14:57

None of what you said makes any sense whatsoever.

Ответить
Faustino Ribeiro
Faustino Ribeiro - 31.07.2023 03:24

Completely disagree. Check Shorebird for code push. It is very a recent solution and I didn't have time to test it. The point is that Flutter is like any other framework out here, it evolves and improves. What's true today will be wrong tomorrow. I prefer Flutter to RN simply I am tired of Javascript being garbage. Good enough reason for me.

Ответить
samuel
samuel - 19.07.2023 08:21

Such a stupid video, but what's the name of that drawer app?

Ответить
Deadeye
Deadeye - 18.07.2023 11:17

I'm React and React Native dev for 9 years, and i think Flutter is much better than RN. for me sounds like you have a complete bias to RN favor and completely out of touch with reality, i personally think what flutter is doing make sense also even now Flutter rendering is faster than RN 72

Ответить
_____case
_____case - 13.07.2023 09:37

The original author of the HTML5 spec was one of the founders of the Flutter project and is still its TL.

Ответить
Dario Caric
Dario Caric - 12.07.2023 00:58

So the conclusion is use ObjectiveC/Swift, this is the best for all apple os-es. BTW my old app from 2009 in Objectivec (with some new Swift files) still works fine. Not sure what will be with cross platform tools

Ответить
Dimit Moto
Dimit Moto - 07.07.2023 03:36

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

Ответить
Marcos Soares
Marcos Soares - 06.07.2023 08:16

I think using JS for backend the same ahhahaha.

Ответить
Debasish Ray Chawdhuri
Debasish Ray Chawdhuri - 06.07.2023 04:37

I don't think Google ever reviews your code. But yes, you cannot force an update.

Ответить
laughingvampire
laughingvampire - 06.07.2023 00:53

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.

Ответить
Rohit Bokade
Rohit Bokade - 05.07.2023 20:56

Me being ex Xamarin fanboy crying in corner

Ответить
abs._tract
abs._tract - 30.06.2023 05:24

🤣thoughts after 11 months?

Ответить
Théophane Mayaud
Théophane Mayaud - 27.06.2023 09:26

So your whole argument against flutter isn’t about flutter specifically, but basically any compile tech… so why make that video about “flutter”, and “engines” ?

Ответить
st zi
st zi - 24.06.2023 17:22

Sorry, but I have to say that JavaScript itself is already a horrendous language (what comes out when a horrendous LISP had a baby with absolutely bad C and no types?...JavaScript). React also seem to have a ton of issues. When I want to learn a framework and a language for Frontend, despite the job opportunities, I would abstain from JavaScript as far as I can. C# and Xamarin? Well C# does still not give me the opportunity for native per se. It is bound to the CLR and eats up a huge amount of memory like Java. Kotlin native is still mostly slower than just transpiling to Java... where I have the stop-the-world GC and alot of memory issues.. again. QT and C++? Hell, no! Even for professionals it is a pain in the a**. When I look on the contrary to small graphics libs in C that can do a lot like raylib and it is just that easy compileable and usable, it is a dream, and put bloated C++ frameworks to shame. Gnome on the other side just makes me scream. Continuing the journey I see: In Dart I can build apps in ONE language frontend for Windows, Linux, Mac, Android, and iOS. I can choose if I want to have it with a JIT-compiler machine or if I like it native (if possible, but often it is). With TRUE datatypes. Why absolutely error-prone from the get-go? Why do I need to make my life miserable with JavaScript if I do not need to? And I see it in the presentation. Layer over layer over layer. Translates for me to "inconsistency over inconsistency over error over deprecated...". So Dart is (compared to C++ or verboseJavaProgrammingLanguageImplementationNames) a fairly easy language to learn. Hell, I even have the opportunity to true parallelism with using things like Isolates. It really CAN use multiple cores. You are right about one thing: The coorporation-shackles. This is really a big Minus from here to the moon. But you absolutely gloss over the advantages here. I do not think it is a fair viewpoint. JavaScript and React also seem to force you in a corner where you are forced to deliver hotfix after hotfix after hotfix. Isn't that also irresponsible to the user?

Ответить
HonestObserver
HonestObserver - 23.06.2023 15:46

Sounds like code push is just a crutch to paper over React Native’s shitty framework/ your shitty programming… have fun after the App Store bans it for security reasons.

Ответить
Austin Karren
Austin Karren - 20.06.2023 15:57

Flutter is trying to have its cake and eat it too. I understand why it exists but I can't see myself ever using it

Ответить
thedudeabides8637
thedudeabides8637 - 14.06.2023 23:55

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.

Ответить
Dan
Dan - 12.06.2023 23:25

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

Ответить
GUILLAUME HUARD HUGHES
GUILLAUME HUARD HUGHES - 08.06.2023 17:18

I always be hype about Flutter and thinking it was the future.
Then I saw new things appear like Tamagui where we can have the better of react-native and next.js in one codebase. (Good a11y for web and mobile and good semantic for the web!)
Now I see that video and doing some Flutter in the past.. I agree, flutter isn't as great as promised!

Ответить
Greg Locker
Greg Locker - 07.06.2023 14:52

I never heard someone talk so slowly that i had to stop watching the video because even at 2x speed you still sounds like the sloth from Zootopia.

Ответить
Andy N N
Andy N N - 05.06.2023 11:39

Code push is kinda scary for an app that has been granted privileges by non-tech savvy users that don't know how and have no interest in auditing apps. Just don't do it.

Ответить
rerere
rerere - 04.06.2023 20:31

Sorry but as a user I actually don't want developers to be able to easily modify an application without a review and a AppStore/GooglePlay release that I need to manually download if I feel like it. It's just horrible security vulnerability and I personally don't need it.
I get that Flutter is bad, whatever, still don't get why native is bad tho, the title of this video is misleading

Ответить
Adi K
Adi K - 04.06.2023 07:51

PWA Pwa PwA pwa

Ответить
delirium
delirium - 01.06.2023 14:35

imagine hating on technology so hard that you even put it multiple times on your faq and trying to make up a silly reasons. What a joke lol

sidenote, as a user, I absolutely do not want the dev to be able to push code to my app without me noticing simply because it_is_not_safe.

Ответить
David Field
David Field - 31.05.2023 17:51

To my understanding, Facebook has ceased development of react native. Do you think this is a problem?

Ответить
pmoo
pmoo - 25.05.2023 13:51

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)

Ответить
Dev-Siri 🇺🇦
Dev-Siri 🇺🇦 - 24.05.2023 21:24

Honestly, I 95% disagree with this video. Take this from a current Flutter dev who has used React Native a lot in the past.
First of all, for what I agree with the video, Flutter Web is BS. They are trying to push it hard now with the new Flutter + WASM update, but I don't think they realize the elephant in the room is the size of the binary itself. Flutter Web has a 3MB JS bundle for a simple app that has a Text( ) widget. With the WASM update, its still 1MB of crap.

But now, the cross-platform mobile range. If you say Flutter's decision is bad because it doesn't help with code push, doesn't that go against Native Kotlin/Swift apps as well? Code push isn't a big deal, if some bad feature gets pushed to production, then its your fault. Thorough testing is necessary to ship apps with less bugs. Fetching a JS bundle from a Remote Server and then running it on the device basically makes the user download the app's bundle/binary twice. (Once from the app store, and again when they enter the app). This also means that the user need's to have a constant internet connection which means nothing can be done with the app when its offline. (Some might argue of caching, but then if the bin is going to cached, whats the point of using a remote server? How can you tell the app to refetch the bundle if it can't run in the first place? And even if you successfully embed some logic in the core binary itself, the app might not work with the newer features if connection is not available).

Secondly, "Sacrificing DX"??? I have used React Native in the past, and the experience was just OK. The bundler died all the time, it required like 10 different dependencies to start a bare project, the performance of the app was good I guess but it was hard to optimize, and the size of the app (especially with expo) was huge. (Although the performance problems are mostly fixed with the new architecture, but still its not as good as Flutter).
Flutter had a much better DX compared to RN, the plugin system was better than NPM, the app was performant by default so less headache for me to optimize it & the size of the binary was just right for what I expect (6mb for hello world and 21MB for a full on Social Media App).
Although the one thing I hate about Flutter is its templating system, which basically doesn't even exist. (Its like writing React without JSX).
Flutter's ready-to-use widgets are far better than React Native's bare bones native component wrappers IMO. They are also customizable so it is easy to build a good looking app quickly.

Lastly, the UX. If you say Flutter apps feel sluggish, then I don't know what you think of RN. Bugs do occur in every software and performance issues are a part of that. In RN, I had to go through so many third part libraries that rendered lists faster than React Native's <ListView>. But in Flutter, the ListView( ) is already blazingly fast with support for garbage collection of items not visible on the screen. No more confusion with <ListView> and <FlatList />. There is even a AnimatedListView( ) which allows for smooth animations when scrolling through the list. (Which in RN feels like hell to implement without another engine library like RN Skia).
Flutter not using the platform is definitely a problem that I have faced, since I need to do runtime checks for platforms and then import it accordingly. They have a `kIsWeb` variable that tells if the app is currently being COMPILED for the web, but I think this "compile step platform checking" is needed for all platforms.
"Flutter devs don't live in reality because they abstracted in their own Skia world" ? seriously? Then it also means the React devs don't live in reality because they are abstracted in thier own Virtual DOM.

Flutter does have its fair share of quirks but so does React Native. Its like you pointing out React's (for the web) issues. They are not significant. Every update Flutter is getting faster, better & more efficient. It shouldn't be that if you use RN rn, every other tech sucks. Every tech is suited to a person and the same is for Flutter vs React Native argument.

Ответить