Hacker News new | ask | show | jobs
by tpmx 1856 days ago
I wish you success. I really like Dart and the concept of Flutter.

However: I'm still waiting for a 100% Flutter-based iOS app published in the app store that I can try to make sure that it does not have any apparent jank.

Yes, I know that Flutter 2.2 which launched a few days ago included tools designed to fight some of the sources of jank (e.g. bundling precompiled shaders) but after such a long time of promises from the Flutter team I just want to see a 100% flutter app hitting a solid 60 fps on my own phone, for real.

4 comments

I think google pay[0] is entirely flutter[1] (how much is actually flutter is unknown). It does seem pretty slow, actually - it’s like it only plays every third frame when animating switching between the app’s tabs.

0: https://apps.apple.com/us/app/google-pay-save-pay-manage/id1...

1: https://developers.googleblog.com/2020/09/google-pay-picks-f...

Here's a subthread about Flutter jank/performance from the 2.0 release back in March:

https://news.ycombinator.com/item?id=26333213

Back then at least one of the "featured" apps had key screens written in e.g. ObjC. Google Pay was also discussed.

My current idea of how to do a non-javascript multi-platform app strategy:

Apple SwiftUI for iOS & macOS.

Flutter for Android, Windows, Linux and possibly a web client.

> Flutter for Android, Windows, Linux and possibly a web client.

Wouldn't Jetpack Compose make more sense for these platforms? It is native for Android and is similar to flutter for web and desktop.

You can't make desktop apps with android or jetpack compose. Find me one written with it that actually distributes their app that way vs. some emulation hack that nobody uses.
Actually you can. They have Compose for Desktop. I don't know how stable and mature it is tough.

https://www.jetbrains.com/lp/compose/

I wonder how far you could get using something like https://github.com/carson-katri/SwiftWebUI or https://github.com/TokamakUI/Tokamak to render the Swift app to a webview for the other platforms... I’ve not tried it, I imagine there might be jank and limitations as SwiftWebUI is “a toy project” but with some work could be a legit option - I’ve run pretty bespoke and complex React Native applications as desktop apps via react-native-web and Electron and it worked incredibly well.

I do like the idea of only maintaining a single codebase, but of course it comes with significant trade offs. The idea of building for Apple-first but automatically getting a reasonable fallback for other platforms is quite appealing - as you say, for many businesses it probably makes sense to focus on having the most polished iOS experience possible.

Honestly I’ve been quite impressed with the end results we’ve got from React Native, but you are always going to be lagging behind the native platform.

I'll be frank, the developer experience of swift is horrible. Webdev with typescript, their instant response times in development, lack of compiling and lack of an update cycle (the URL is always the latest version, whether you like it or not) is way more productive than compiled iOS dev. Swift is only good for macOS and iOS effectively now.

Flutter devex is also faster and more responsive, but it just doesn't quite make as a good of a product on iOS. iOS users are higher revenue and have higher standards than android users also.

Yes in my business that I won't specify ios (last 2 revisions) + web users account for over 92% of revenue, with a whole scattering of android versions and related hardware back to 4.4 making up the rest.

A native strategy for ios is absolutely worth the investment of resources and time and flutter will never cut it or be worth the risk of even a small % of users suffering some new bug.

Android gets whatever is quick and easy just to to keep the business ticking on that side so flutter is perfect.

Users do not and should not have to care or be exposed to your cost saving strategy.

Well my logic for flutter is it's made by google, so it's support for android & google chrome will always be far better. Supposedly flutter is basically google's next gen UI toolkit for fuscia, so it will probably stick around.

Nobody focuses on windows or linux desktop, so it will be decent enough for them too. Google effectively owns the browser with chrome and flutter and chrome both use skia as their render system, so the likelihood of long standing bugs between them are reduced further.

Apple doesn't like it when their biggest direct competitor tries to commoditize them, and are not a money maker like games, so they foot drag in subtle ways to make flutter not as good of a thing.

I use iOS personally, so there is also a built in skill component there.

If the company got really big, then I would probably do a native web UI because web developers are easy to hire relative to many other types.

That seems like a smart and pragmatic strategy. Thanks for sharing that idea!
I'm waiting for Flutter to stop draining the battery. On my Mac, a single TextField with a blinking cursor inside uses somewhere between 10% and 20% CPU. This is a complete show stopper for me.
Flutter in iOS Simulator will drain my laptop's battery in an hour. It's quite frustrating. Pre-pandemic, I often worked in cafes and libraries and purchased a long power cable to use when I need to work with Flutter and can't get a seat next to an outlet.

https://github.com/flutter/flutter/issues/21445

https://github.com/flutter/flutter/issues/31865#issuecomment...

https://github.com/flutter/flutter/issues/33833#issuecomment...

I think Flutter Team (and most ppl at Google) are entirely focused on pushing out new features which they can cite on their performance review docs to get higher pay. Few of them focus on user needs. This is why Flutter built Web and Desktop support before finishing Mobile. Flutter Mobile things left undone: no high-quality location module, long-standing bug in camera module on Android, missing Cupertino widgets, a few missing Material widgets (date-time picker), critical info missing from docs, and missing non-trivial examples.

Seems with Flutter being open, the growth of flutter outside of mobile was started by others, with it's being picked up by other teams within google and outside of google.

In this podcast, Eric one of the original flutter guys,said desktop and web started by other team with in google. https://twitter.com/darkofabijan/status/1392061926407028740

Teams from Sony, Toyota and Samsung(Tizen) are giving flutter a go on their own. Also the ubuntu guys are active committers to progress flutter desktop.

There must be something else going on that you are not aware of hogging the CPU. This cannot possibly be the source of that.
I'm simply observing the CPU usage of the Flutter app when a TextField gets the focus. I don't see why it matters whatever else may be hogging the CPU as well.

I tried it on macOS as well as on the iOS simulator and on the web, but I haven't tried the latest version yet. You can try the web version here:

https://gallery.flutter.dev/#/demo/cupertino-text-field

Edit: I have now tried the latest version (2.2) and I'm seeing 12% CPU usage for an idle app with nothing but a focused TextField.

Just out of curiosity; do you see these while running in profile / release mode?
I wouldn’t discard it so easily - flutter does all drawing and compositing on its own, without using system libraries. Could easily be redrawing the whole screen.
Looks like the fix didn't make it in 2.2 :(

https://github.com/flutter/flutter/issues/32170#issuecomment...

Comment here links to before and after videos: https://github.com/flutter/flutter/issues/79298#issuecomment...