In its initial releases, Flutter allowed developers to create apps that run on both Android and iOS. But now Google is setting its sights higher. Much higher.
“With Flutter 2, you can use the same codebase to ship native apps to five operating systems: iOS, Android, Windows, macOS, and Linux; as well as web experiences targeting browsers such as Chrome, Firefox, Safari or Edge,” Google’s Tim Sneath writes in the announcement post. “Flutter can even be embedded in cars, TVs and smart home appliances, providing the most pervasive and portable experience for an ambient computing world.”
With the release of Flutter 2, Google’s app development framework officially evolves from a mobile framework to a portable framework, allowing apps to run virtually anywhere there’s a screen. The biggest news in this release, perhaps, is Flutter’s support for web apps hitting the stable milestone. Now, developers can port existing apps—of which there are over 150,000—to the web, or they can create new Flutter-based web apps. Flutter 2 supports three key web app types:
- Progressive Web Apps (PWAs), which function like native desktop and mobile apps and provide key native app capabilities.
- Single-page apps (SPAs), which load once and then transmit data to and from Internet services.
- Flutter mobile apps, which can be ported to the web, enabling a shared code experience.
And to address different needs, Flutter actually provides two choices when it comes to developing web apps: You can use an HTML renderer that is optimized for size and compatibility, or a CanvasKit renderer that is fully consistent with Flutter mobile and desktop apps and uses WebAssembly and WebGL to render Skia paint commands to the browser canvas. By default, Flutter apps for the web will use the HTML renderer on mobile and the CanvasKit renderer on desktop platforms.
While Flutter 2 is largely about the addition of web capabilities, the broader platform has also seen some interesting advances since the last major milestone. And key among those are some that come from Google’s Flutter partners, which are increasing their use of this technology in interesting ways. And two of these partners are of particular interest.
The first is Ubuntu-maker Canonical, which is partnering with Google to bring Flutter to the desktop. Moving forward, Flutter is the default choice for future desktop and web apps that Canonical creates for Ubuntu, and the new Ubuntu installer was built from the ground up using Flutter.
The second, believe it or not, is Microsoft. As you may know, Sneath and the Flutter team have been looking for Microsoft to put its weight and influence behind Flutter, and today we learn that the software giant is making contributions to the framework related to foldable Android devices like Surface Duo.
Ultimately, what Google is trying to accomplish with Flutter is that decades-long dream of writing code once that runs everywhere. But this time, finally, it seems attainable.
“With the ability to reach 6 platforms at once, the advantages to Flutter are real,” Mr. Sneath told me in a recent conversation. “This is a solution that works for large and small developers, and you can target the heterogeneous world in which we now live. We’re making it easier to get to all of those places at once.”
You can learn more about Flutter at the Flutter website. I hope to look more closely at Flutter 2 in the weeks ahead.