Google to Microsoft: Help us bring Flutter apps to Windows 10, 10X and Surface Duo

Google seeks "close collaboration" with Microsoft to improve Win32 and UWP support.

Developer: Pain-solving Rust is the most-loved programming language

Microsoft's Windows 10X Surface Neo looks to be delayed, but its Android Surface Duo dual-screen smartphone may arrive before the 2020 US holiday season – and Google's designers behind the Flutter UI framework are gearing up for its release along with other Windows10X devices. 

The Microsoft Android Surface device has two separate 5.6-inch displays, connected by Microsoft-designed hinges, which open to become an 8.3-inch display phone-tablet.   

Flutter is Google's open-source, cross-platform UI framework for native mobile apps, web apps, and desktop apps. It's one of the fastest-growing languages on GitHub

SEE: Managing and troubleshooting Android devices checklist (TechRepublic Premium)

A recent survey by IDE maker JetBrains found Flutter is the second most popular mobile cross platform to React Native, while Stack Overflow's 2019 survey put Microsoft's Xamarin ahead of Flutter

Google last May announced that Flutter was moving beyond mobile to the desktop and web and today it's outlined how it's improving Flutter on the desktop for macOS and Linux, but in particular for Windows and Microsoft's expanding Surface family. 

There are about 50,000 Flutter-built Android apps on the Google Play Store, but desktop Flutter apps are still in their infancy. Also, Flutter desktop support is still in technical preview.  

Microsoft has shown support for Flutter on its Android Duo device. While Microsoft's attention on the Surface Duo software development kit (SDK) has been more on Xamarin.Forms and React Native, at Build 2020, it offered a guide for Flutter developers to use the Duo SDK for Flutter projects and a few Duo Flutter samples.

However, Tim Sneath, a Google product manager for Dart and Flutter – and a former senior member of Microsoft's Visual Studio team – argues that Flutter would also make a great fit for all Microsoft's Surface devices, from Duo to Windows 10X, and even for legacy Win32 apps. 

"We've been working informally with various contributors to explore different solutions here, and would gladly support a close collaboration with Microsoft to build a high-quality solution," writes Sneath.

"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."

Sneath also details some of the experiments in Flutter to support traditional Win32 and Universal Windows Platform (UWP) apps via an 'embedder' – or a small host container that Flutter is embedded into – which takes a leaf from games engines like Unity. 

SEE: Google: Dart programming language and Flutter get these big iOS improvements

The embedder works with the OS to access services, such as rendering surfaces, accessibility and input, and manages the message event loop, according to Sneath.  

"Windows offers two distinct approaches for creating this embedder," he writes. "First, the mature Win32 programming model can be used to create the entry-point for Flutter content; this offers maximum backwards 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 notes that this work is still in technical preview and the tooling isn't yet stable. However, Flutter developers can try the tools out in the development channel builds. The macOS embedded version is slight more stable, but not recommended for production use.