At an online event, Google today announced Flutter 2, the newest version of its open-source UI toolkit for building portable apps. While Flutter started out with a focus on mobile when it first launched two years ago, it spread its wings in recent years and with version 2, Flutter now supports web and desktop apps out of the box. With that, Flutter users can now use the same codebase to build apps for iOS, Android, Windows, MacOS, Linux and the web.
“The big thing that justifies the major version number shift is, of course, the availability of web and desktop support,” Flutter product lead Tim Sneath told me. “And that’s just a fairly profound pivot. It’s rare for products that you suddenly have all these additional endpoints.”
He noted that because of Flutter’s open-source nature, web and desktop support had been “cooking in the open” for a while, so the addition of these endpoints isn’t a surprise. A lot of that work in getting these new platforms ready for the 2.0 release involved getting the performance up to par on these new platforms.
It’s worth noting, though, that Flutter desktop support is still behind an early-release flag in Flutter’s stable release channel and Google says developers should think of it as a “beta snapshot.” Web support, however, has transitioned from beta to stable and has become just another target for building apps with Flutter.
On the web platform, specifically, Sneath noted that the team deliberately started out with a very standard, DOM-centric approach. But while that worked fine, it also meant performance was held back by that, especially for more advanced features. Over the course of the last year or so, the team started working on what it calls Canvas Kit. This WebAssembly-based project takes the same Skia graphics engine that powers Android and Chrome itself and makes it available to web apps.
“What that’s meant is that we can now essentially bypass the core HTML — sort of the document-centric parts of the web platform — and really use the app-centric parts of the web platform without leaving [behind] things like auto-complete of text or passwords and all the things that keep the web feeling very unique,” Sneath said.
On the desktop, Google is announcing that Canonical is going all-in on Flutter and making it the default choice of all its future desktop and mobile apps.
Microsoft, too, is expanding its support for Flutter and working with Google on Windows support for Flutter. Given Microsoft’s interest in Android, that’s maybe no huge surprise, and indeed, Microsoft today is releasing contributions to the Flutter engine to help support foldable Android devices.
In total, Google notes, there are now over 15,000 packages for Flutter and Dart from companies like Amazon, Microsoft, Adobe, Huawei, Alibaba, eBay and Square.
As always, there are dozen of other smaller updates to Flutter in this update, too.
Looking ahead, Sneath noted that the Flutter team plans to spend more time on Flutter as a framework for embedded devices and other somewhat non-traditional platforms. He also noted that the team is interested in how Flutter can help power ambient computing experiences.
“As we think about the ambient computing worlds where there are these core premises behind the ambient computing aspects — things like: can it be searched easily? Can people make money off of the apps that they build and do it in a responsible way? We’re building support for those kinds of services. Better analytics, better ads frameworks, connectivity into things like Firebase and Google Cloud, so that people can not just take advantage of Flutter but the broader ecosystem services that Google provides,” Sneath explained.