The idea sounds very appealing, especially to an indie developer: being able to ship your app on multiple platforms from a single codebase is kind of the holy grail. Unfortunately, the result is....
I tested this Flutter example[1], on a 16" MBP with and i7, and it is janky as it can get, it feels like I'm using a 15 year old computer. From the code it looks like the whole thing is... rendered on canvas? I'll pass.
Wow, this is some of the worst scrolling I’ve experienced on the web in a long time. Incredibly weird and not smooth at all on both a newer iPhone and Mac. Can’t copy text either.
I just tried it on an iPad Pro with Safari. Clicking the tiles does not work, scrolling does not work with the touchpad, and overall it feels very janky. They probably didn‘t care to optimize / make it usable with Safari.
Trying it on Windows 10 with Firefox. Scrolling is incredibly slow, in every possible way. The scroll wheel barely moves the content, so I have to spin the wheel ten or more times to get any reasonable distance down the page, and the animation is janky and stuttery.
I remember getting accurate values from the scroll wheel being the worst in Firefox and basically impossible. You could only get the scroll direction, but not the correct extent (bascially everything just looked like one detent). So you either get incredibly fast scrolling, or incrediby slow scrolling, depending on how you work with the value and whether you still do the oft-needed division by 120. This can also make some touch pads that generate mouse wheel events very unusable for zooming or scrolling.
The scaling there works with very different speeds in Firefox and Chrome because both disagree on what value the delta should have. Scrolling up once yields -100 in Edgeium for me and -3 in Firefox.
Still relatively early days for Flutter Web, so I would not be shocked if it's not buttery everywhere. However, we would certainly love to learn more. fluter.dev/support has links as to how to file an issue if you're interested.
https://flutterplasma.dev/ is one demo to try. We expect to be updating flutter.dev/web and flutter.dev/showcase to update more over time.
The plasma demo you linked runs at a stuttery 40fps on Firefox (ubuntu 20.10) on a quad core Ryzen 5 laptop. The fans immediately spin to max speed. I'm not impressed...
Here's a hard question, why is this surprising to you? What are you missing in development--is this a gap in testing? Are you hamstrung without support internally to bake this as long as it needs? Rather than double-down on extolling the virtues here, it's time to double-down on fixing the team and the product.
Sorry but the plasmadev demo doesn't pass muster compared to 60fps animations we were able to do years ago with html+js. Something about the renderer approach is causing hiccups in the animation.
"Buttery smooth animations and scrolling" will be a great selling point for flutter ..if it actually works.
As usual for Google products, this works fine in Chrome on a decently powerful desktop.
Not up to the speed of well-written Javascript, but definitely viable.
In contrast, this is completely unusable on other browsers or on lower powered devices.
On Firefox desktop, initial loading brings a "This page seems to be stuck" prompt. Once it finally loads, clicking the play button just does nothing.
Please note that for 80+% of websites/apps, Firefox is faster or on par with Chrome for me. Google products and some other exceptions are the only ones that are consistently slow on Firefox. Whether that's intentional or just a lack of testing, I can't say.
Similarly unusable on Safari.
On lower powered devices this just freezes Chrome for me.
As I mentioned in other comments, I like Flutter, but Flutter Web is not anywhere close to being viable for production use.
Why are you guys here on HN still using Chrome? There is literally not a single reason I can think of to be supporting this behemoth that is killing the open web. Firefox is excellent actually and Firebug IMO is far superior to Chrome's offering. I understand non-techies using it like they used Explorer, but come on guys.
Yes, we consider accessibility a must-have feature. On the web, we have a second DOM tree called the SemanticsNode tree, which is generated in parallel to the RenderObject DOM tree. The SemanticsNode tree translates the flags, actions, labels, and other semantic properties into ARIA attributes. We've been testing Windows Narrator, VoiceOver, TalkBack, and ChromeVox screen readers to navigate a Flutter web app.
So why is FlutterPlasma.dev completely unusable with a screen reader even after pressing the "turn on accessibility" button? I understand that the actual demo presentation might not be accessible, but the intro screen should be fully readable, and it's not.
Edit: You may want to add the NVDA open-source screen reader for Windows to your list. And when you test with a screen reader, make sure you use it the way an actual user would when browsing the web, e.g. using NVDA's browse mode with the arrow keys to move through the page.
On my iPhone 12 mini the demo took 13 seconds to show me something besides a blank screen. On my desktop it was around 3 seconds and cpu usage went through the roof.
FWIW the plasma demo runs at something like 50fps in Chrome on my 3yr old Samsung Galaxy S9, and only a bit worse in Firefox (perhaps 40fps) - so they are not buttery smooth experiences, but neither are they terrible.
Oooff, the edges in that demo look terrible - particularly the grey boxes in perspective. The demo boasts that it isn't a video, but the interpolation looks as bad as one.
I hate to be critical - I'm sure a lot of work has gone into this - but there's still lots of room for improvement too.
flutterplasma.dev just shows a blank screen for me on iOS safari. Every few refreshes I can can get the content to show for a split second before it goes back to white...
No, I won't help you. The OP post is about how great flutter is and you're in the comments telling everyone it will actually be useable soon and asking us to test it for you on common browsers.
Another data point is the new flutter Google Pay app vs the old version. On my iPhone 11 Pro, the former is incredibly laggy. The latter is as smooth as you’d expect given the hardware.
Is that a counterpoint? To me that tells me performance is going to vary between users computers, possibly due to something other than resources. That means the experience I'd be delivering won't be consistent and I probably won't be able to fix it, or even replicate it, reliably. Something that's janky everywhere can be profiled, debugged and possibly fixed. Something that has an unknown problem that only affects some users is far more problematic.
That isn't a counterpoint to say the language might be worth considering. That's an additional data point to give me reasons to not use it yet.
Just tested https://gallery.flutter.dev/#/crane in Chrome and Safari on Mac and if I go to another tab and then back to the fly tab it just shows a gray screen. Does not inspire confidence.
> and it is janky as it can get, it feels like I'm using a 15 year old computer.
Ironically computers 15-20 years ago with native software ran much, much much faster and snappier. KDE3, XFCE, even Windows 98SE and XP were much faster. They were crippled by disk I/O, true, but once the software loaded, the feedback was inmediate.
Just as a bit of counterpoint, I'm still running the same hardware right now as I was 12 to 15 years ago with KDE3, nowadays KDE5 is so much faster than KDE3 ever was. Yes I need to upgrade badly, yes I was planning to just a few months ago, but prices seem a bit crazy now, so I'm still continuing with my ancient but somehow still operational hardware.
I'm seriously considering looking at something like https://heaps.io/ for cross platform utilities rather than flutter etc. i suppose accessability is likely to still be an issue, as well as ciustom (not native) widgets -but at least the resource usage and interaction is likely to work?
note that heap+haxe is pretty much "the same" as flutter/dart - a language, a compiler and a runtime + a rendering engine..
Interestingly I've tried it on Brave on a M1, and it is very smooth. I also tried their Plasma demo and it was very smooth (https://flutterplasma.dev/) but that might say more about the M1 than Flutter.
If it's running on canvas, normally you would see "unpkg.com/canvaskit-wasm" - and even then it may not be the latest (supposedly more optimized) version. For example, my simple Super Tic Tac Toe app - uses it - https://malkia.github.io/tictactoe/#/ - but the gallery was compiled to use HTML, instead of canvas - which would be slower (IMHO). I think there is even mixed mode - where it can choose one or another ("fat" binary on the web ;)).
It is very janky, and worse, totally unaccessible, rendering it useless (or frustrating at best) for huge numbers of the population. And why? It's just yet another shiny web framework. We've known how to build websites for decades now.
Agreed... How can they be proud to release such an extreme regression in usability and accessibility? It is entirely 100% inaccessible for anyone not using a visual user agent. And this somehow isn't considered a non-starter?
I tested this Flutter example[1], on a 16" MBP with and i7, and it is janky as it can get, it feels like I'm using a 15 year old computer. From the code it looks like the whole thing is... rendered on canvas? I'll pass.
[1]: https://gallery.flutter.dev/#/