8 ms·
This looks pretty neat, Dart is a nice language. Flutter looks pretty different from React Native on one side and Cordova/webview based frameworks on the other
by PascalW 9y ago
This looks pretty neat, Dart is a nice language.
Flutter looks pretty different from React Native on one side and Cordova/webview based frameworks on the other side. Flutter is not based on webviews, but is also not using the native widgets but instead rendering custom widgets.
To me, this is a little weird. One of the downsides of Webview based apps is that it's harder to align with the native OS look and feel. React Native solves this problem, but Flutter clearly has the same problem.
- Eridrus 9y ago> One of the downsides of Webview based apps is that it's harder to align with the native OS look and feel. Is this really a problem though? It doesn't seem crazy to want your app to just look the same on all platforms.
- Grustaf 9y agoNo, it doesn't seem crazy, but it's also not really what users want. Android users probably expect native Android behaviour, iOS users definitely expect native iOS widgets, anything else will feel quite off.
- vegasje 9y agoThis is very true when it comes to consumer apps, but in our experience businesses prefer a more unified experience for their users--it minimizes the training effort.
- zerkten 9y agoI guess it depends on the app. Google's own apps on iOS don't strike me as feeling very native. I would think they'll get closer to nailing the Android behaviour. In a way these toolkits fill a space like Electron on the desktop where the developer won't, or can't, for all in on a native experience. As someone who built some mobile apps with web technology I can see how Flutter would have an appeal because going into the project you've already given up on the native experience. There are still (unfortunately?) a world of marketing-driven apps with the brand overriding design choices which would be suited to this. Tools like Xamarin probably have a lead for line-of-business apps inside companies due to the MS ecosystem integration, but I could see people choosing Flutter for these apps if it's easy to build and maintain apps. None of this changes the fact that for best-of-breed apps in a public store you'll need to use the native toolkits.
- Grustaf 9y ago> Google's own apps on iOS don't strike me as feeling very native. That is true, but does anyone actually like the feel of google's iOS apps? I personally think they're awful, but the content they present is so useful that people use them anyway.
- zerkten 9y agoI don't disagree, but they have reasonably good performance which covers a lot of sins.
- LeoNatan25 9y agoPerformance is not everything. I expect iOS apps to behave and look like iOS apps, not just run fast. Google's software looks like fisher-price third-rate crap on iOS.
- Grustaf 9y agoSure, they don't stutter and they serve a crazy amount of very useful information.
- chriswarbo 9y agoThis reminds me of switching from Windows to Linux in the noughties: one of the complaints about Linux not being 'suitable for average users' was the lack of consistency between GTK/Gnome and Qt/KDE applications, and a lot of effort was spend on compatibility layers and such. When I looked at a friend's Windows XP installation, it struck me that pretty much every application they used had a different UI system: WinAmp, Firefox, Opera, Windows Media Player, MSN Messenger, ...
- Mayzie 9y ago> Flutter is not based on webviews, but is also not using the native widgets but instead rendering custom widgets. Yeah, I only just realised this after further looking into it today (when I last checked their site, they only had one page introducing the project). They try to spin this from a negative to a positive[1], by saying that they think they can guarantee the Flutter widgets quality and performance compared to native widgets, and it's on them (the Flutter devs) to make sure those widgets are up to date to the look and feel of the platform. Which to me just seems like trying to solve a non-issue in the first place, not to mention depending on the Flutter developers to ensure their supported widgets remain up-to-date to the platforms standards and not deviate in any way. [1] https://flutter.io/faq/#does-flutter-use-my-systems-oem-widgets https://flutter.io/faq/#does-flutter-use-my-systems-oem-widg...
- boondaburrah 9y agoQt seems to have done a great job of this. There are occasional hiccups when OSX updates the look of their progress bars for example, but it never feels nearly as bad as Java Swing (when it's emulating the host OS) or wxWidgets (ironic, since they use native widgets like react-native). So it can be done, but I imagine it isn't easy. Qt has years of experience doing it.
- PascalW 9y agoAre you sure that QT is not using native widgets? I always thought QT used native widgets and a quick search [1] seems to confirm this: > Recent versions of Qt use the native style APIs of the different platforms, on platforms that have a native widget set, to query metrics and draw most controls. [1] https://en.wikipedia.org/wiki/Qt_%28software%29 https://en.wikipedia.org/wiki/Qt_%28software%29
- PolCPP 9y agoiirc it uses native widgets, the problem was that for some time QT used Carbon and stuff like scrollbars looked outdated until they added cocoa support because Apple stopped updating visually carbon
- robterrell 9y agoFluter has two widget styles, "Material" and "Cupertino", but I agree it would be better if Cupertino was backed by UIKit (then you'd get accessibility, UIAppearance, font sizing, etc. for free). I recently prototyped an app in both Flutter and React Native. React Native feels incredibly fragile. Half of the month spent on a React Native app has been spent fighting with React and finding the right combinations of node and npm versions. Update some component and everything can fall apart. Flutter's developer ergonomics are so much better. Time to first-running code was faster, and time spent due to broken shit outside my control was way smaller.
- malkia 9y agoIs this still the case that you don't accessibility (on iOS) if you don't use native widgets? Isn't there a way to "publish", "expose" say text and other information to the system? I believe for example Windows has this, and Qt on the desktop can use it (although there were still complaints, that some really popular brand of braille reader was not working). Simply curious, as long time ago I was heavy proponent of native only widgeting systems (like wxWidgets), but lately in favour of self-drawn one, but imitating the interface (like Qt).
- skybrian 9y agoIt might be more challenging without native widgets but it looks like it's still going to be implemented: "Flutter has basic support for accessibility on iOS and Android, though this feature is a work in progress." https://flutter.io/faq/#how-do-i-do-internationalization-i18n-localization-l10n-and-accessibility-a11y-in-flutter https://flutter.io/faq/#how-do-i-do-internationalization-i18... https://flutter.io/widgets/accessibility/ https://flutter.io/widgets/accessibility/
- LeoNatan25 9y agoI don't think this is possible on iOS. I don't think it is currently possible to achieve VoiceOver support, for example.
- utku_karatas2 9y ago> To me, this is a little weird. One of the downsides of Webview based apps is that it's harder to align with the native OS look and feel. I'd agree with that in 2014 but this has been much less of a problem since the last few years. The fast pace of mobile OS's have slowed down to a halt. IOS has pretty much the same looks since version 7, Android since version 5. The metro/material/flat design fashion has been the best thing for cross platforms apps, be it desktop or mobile, any platform or any framework. Flutter seems to be at the right place at the right time.
- LeoNatan25 9y ago> IOS has pretty much the same looks since version 7 This can only be said by someone with a very little attention to details. There are constant changes to how the OS looks.
- coldtea 9y ago"Pretty much" already allows for it changing in "details". So the parent is right. And judging from the kind of non-native look apps that are nonetheless immensely popular in the app store, few care that much anyway.
- PascalW 9y agoI didn't say it can not be done, but it is just harder. I develop a lot of cross platform apps using Cordova. While this works pretty well, and indeed in recent years support for this is only becoming better, it remains that Webview based apps always feel just a tad off.
- jrs95 9y agoThis gives you native performance, but the ease of development of a shared UI. Given that Material Design is gaining popularity on the web and iOS as well, apps made with Flutter won't feel entirely foreign either. And the Cupertino styled widgets will help, too.
- LeoNatan25 9y ago"Material Design" apps on iOS are as foreign as ever, don't fool yourself.
- myko 9y agoI hear this a lot from iOS developers but actual users seem fine with it. To my eye Material applications on iOS looks like what applications should be doing - taking the HIG and improving on it in their own way.
- PascalW 9y agoMaterial or not I do think that mobile UI's on Android and iOS are starting to converge more and more. Lot's of apps look very similar on iOS and Android and it doesn't have to fail alien at all, if well executed.
- canistr 9y agoI find the convergence typically by design on the part of the Designers, PMs, and decision-makers up top as opposed to their actually being a need for convergence. I often attribute this to a strong lack of diversity of teams whereby there are almost zero Android users on the design/product team leading to a unified look. It can also be attributed to laziness on the part of the PM and/or designer. Or in general, clients opting for cheaper solutions when hiring an agency to build apps for them. I say all this to point out that, Android users often get the short end of the stick when it comes to app design. Often there is a strong lack of consideration on what is a native Android app feel. No consideration for the use of back-buttons, menus and UI elements using bottom navigations or custom ones instead of native Material design... Generally convergence is made for all kinds of reasons that ultimately leave Android users alienated.
- LeoNatan25 9y agoI wouldn't call "React Native" much more "native" than Flutter. Most of the widgets, while inheriting from UIView, are internal FB implementations. No system buttons, labels, navigation, animation, gesture recognizers, etc.
- deleted 9y ago[deleted]
- MarkMc 9y agoI wonder how much native look and feel really matters. Swing copped a lot of flack for not having native controls but I think this problem was miniscule compared to poor performance, bloated download and complex API. Web apps don't use native look and feel but have nonetheless been very successful.