4 ms·
Popularity of Electron proves that they are not easier. Even Microsoft wrote VS Code in it. I don't care much about Google but they did pretty good job with Fl
by krzat 9y ago
Popularity of Electron proves that they are not easier. Even Microsoft wrote VS Code in it.
I don't care much about Google but they did pretty good job with Flutter:
1. No special designer needed, you do everything in code. That means everyone can use their preferred editor.
2. Hot reload - you change something and it changes in the running app.
3. Headless testing - No need to own iOS/Android device to test iOS/Android UI.
4. Nice tooling - autocompletion, formatting, etc. Everything done via command line, with optional support for IDE.
5. Extensible - very easy to write your own widgets. There is nothing special about provided components.
6. Platform agnostic - "native look" of Qt/GTK is a lie, they still look off. To me it just triggers uncanny valley vibe. Not to mention that they implement native look from 5 years ago or more. And completely useless on mobiles. Flutter looks the same on every platform unless specified otherwise. Way less platform specific bugs.
- LeoNatan25 9y agoElectron is popular because web "developers" can't be arsed to learn anything other than JS. It's as simple as that. They live in the lie they tell themselves that JS development is easy, when it really isn't, tooling is disastrous, IDE is nonexistent, apps look bad, etc. They are just happy they manage to run something "desktop". All those things you mentioned are true of Xamarin. qt uses actual native controls, so not sure what is a "lie" about it; if something is not behaving correctly, it's a bug, and you open an issue. GTK does look bad and out of place, I agree with that, bug so does Electron. If it's between GTK and Electron, I'll take a proper GTK application. Looks the same = looks bad on all platforms.
- kjksf 9y agoYou should use Flutter for a bit before you strongly opine how it's no different than Xamarin or whatever. Flutter is different. There's nothing even close to it when it comes to writing mobile apps. Flutter takes the best ideas about UI toolkits, layouts and has the benefit of really good engineers (most are Chrome/WebKit veterans) working for a really long time to make a really good implementation of those ideas. Hot reload of code is just one feature that is absolutely unique to Flutter, at least when comparing to alternatives viable today (I'm sure are smalltalk implementation that also allowed that but no-one is using them today). It's still a beta product so skepticism is warranted but I can see the writing on the wall. 2 years from now it'll be crushing other technologies the way React/Vue is crushing in web space because Flutter is just So Much Better.
- LeoNatan25 9y agoWhat is it about "hot reload" that is so appealing to people? Running an app takes less than a second on Xcode. And .NET had "modify, recompile and continue" in 2005 at the latest. I fail to see the revolution here. Your nonchalant mention of "Xamarin or whatever" means to me you have little experience with that. You say that Flutter takes the best ideas of UI toolkits, but then say it's mostly web engine developers. So which one is it? Let me guess, they are using Flex as layout? So hardly the "best ideas". Edit: Yes, flex [0] On the other hand, I don't need to use it to predict how bad quality apps will turn out to be. Just like Electron and React Native apps are bad, so will Flutter apps be, for the simple facts no native controls are used. (React "Native" is not native at all.) Even the best implementation (which Electron and React Native do not have) would still mean bad apps simply because they are not using native widgets. You seem to only care about developer experience—which I disagree as well. I only care about user experience. User experience is king and developer experience is complimentary. [0] https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/rendering/flex.dart https://github.com/flutter/flutter/blob/master/packages/flut...
- tracker1 9y agoAnd if you're working in a section that takes 10-15 seconds to get to and multiple steps? Each time you rebuild, without hot-reload you've killed your focus.
- jcelerier 9y ago> Hot reload of code is just one feature that is absolutely unique to Flutter, at least when comparing to alternatives viable today You could live-reload Qt code for years (https://doc.qt.io/QtQmlLive/index.html https://doc.qt.io/QtQmlLive/index.html)
- jcelerier 9y ago> qt uses actual native controls, so not sure what is a "lie" about it; actually, no, it fetches info from the native themes to get the colors, fonts, etc.. right, but all the controls are rendered by Qt. It does a pretty good job at it - enough that even microsoft uses it for some windows apps such as OneDrive (https://forum.qt.io/topic/87898/microsoft-onedrive-sync-uses-qt-and-is-hiring-seattle-usa https://forum.qt.io/topic/87898/microsoft-onedrive-sync-uses...)
- deleted 9y ago[deleted]
- LeoNatan25 9y agoNot sure what you say is true. On Mac, they use native widgets: https://github.com/qt/qt/search?utf8=%E2%9C%93&q=qt_mac_nativeview_for&type= https://github.com/qt/qt/search?utf8=%E2%9C%93&q=qt_mac_nati...
- jcelerier 9y agonative_view is just a NSView which is where you have to render your stuff on macOS, whatever the toolkit used. But the actual widget implementation is custom: take for instance QComboBox. It is painted here: https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/gui/widgets/qcombobox.cpp#L2805 https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b... This calls at some point QStyle::drawControl which ends up here on mac : https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/gui/styles/qmacstyle_mac.mm#L3165 https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b... this ends up here in this big switch : https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/gui/styles/qmacstyle_mac.mm#L4892 https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b... which leads us here, in the drawComboBox function where mostly everything is done by hand: https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/gui/styles/qmacstyle_mac.mm#L1227 https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b... and also here: tadam, actually it just uses the "windows" (actually fairly generic and themeable) style for drawing : https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/gui/styles/qmacstyle_mac.mm#L3528 https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b... See also this qt blog: http://blog.qt.io/blog/2017/02/06/native-look-feel/ http://blog.qt.io/blog/2017/02/06/native-look-feel/
- krzat 9y agoI did a project in Xamarin Forms. The toolkit kinda worked, but nothing great about it. Amount of bugs was amusing: bugs from Xamarin + bugs from iOS + bugs from Android. Certainly does not fill most of my points. Writing anything custom was pain in the ass, since you needed both Android and iOS knowledge to implement the renderers. Sure it would be the best to go fully native and hire 3 iOS + 3 Android devs, but who will do this when they can have 95% of the same with 2 flutter devs?
- LeoNatan25 9y ago> and hire 3 iOS + 3 Android devs The usual fallacy. What you can do with 2 cross platform developers + 1 iOS + 1 Android, you can achieve with 1 iOS expert, 1 Android expert and one who can do both iOS and Android well enough. > but who will do this Anyone who wants quality apps. So basically not most start ups, I guess. > can have 95% of the same with 2 flutter devs False. Just like it's false with Electron and React Native. At most you have 75%, and that's the most simplest apps. At least with React Native, you can somewhat easily integrate native components. It's ridiculously hard with Flutter. (For example, see how long it took to integrate with MapKit.)