5 ms·
Disclaimer: I'm a product manager for Flutter at Google, so I'm paid to say nice things about Flutter :) Probably the two most obvious architectural difference
by timsneath 8y ago
Disclaimer: I'm a product manager for Flutter at Google, so I'm paid to say nice things about Flutter :)
Probably the two most obvious architectural differences are that a) Flutter paints every pixel on the screen, whereas React Native uses the stock iOS and Android components; and b) Flutter uses Dart which can be compiled ahead-of-time to native ARM machine code, whereas React Native code is written in JavaScript.
We think the combination of the hardware-accelerated graphics engine, native-compiled code and customizable UI widgets is a powerful one, as exemplified by demos like this one:
https://www.2dimensions.com/b/225-flutter-showcase https://www.2dimensions.com/b/225-flutter-showcase
My favorite feature of this demo is that the translucent slider control is overlaid on the animated graphics beneath: this is often difficult to do with other frameworks because they don't have the same level of control over what is painted, or can't do it with the required performance.
Your results may vary, but this demo runs smoothly on my budget last-generation Nokia 6 phone, which I bought for about $200.
Hope this helps a little?
- jacksmith21006 8y agoIs there plans for Flutter on desktop? How about support on ChromeOS maybe using the new GNU/Linux support using the KVM?
- wener 8y agoCheck this https://github.com/google/flutter-desktop-embedding https://github.com/google/flutter-desktop-embedding
- akmittal 8y agoThis could be really big, good middle ground between Electron and native desktop.
- jacksmith21006 8y agoSo far pretty impressive results on iOS. I wonder if the strategy by Google is get development to Flutter for cross platform, Android and iOS and then launch Fuchsia. Google now has a branch for ART on Fuchsia which suggests they will support Android apps on Fuchsia. Also how they did GNU/Linux on ChromeOS would work with switching to Fuchsia. They are using a completely separate Linux kernel. I am old and lived through many cross platform attempts that just never worked well. The four that worked well have been the Alpha/Vax. But died because of marketing reasons not technical. Android is pretty amazing how well it works across platform. Then ChromeOS is the same. The last has been the Web and Chrome. If someone can make it work it would be Google. I will be curious if Apple tries to kill it somehow.
- 2_listerine_pls 8y agoWhat could trigger Apple to attempt killing it?
- 2_listerine_pls 8y agoIt says it isn't officially supported by Google.
- scarface74 8y agoProbably the two most obvious architectural differences are that a) Flutter paints every pixel on the screen, whereas React Native uses Why is it bad that a framework uses native components?
- jazoom 8y ago"bad" does not feature in the sentence you quoted, nor in anything OP said.
- scarface74 8y agoHe spoke as if it's an advantage. I honestly want to know if there is an advantage in redrawing the screen and not using native elements.
- lern_too_spel 8y agoHe gave an example of something that is not possible without writing native modules for each platform in React Native.
- parvenu74 8y agoIt's not bad for the framework; it's bad in the sense that widgets are similar but not identical across platforms -- if they exist at all. Flutter packing it's own widget layer guarantees uniform behaviour across platforms.
- scarface74 8y agoFlutter packing it's own widget layer guarantees uniform behaviour across platforms. That's not a good thing...,we lived through that already with Java Swing.....
- bitmapbrother 8y agoThere's nothing bad providing you're using the native language of the platform. With React you have to go through bridge code to communicate with the native controls. So there's a level of indirection to and from the native control. Flutter communicates with its widgets directly so there's no level of indirection. The other major advantage is that it compiles to native code so performance is always going to be superior.
- hobolord 8y agowhat's the best resource to start building and learning?
- gman83 8y agoThere's a Udacity course that's supposed to go live tomorrow: https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905 https://www.udacity.com/course/build-native-mobile-apps-with... Also the subreddit has a lot of stuff: https://www.reddit.com/r/FlutterDev https://www.reddit.com/r/FlutterDev
- hobolord 8y agothanks! registered in the course and checking it out now
- parvenu74 8y agoWhat he said. Flutter's widget set is neither HTML-rendered like hybrid or native OS widgets like Xamarin or React Native (or NativeScript) but use a C++ layer of its own. Putting that on Android was no surprise; getting it past the censors at Apple is a little more surprising. There's also no reason this widget layer cannot be ported to macOS, Windows, and Linux... I'll let y'all's imaginations run with that for a bit. I told a wicked-smart colleague of mine about Flutter in general; a couple weeks later he came back and said he had written a sample app in Flutter and then decompiled the resulting IPA and APK files and examined the assembly. His report was that it looked very similar to apps he had written in C++ (like I said, he's wicked-smart).