Google announced today that its Flutter app development toolkit can now be used to create native Windows applications.
“Flutter is a cross-platform UI toolkit that is designed to allow code reuse across operating systems such as iOS and Android, while also allowing applications to interface directly with underlying platform services,” Google’s Chris Sells explains. “Our own statistics show that over half of all Flutter developers use Windows, so it’s a natural target for Flutter. Native desktop support opens up a variety of exciting possibilities for Flutter, including improved developer tooling, reduced friction for new users, and of course apps that can reach any device a user might have from a single codebase.”
Flutter originally targeted only Android and iOS, but Google has long planned to expand its capabilities to any platform that supports a display, and it has explicitly begun work on bringing Flutter to Mac, Linux, Web, and Windows. There are already Windows-specific widgets for accessing native Windows features like file dialogs, menu bars, navigation bars, data tables, and more.
Flutter is also extensible with plug-ins, and there are already some Windows-specific plug-ins available, for URL launching, folder paths, preferences, biometric storage, and audio. Many Flutter plug-ins are platform-independent, too, so those will work with Windows as well.
Looking ahead, Google plans to keep improving Flutter for Windows to support accessibility, globalization and localization, enhanced keyboard and text handling, support for command-line arguments, and more. The firm is even experimenting with providing a UWP-based version of the Flutter shell, in addition to standard Win32 support, which would allow Flutter to support Xbox apps too.
“With this release, we bring the power of Flutter to Windows, with its declarative, composable, reactive framework for developer productivity, its adaptable implementation of the Material spec so you can make your apps look and feel the way you want them to, as well as the full set of Flutter development and debugging tools,” Mr. Sells adds. “When complete, your app is compiled to native 64-bit code that you can package and bring to other Windows machines just like any other native app. And finally, you can use that same codebase to create an app targeting Android, iOS, web, macOS, and Linux.”