While Flutter for desktop remains in technical preview, Google today announced the progress it’s made so far plus some exciting new functionality that will make Flutter even more viable for creating apps in this environment. And it’s asking for Microsoft’s help.
“Our mission for Flutter is to target a broad variety of devices, including iOS, Android, Windows, Linux, macOS, and web from a single codebase, with native compilation and game-quality visuals,” Google’s Tim Sneath writes. “Within Google[,] Flutter is used by projects from Assistant to Stadia, from Cloud Search to Blogger. And outside of Google, Flutter has been adopted by companies from ByteDance to Grab, from Nubank to MGM Resorts, all of whom benefit from the productivity and flexibility of Flutter.”
Flutter’s support on mobile—Android and iOS—is today quite mature, and I’ve been stepping through the free App Brewery Flutter course that I mentioned back in April. But Google has been working to bring Flutter to other environments—web, plus Windows, macOS, and Linux—since last year, and sees the framework as the possible realization of the “write once, run everywhere” dream that Sun once had for Java.
To that end, it has been releasing support for desktop and web features in technical preview, and this week, Google says that it’s made some nice progress, including changes that will help Flutter better support desktop experiences. This includes display density support, better support for mouse and keyboard, platform query, the addition of a desktop navigation widget, and the start of a new Flutter plug-in model that can work across all supported platforms.
But the biggest news, to my eyes, the planned addition of support for Win32 and UWP code.
“On any platform, Flutter is embedded into a small host container app (an ‘embedder’), using a similar approach to game engines like Unity,” Sneath explains. “Windows offers two distinct approaches for creating this embedder. First, the mature Win32 programming model can be used to create the entry point for Flutter content; this offers maximum backward compatibility to platforms such as Windows 7 and builds a standard EXE file that many developers will expect. Conversely, the more modern UWP app model is the recommended approach for Windows 10 and offers intriguing opportunities for expanding Flutter support to devices such as Xbox or the upcoming Windows 10X.”
Sneath says that Google is working with various contributors to figure out the best solution on Windows, but he specifically asks for a partnership with Microsoft(!):
“We would gladly support a close collaboration with Microsoft to build a high-quality solution,” he says. “With the Surface family of devices extended to include Android and Windows, we think Flutter offers Microsoft a compelling platform for building beautiful native experiences that span their entire portfolio.”
Given my recent experience with UWP, Xamarin.Forms, and now Flutter, I can say with a small degree of certainty that this would be the ideal solution for cross-platform apps from Microsoft, and that Microsoft could support for third-party developers. I’d love to see this happen.