Live data from Hacker News

Flutter looks good, but is painful

medium.com

151–160 of 191 posts

Re: Flutter looks good, but is painful

#151

Tip: For anyone trying out Flutter, please remember to evaluate it based on release builds of your app. Scrolling and animations can feel a bit "off" when running the default debug builds. The 60 FPS butter is only really applied when that `--release` flag gets tacked on. Not using Android Studio, so not sure how easy it is to miss the massive performance difference of optimized vs. debug builds in that workflow.

If running in Debug mode means it's running < 60fps I wouldn't touch it with a bargepole. Native stuff doesn't do that and React Native/Nativescript don't do that either!

The debug mode induces a seriously huge overhead. In return you get stateful hot reloading and high quality error management and tracing, both of which are incredibly valuable while developing.

Re: Flutter looks good, but is painful

#152
post #48

Earlier quoted context omitted.

> Some would say re-writing the same app 5 times (Windows, macOS, Linux, iOS, Android) and maintaining 5 codebases is a bad idea. Yeah, that's true. I'm looking forwards to React Native (AFAIK it uses the native JS engine + native toolkits) and libui. I'm also hoping for declarative UI frameworks like SwiftUI so that the underlying framework/runtime can generate the appropriate UI for the exact target platform.

> underlying framework/runtime can generate the appropriate UI for the exact target platform This may seem like a good idea, but it's not. What you will get is a leaky, lowest common denominator API that will break on each new OS version.

I don't understand how you got to this conclusion.

Re: Flutter looks good, but is painful

#153
post #51

While this has little relationship to the original article... We really should be trying to use the native GUI toolkit (or cross-platform native UI libraries like libui), not using Flutter-esque libraries that draws everything from scratch. Coherent UI is a very important point to users IMO. Users can assume that some special feature from App X will also work on App Y. For example, in macOS Cocoa, textboxes have univ…

> Coherent UI is a very important point to users Nah, it ain't. At all! I used to believe it did. That's what we geeks think. And on mobile it doesn't matters for us either - keybings working consistently doesn't matter you're only using touch... Same thing with React Native, everyone thought it's awesome because native UI controls. But users never care about that. For touch UIs it's more user friendly to have you ap…

> People say they care about "coherence" or "consistency" when they are too clueless to figure out what's actually broken about their UIs, so they assume this is the issue.

I see developers push for non-native UI all the time because they think their users are too stupid to tell the difference. They're not.

Re: Flutter looks good, but is painful

#154

I am not sure if users care about controls being "native". Examples from desktop: Photoshop used non-native controls, and nobody cared. MS Office always had non-native looking menus. DAW (digital audio workstation) apps all look non-native.

> Photoshop used non-native controls, and nobody cared.

There's a number of Photoshop alternatives that use native controls that are reasonably popular (they're also generally cheaper, too).

Re: Flutter looks good, but is painful

#155
post #48

Earlier quoted context omitted.

> underlying framework/runtime can generate the appropriate UI for the exact target platform This may seem like a good idea, but it's not. What you will get is a leaky, lowest common denominator API that will break on each new OS version.

I don't understand how you got to this conclusion.

I worked on Xamarin app and saw how things worked there. I also think that it's a logical conclusion from these conditions:

1. You want to support N native platforms. 2. Each of these platforms has it's own way of doing this, bugs, etc. 3. Each of these platforms is being actively developed. 4. There are differences between those platforms. One doesn't have guassian blur, the other one doesn't have right-to-left languages.

Re: Flutter looks good, but is painful

#156
post #63

I have a couple of android app PoCs in mind but didn't want to go down the Android SDK way which IMO is becoming more and more complicated and verbose with every release. Just tried Flutter and React-Native yesterday for the first time, and I'm sorry to say both were sorely disappointing. Flutter was easier to install and get working, but Dart seems to be as verbose as Java with some JavaScript style syntax mixed in.…

Yep, React Native has horrible dev experience... this is what drove me to Flutter. Dart may be ugly but after you get used to it it's mostly "Typescript done right" imo ;)

Does it? Expo simplifies 90% of dev work, and you only need to eject in very rare occasions.

Re: Flutter looks good, but is painful

#157
post #27

This seems like a fairly biased post (as he admits himself). Flutter has a lot of problems, but if you've used any other cross-platform system, you know it's a hard problem to solve. A friend described it to me as "Unity for apps" , which I think is pretty positive and accurate.

Author here. Yeah, it was supposed to be "here are my frustrations", not like "Flutter is bad, let's burn it".. but of course, the thing grew up beyond control. 38k view so far.

Re: Flutter looks good, but is painful

#158
post #155

Earlier quoted context omitted.

I don't understand how you got to this conclusion.

I worked on Xamarin app and saw how things worked there. I also think that it's a logical conclusion from these conditions: 1. You want to support N native platforms. 2. Each of these platforms has it's own way of doing this, bugs, etc. 3. Each of these platforms is being actively developed. 4. There are differences between those platforms. One doesn't have guassian blur, the other one doesn't have right-to-left lang…

RN is more flexible. And you can always contribute or build your own native extension to use.

Re: Flutter looks good, but is painful

#159

Earlier quoted context omitted.

It depends what you mean by “re-writing the same app”. In general you can have the core features written in C++, thus available everywhere, then write a platform specific layer on top of this. That’s a quite common approach, and if done correctly (that’s not a trivial task though) allow you to target any platform without too much effort. But yes, you still have to maintain a bunch of stuff for each platform: - implem…

The expectation level for UIs on mobile devices has been set very high. There is a lot of detail to get right in order to deliver the experience that people expect. That UI specific work is very time consuming. It doesn't really matter what else is going on in your app, if that work can be done more efficiently to produce a more consistent result, then that's the decision you make.

> work can be done more efficiently to produce a more consistent result

Often with frameworks like React Native or Flutter, it means inconsistent UX bugs on each platform. Why do you think Facebook and Instagram and Airbnb abandoned RN in all their primary interfaces?

The "more efficient" implementation might lead to consistency across platforms, but people are pretty tied to the phones they have. Things like dropped frames, slow scrolling, UI locks, all have a subtle effect on the user whether they can point it out or not, and you're more likely to have those problems by diving in to these frameworks without understanding the underlying platforms.

This isn't argument to share no code whatsoever. But so many people who immediately turn to these frameworks either want to ship something at the expense of UX/design, their app is so small that it doesn't matter, or they have no idea what they're getting into.

Re: Flutter looks good, but is painful

#160
post #61
post #55

Earlier quoted context omitted.

Neither you nor the parent poster substantiate your assertions with sources, which made me curious of what research might have been done in this area. Some cursory searching lead me to this reasonably well sourced answer, which suggests the parent poster is right in this case: https://ux.stackexchange.com/a/39295

Sorry, but your linked source is off-topic, ancient (2013!), and compares the wrong things (native mobile apps vs. old-generation-hybrid-web-mobile apps). The relevant comparison here would be between: - (1) truly native uni-platform mobile apps (native Android and native iOS apps) - (2) cross-platform mobile apps using native widgets (not sure if there's any alternative to React Native here) - (3) cross-platform mob…

> ancient (2013!)

Computer programming is a hell of a drug.

Post reply on HN