When Flutter was created, we focused on creating a cross-platform application solution that could build beautiful, highly customizable, and compiled into machine code to harness the full graphics rendering capabilities of the underlying hardware of the device. Today’s official support of Flutter for the Windows production version is an important sign of the realization of this vision. It enables Windows developers to enjoy the same productivity and functionality of mobile development.

Flutter aims to provide you with a great build experience on any platform, and what we want to build is to do this using the same core framework and tools. With Flutter, you are free to create a beautiful experience that makes your brand and design stand out. It also has extremely high execution speed because it is compiled directly into machine code; By enabling stateful hot reloading to provide an interactive experience, you can see the results of your code changes directly as your application runs, thereby increasing productivity. Flutter is open, with thousands of contributors contributing to the building of the core framework or extending it through a package and plug-in ecosystem.

To date, nearly half a million applications have been built using Flutter

So far, we have seen this trend exceed our expectations. Flutter is used by some large companies such as Betterment, BMW, and Bytedance, as well as by more than 30 teams within Google. According to Statista and SlashData, Flutter has become the most popular cross-end UI toolkit in 2021.

This is supported by our own data. In a four-quarter developer survey in 2021, 92% of Flutter developers were satisfied with the tools we provided. (For the other 8 percent, we’re listening to you and hoping to get your satisfaction, too).

One of the common requirements was support for Windows,

Today, we are pleased to announce that Flutter stable has fully supported building Windows desktop applications.

Windows and Flutter

A few years ago, we had a big vision for Flutter, which was to expand from iOS and Android mobile applications to other platforms, including the Web and desktop.

The core of Flutter is cross-platform: from the portable hardhardware accelerated Skia graphics rendering engine, to the core units of Flutter’s rendering system, such as animation, themes, text input, and internationalization, Flutter provides hundreds of widgets.

But the desktop isn’t just about mobile apps running on a bigger screen, they’re very different in terms of design. From an input device perspective, the desktop has a keyboard and mouse that run multiple variable-sized Windows on the monitor. Accessibility has different rules and constraints for key contents such as Accessibility, input methods, and visual styles. And they integrate with different apis in the underlying operating system: desktop applications support everything from the system’s file picker to the device’s hardware to the Windows registry of data stores.

So when we brought Flutter to Windows, we also needed to customize it.

As well as our support for Android and iOS, the Windows implementation includes the Dart framework as well as the C++ engine. Windows communicates with the Flutter through the Embedder layer that hosts the Flutter engine. Translation and sending Windows are the responsibility of the Embedder layer. Flutter works with Windows to draw your UI onto the screen, handle events such as window resizing and DPI changes, and works with existing Windows applications such as input editors.

On Windows, Flutter uses the exact same Dart code but is able to use the Windows API.

Your application can use the full capabilities of the Flutter framework. On Windows, it can also communicate with Win32, COM, and Windows runtime apis directly through Dart’s C interoperability layer or using platform plug-ins written in C++. We also adapted a number of common plug-ins to include Support for Windows, including Camera, File_picker, and shared_preferences. More importantly, the community has added support for Windows from various other packages, covering everything from Windows taskbar integration to serial port access.

To fully customize the UI for Windows, you can also use packages such as Fluent_UI and Flutter_acrylic to create applications with Microsoft Fluent’s design aesthetic. And using the MSIX tool can wrap your application into an installer so it can be uploaded to the Microsoft Store on Windows.

Overall, this facilitates the creation of applications on the Window platform. It runs extremely fast on Windows and can be transferred to other desktop or mobile applications and web platforms. Let’s take a look at some early examples so far:

Microsoft and Flutter

We asked the Windows team if they would like to share some words of support for Flutter. Here’s Kevin Gallo, vice president of Windows Developer Platform at Microsoft:

“We are pleased to see that Flutter has added support for creating Windows applications. Windows is an open platform and we welcome all developers. We are excited to see Flutter developers bring their experience to Windows and release it to the Microsoft Store. Support for Windows is a big step for the Flutter community, and we can’t wait to see what amazing apps you can bring to Windows!

In fact, many Microsoft teams also contributed to today’s release. We especially want to thank the Fluent Design team for their contribution to supporting the ICONS of Flutter on Windows. Their high quality FluentUI_system_icons package has been added to the Flutter Favorite project.

We were also impressed with the investment Microsoft made around Windows accessibility and are grateful to the team for their help in ensuring that Flutter was capable of supporting screen readers from day one. It is a mistake to view accessibility as an additional requirement. As this image from the Microsoft Inclusive Design Toolkit shows, we must focus on providing experiences that are permanent, temporary, or context-specific.

The following video demonstrates how Flutter integrates with the Windows presenter feature. For the purposes of this video, we’ve blurred the screen to give you an idea of how valuable this feature is to users who need it.

Insert the video

Windows Storyteller is a screen reader built for Windows that also works well with Flutter.

Windows Development Ecosystem toolkit

Our development tool partners are also beginning to add support for Windows desktop application development, such as:

  • FlutterFlow is a low-code, drag-and-drop tool for creating Flutter applications. Today FlutterFlow officially announced support for Windows. It also announced a number of features to help Flutter developers build desktop applications.
  • Realm is a fast local data storage service. The latest release, released today, supports building Windows desktop applications using Flutter. They use Dart FFI for fast access to underlying databases and add their existing support for mobile platforms such as iOS and Android.
  • The Nevercode team has updated their Codemagic CI/CD Tool and started supporting the Windows desktop, where you can test and build Windows apps in the cloud and publish them to the Microsoft Store.
  • Syncfusion has updated its tool suite to take full advantage of the Windows platform. If you are using their services, you will find that their data visualization components such as tree charts, linear gauges, spark charts, calendar components and even PDF and Excel generation components already support Flutter. The Syncfusion Flutter widget is built natively with Dart.
  • Rive recently announced the Windows version of its popular graphical tool suite, which enables designers and developers to create interactive vector animations that respond to code in real time using state machines. The upcoming Windows version of the application offers amazing performance and a lower memory footprint, and will soon be available for download in the Microsoft Store.

We are excited to see the mature ecosystem built around Flutter. We encourage you to try out the services and tools of our partners in Flutter as you start building Windows applications with Flutter.

Windows platform support for Flutter 2.10

As part of the official Release of Flutter 2.10, Flutter already provides stable, production-quality support for Building applications on the Windows platform. Flutter 2.10 also includes many other new features and performance improvements, as well as bug fixes. It was detailed in another tweet today.

In the coming months, we will be releasing more stable versions of Flutter support for macOS and Linux platforms, allowing you to build beautiful applications for a wider range of desktop, Web and mobile platforms!

Thank you again for supporting Flutter and look forward to seeing the wonderful applications you build for Windows!

  • If you would like to use the image above as a desktop background, please click this link to download the original image: files.flutter-io.cn/images/bran…

Thank you

  • Announcing Flutter for Windows
  • Link: medium.com/flutter/ann…
  • Translation: Vadaski
  • Review: Luke
  • Drawing: Lynn