Google's Flutter team has introduced the first alpha release targeting Windows, extending the cross-platform development tool to enable the same code to run on Android, iOS, Linux, macOS and web apps.
Flutter is an open-source project designed to meet the challenge developers face in supporting web and mobile platforms without having to rewrite their code.
There are many competing efforts in this space – including Microsoft's Xamarin, React Native, and Ionic – but Flutter ticks a lot of boxes, including a modern UI framework and native code compilation with performance and size benefits.
The language of Flutter is Dart. Google reckons that more than 100,000 Flutter apps have been shipped to the Android Play store (up from 90,000 reported a month ago).
Flutter's architecture includes a platform-specific code embedder, a C/C++ engine, and the UI framework written in Dart
In July this year Canonical contributed a GTK+-based host for Flutter apps on Linux. Support for macOS is already in alpha, and this is now joined by Windows.
Flutter's architecture is based on a platform-specific embedder or host, an engine written in C/C++, and a UI framework using Dart. In the case of Windows, this means a Win32 application written in C++ that loads and executes the Flutter code for an application. Building a Win32 target creates an EXE file with all the necessary DLLs, and deployment can be as simple as copying a folder to a Windows 10 PC.
Shawn Blais from digital media company gskinner has described in detail how developers built a desktop Flutter application called Flokk, explaining that the transition from a full-page mobile application to a windowed desktop application required a lot of layout work. There was also optimisation work necessary to avoid repainting the entire screen on every change, not such a problem on mobile but important in desktop applications.
Initial Flutter for Windows support is for Win32, but the team also has experimental support for UWP, described as a proof of concept
According to Blais: "In pre-beta stages, the applications run beautifully on Windows, Linux and MacOS. We were especially impressed with performance on Linux, with it often being the best performing of the platforms." Possibly Flutter's roots in Linux-based Android remain a factor here.
The Flutter team is also experimenting with UWP (Universal Windows Platform) support and already has a demo Flutter Gallery app in the Windows Store, described as a proof of concept. This runs on Xbox One as well as on Windows. ®