(no title)
kevmoo1 | 3 years ago
While we'd love to be the best solution for every problem, it turns out the HTML-based web has been highly optimized for decades for text-heavy, linear, reading experiences.
So we're staying focused on the places where Flutter does the best job: interactive, non-linear, more-create-than-consume.
So our sites use HTML & CSS: flutter.dev, dart.dev, pub.dev
And our devtools are built in Flutter Web: https://docs.flutter.dev/development/tools/devtools/overview Along with web experiences from rows.com, reflection.app, rive.app, supernova.io, and many more.
FYI: I'm the product manager working on Flutter and Dart web tech at Google
(edit: fixed domain, mis-added one app)
owenpalmer|3 years ago
If browsers offered a lower level graphics API, would that give a significant performance improvement over canvas?
What is the performance bottleneck for flutter web? Is it the overhead of drawing to the canvas, or dom tree optimization?
I'm very interested in this topic.
yjbanov|3 years ago
It's mostly about algorithmic trade-offs. When you know your content layout is static and is highly biased towards vertical scrolling, you take different kinds of performance trade-offs, such as pre-computing and caching layout and painting output. Like when you know your array is sorted, you can use binary search to find an element instead of scanning. When pages do invalidate HTML layout you will actually see very bad jank. This is one of the classic performance pitfalls on the web, even using "classic" frameworks, like React or Angular. Flutter's current widgets and rendering primitives are biased towards dynamic content, where over-computation like this would hurt performance when you layout or paint isn't stable. Instead, we optimize for volatile content, using tricks like lazy rendering and repaint boundaries. We can still add primitives needed to render static content efficiently. We just feel like we're not yet sufficiently done with the non-static case.
jasfi|3 years ago
I know there's been a lot of good work in reducing this, lately my Flutter web app loads much faster, but it wouldn't get a great Pagespeed rank. That's why I link to it from the main HTML/CSS site.