原文链接: https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed
自从推出 Flutter 以来,我们一直专注于为漂亮的定制应用提供跨平台解决方案,这些应用被编译为机器代码并充分利用设备的底层图形硬件功能。
今天这一愿景有了新的重大突破,第一个支持 Windows 的版本发布了。
目前有近 50 万个应用程序正在使用 Flutter……
到目前为止,我们已经看到了超出我们预期的势头,现已有近 50 万个已经发布的应用使用了 Flutter,其中包括来自 Betterment、BMW 和 ByteDance 等公司的大型应用程序,以及来自 Google 三十个团队所开发的应用。
Statista和SlashData等分析师衡量,2021 年 Flutter 已经成为最受欢迎的跨平台 UI 工具包:
在 2021 年的所有四个季度调查中,始终有92% 的 Flutter 开发人员对我们的工具表示积极满意。(对于另外 8% 的人,我们正在倾听你的反馈)
在调研数据中一个常见的请求就是对 Windows 的支持。
今天,我们很高兴地宣布在稳定版本中全面支持 Windows 应用。
Window and Flutter
几年前我们为 Flutter 制定了一个雄心勃勃的愿景,即从 iOS 和 Android 上的移动应用扩展到括 Web 和 Desktop 平台。
Flutter 跨平台的核心是:便携、 Skia 图形引擎、Flutter 渲染系统、动画、主题、文本输入和国际化以及 Flutter 提供的数百个控件 。
但桌面应用不仅仅是在更大屏幕上运行的移动应用:
- 它还有专用的输入设备,例如键盘和鼠标,并且有可调整大小的窗口,通常在宽屏显示器上运;
- 对于辅助功能、输入法编辑器和视觉样式等关键事物有着不同的约定规则;
- 与底层操作系统中的不同 API 集成:桌面应用支持从文件系统选择器到设备硬件,再到 Windows 注册表等数据存储的所有内容;
因此,虽然我们在 Flutter 引入了 Windows 的支持,但我们也为 Windows 量身定制了 Flutter。
正如我们对 Android 和 iOS 的支持一样,Flutter 的 Windows 实现结合了 Dart 框架和 C++ 引擎,Windows 和 Flutter 通过一个嵌入层进行通信,该嵌入层承载 Flutter 引擎并负责翻译和分发 Windows 消息。
Flutter 与 Windows 协调以将开发者的 UI 绘制到屏幕上,处理窗口大小的调整和 DPI 更改等事件,并与现有的 Windows 模式配合使用以实现国际化,例如输入法编辑器。
在 Windows 上 Flutter 使用完全相同的 Dart 代码,但利用了原生的 Windows API,所以你的应用可以使用 Flutter 框架的所有能力。
在 Windows 上它还可以直接通过 Dart’s C Layer 或使用 C++ 编写的平台插件与 Win32、COM 和 Windows 运行时 API 通信,另外我们还调整了一些常用插件以支持 Windows,包括:camera
、file_picker
和 shared_preferences
等等。
更重要的是,社区已经添加了对大量其他软件包的 Windows 支持,涵盖了从 Windows 任务栏集成到串行端口访问的所有内容。
目前已经有数百个 package 经过调整以支持为 Windows 构建的 Flutter 应用程序。
对于完全定制的 Windows UI 可以使用 fluent_ui
和 flutter_acrylic
之类的包来创建一个 Microsoft Fluent 设计的应用程序。
使用该 msix
工具可以将应用包装在一个安装程序中,该安装可以上传到 Windows 上的 Microsoft Store。
以下是我们迄今为止看到的一些早期示例:
微软和 Flutter
我们询问了 Windows 团队是否愿意分享一些关于 Flutter 支持的信息,以下是微软 Windows 开发者平台公司副总裁 Kevin Gallo 所说的:
“我们很高兴看到 Flutter 增加了对创建 Windows 应用的支持,Windows 是一个开放平台,我们欢迎所有开发人员,我们很高兴看到 Flutter 开发人员将他们的体验带到 Windows 并发布到 Microsoft Store,Flutter 对 Windows 的支持是社区迈出的一大步,我们迫不及待地想看看你将为 Windows 带来什么!”
事实上,我们可以看到微软的几个团队为今天的公告所做出的贡献,特别是我们要感谢 Fluent 设计团队为 Windows 上的 Flutter 应用程序提供的图标,他们的 fluentui_system_icons
包已被授予 Flutter Favorite 地位以表明其质量。
微软围绕 Windows accessibility 所做的投资也给我们留下了深刻的印象,我们同样感谢该团队的帮助,以确保 Flutter 从一开始就支持屏幕阅读器。
正如Microsoft 包容性设计工具包中的这张图表所示,Flutter 关心提供适应不同永久、临时或情境需求的体验。
Narrator是 Windows 中内置的屏幕阅读器应用程序,可与 Flutter 应用程序配合使用。
用于 Windows 开发的工具生态系统
我们的工具合作伙伴也在增加对 Windows 的支持,这里主要强调一些:
-
FlutterFlow 是低代码 Flutter 应用程序设计工具,今天宣布支持 Windows,以及帮助 Flutter 开发人员为构建桌面应用量身定制了对于的功能。
-
Realm是一个超快速的本地数据存储,今天发布的最新版本现在支持使用 Flutter 构建 Windows 应用程序,其使用Dart FFI快速访问底层数据库,增加了对 iOS 和 Android 等移动平台的现有支持。
-
Nevercode 已更新其Codemagic CI/CD 工具以支持 Windows,现在你能够在云中测试和构建你的 Windows 应用,并自动将你的应用程序部署到 Microsoft Store。
-
Syncfusion已更新其控件套件以支持 Windows,如果你订阅了他们的工具包,你会发现有丰富的数据可视化组件,如树形图和图表、丰富的数据网格小部件、日历,甚至支持 PDF 创建和 Excel 电子表格等。
-
最后 Rive今天宣布了他们的图形工具套件即将推出的 Windows 版本,允许设计人员和开发人员创建可以使用状态机实时响应代码的交互式矢量动画,他们即将推出的 Windows 版本的应用程序提供了惊人的快速性能和更低的内存占用,并且很快将在 Microsoft Store 中提供下载。
Flutter 2.10 支持 Windows
作为今天发布的 Flutter 2.10 的一部分,为构建 Windows 应用程序提供了稳定的支持,Flutter 2.10 还包括许多其他功能、性能改进和错误修复,更多可见:https://juejin.cn/post/7060676437518319630
在接下来的几个月中,你还将听到我们更多关于完成对 macOS 和 Linux 的稳定支持,使全套桌面、Web 和移动平台可用于你的生产 Flutter 应用的相关信息。
同时,感谢你对 Flutter 的支持,我们很高兴可以看到你使用 Windows 构建的内容。