Windows support for Flutter

Feature Window Flutter
Share

Develop high-quality apps for Windows, Android, and iOS

Flutter was launched in 2017 by the Flutter team. The team is focused on providing a cross-platform solution for building beautiful, custom apps that are compiled and take full advantage of the underlying graphics hardware. As of today, Windows will be supported as an app target, enabling Windows developers to enjoy the same productivity and power that mobile developers have enjoyed for years.Flutter gives you the tools you need to build great experiences no matter what operating system you’re using. Therefore, the same tools and frameworks should be available anywhere you paint pixels. By using Flutter, you can create beautiful experiences that put your brand and design front and center. It is fast, compiling directly to machine code, and supports stateful hot reloads, which provide the productivity of an interactive environment where you can make changes while your app is running and see the results immediately. In addition, Flutter is open source, with thousands of contributors adding to its core framework and extending it with an ecosystem of packages.

Windows and Flutter

Flutter team’s vision for Flutter a few years ago was to expand beyond mobile apps on iOS and Android to include other platforms such as the web and the desktop.There are many things about Flutter that carry across platforms, including its portable, hardware-accelerated graphics engine Skia; its Flutter rendering system; its core primitives such as animation, theming, text input, and internationalization; and the hundreds of widgets it offers.However, desktop apps are not just mobile apps running on a larger screen. There are many input devices that can be used with them, such as keyboards and mice. They often feature widescreen monitors with resizable windows. There are different conventions for key things like accessibility, input method editors, and visual styling.  The desktop apps also integrate with various APIs in the underlying operating system: file system pickers, device hardware, and data stores like the Windows registry are just a few examples.
So while we’ve brought Flutter to Windows, we’ve also tailored it for Windows.
For Windows, we use the same Dart framework and C++ engine as we do for Android and iOS. Windows and Flutter communicate via an embedded layer that hosts the Flutter engine and translates and dispatches messages to Flutter.  In Flutter, you can paint your UI to the screen, handle events like window resizing and DPI changes, and use existing Windows modalities for internationalization, such as input method editors.
Windows Flutter architecture

On Windows, Flutter uses exactly the same Dart code, but takes advantage of native Windows APIs. source: Google

You can use the entire Flutter framework, and on Windows, you can also talk to Win32, COM, and Windows Runtime APIs through Dart’s C interop layer, or via a platform plugin written in C++. There are several common plugins that work on Windows, including the camera, file_picker, and shared_preferences. In addition, the community has already added Windows support for a wide variety of other software packages, including everything from a Windows taskbar integration to serial port support.

Windows Support Flutter framework
There are already hundreds of packages that have been adapted to support Flutter apps built for Windows. source: Google

For a fully tailored Windows UI, packages such as fluent_ui and flutter_acrylic can be used to develop an app that perfectly expresses the Microsoft Fluent design system.  Using the msix tool, you can package your app in an installer which can be uploaded to the Microsoft Store on Windows.

This allows developers to build apps that look great on Windows, run smoothly on Windows, and still transfer to other desktops or mobile devices, as well as the web. So far, here are a few examples:

Flutter music ui
Flutter graph
Some early community examples of Windows apps built with Flutter, including: Harmonoid and Rows.

Microsoft and Flutter

Fluter teams asked the Windows team if they’d be willing to share a few words about Flutter’s support. Here’s what Kevin Gallo, Corporate Vice President for Windows Developer Platform at Microsoft, has to say:

“We’re delighted to see Flutter adding support for creating Windows apps. Windows is an open platform, and we welcome all developers. We’re excited to see Flutter developers bring their experiences to Windows and also publish to the Microsoft Store. Flutter support for Windows is a big step for the community, and we can’t wait to see what you’ll bring to Windows!”

Many teams from Microsoft contributed to today’s announcement. In particular, Flutter teams  would like to thank the Fluent design team for their contribution of the iconography for Flutter apps on Windows. To recommend fluentui_system_icons, Flutter selected it as a Favorite package.

We have also been impressed with Microsoft’s investments on accessibility for Windows, and we appreciate the team’s help in ensuring Flutter will have screen reader support from day one. I think it’s a mistake to dismiss accessibility as a niche issue. As this diagram from Microsoft’s inclusive design toolkit illustrates, we all have reasons to care about providing experiences that adapt for different permanent, temporary, or situational requirements.

Here is a video that demonstrates Flutter’s integration with Windows Narrator. Flutter teams purposely blurred the screen here to demonstrate how useful this feature is for people with disabilities.

 

Narrator, a screen reader app built into Windows, works well with Flutter apps.

Windows development ecosystem

 Following are a few tooling partners for supporting windows.

  • FlutterFlow, a low-code Flutter app creation tool, announced today support for Windows, along with features to help Flutter developers build desktop-friendly apps
  • The Realm local data store is super fast.includes fast access to the underlying database with Flutter FFI, as well as existing support for iOS and Android
  • Nevercode is adding support for Microsoft Windows to its Codemagic CI/CD tool, which can be used to deploy your apps to the store automatically and test them in the cloud.
  • Syncfusion have updated their suite of widgets to take full advantage of Windows. As part of their toolkit, you’ll find data visualization components like treemaps and charts, a rich data grid widget, calendars and even support for PDF creation and Excel spreadsheets.

With Flutter’s mature ecosystem, team recommends checking out these partners when building Windows apps.

Flutter 2.10 now supports Windows

Flutter 2.10 provides stable, production-quality support for Windows app development. In addition to the features and improvements described in this post, Flutter 2.10 includes many other improvements.

Teams plans for completing stable support for macOS and Linux in the coming months will make all desktop, web, and mobile platforms available for your production Flutter apps.

Share

Leave a Comment

Your email address will not be published. Required fields are marked *

Share