文 / Tim Sneath, Google Flutter & Dart 产品经理
Flutter 在成立之初,我们致力于创建一个跨平台应用解决方案,可以构建精美、高度定制、编译成机器代码,以充分发挥设备底部硬件的所有图形渲染能力。今天,Flutter 对 Windows 正式支持生产版本是实现这一愿景的重要标志。它使 Windows 开发者还可以享受移动开发的相同生产力和功能。

Flutter 目标是在任何平台上为您提供良好的建设体验,我们想要建立的是使用相同的核心框架和工具来实现这个目标。 Flutter,可自由制作 使用体验使您的品牌和设计脱颖而出;它也有 执行速度,因为它将直接编译成机器代码;通过支持状态热负载功能提供交互式体验,您可以在应用程序运行中直接看到代码更改的结果 提升。Flutter 它是开放的,成千上万的贡献者通过构建核心框架或通过 package 扩展插件生态系统。
到目前为止,已经 50 使用万个应用程序 Flutter 进行构建
到目前为止,我们已经看到这种趋势超出了我们的预期。包括一些大公司,比如 Betterment[1]、还有宝马和字节跳动, Google 内部有30多个团队使用 Flutter。根据 Statista 以及 SlashData 的统计,Flutter 在 2021 成为最受欢迎的跨端 UI 工具包。
我们自己的数据也能支持这一点,在 2021 在年四季度的开发者调查中,有 92% 的 Flutter 开发人员对我们提供的工具很满意。(对于其他工具 8% 是的,我们在听你的反馈,希望能得到你的满意)。
其中一个共同的需求是对的 Windows 的支持,
“今天,我们很高兴宣布我们这次发布了什么 Flutter 在稳定版全面支持构建 Windows 桌面端应用程序!
”
Windows 与 Flutter
几年前,我们做到了 Flutter 从 iOS 和 Android 将移动应用程序扩展到其他平台,包括 Web 端和。
Flutter 核心部分是跨平台的从可移植硬件加速 Skia 图形渲染引擎,到 Flutter 动画、主题、文本输入、国际化等渲染系统的核心单元,Flutter 提供数百个 widgets。
然而,桌面端并不像在更大的屏幕上运行移动应用那么简单,它们的设计也非常不同。从输入设备角度来看,桌面端有键盘和鼠标,它们会在显示器上运行多个可变大小的窗口。辅助功能 (Accessibility)、输入法、视觉风格等关键内容有不同的规则约束。它们也不同于底层操作系统 API 集成:桌面应用支持从系统文件选择器到设备硬件再到 Windows 数据存储的所有内容,如注册表。
所以当我们把 Flutter 带到 Windows 我们也需要定制它。
正如我们对 Android 和 iOS 支持,对 Windows 还包括实现 Dart 框架以及 C 的引擎。Windows 与 Flutter 通过承载了 Flutter 引擎的 通信、翻译和发送 Windows 都是 职责范围。Flutter 与 Windows 共同将你的 UI 绘制到屏幕上,处理窗口大小调整和 DPI 变更和其他事件,以及现有事件 Windows (如输入法编辑器) 配合使用。
在 Windows 上,Flutter 使用一套完全相同的套装 Dart 但是可以使用代码 Windows 的 API。
可以使用您的应用程序 Flutter 框架的所有功能,在 Windows 它也可以直接通过 Dart 的 C 互操作层或使用 C 平台插件及编写 Win32、COM 和 Windows 运行时 API 通信。我们还适用于许多常用的插件,包括对准 Windows 支持,包括camera
,file_picker
和shared_preferences
。更重要的是,社区已经添加了各种其他东西 package 对 Windows 支持,涵盖从 Windows 任务栏集成到串行端口访问的所有内容。
要完全为 Windows 的 UI 也可以定制,比如 fluent_ui[2] 以及 flutter_acrylic[3] 这样的 package 创造具有 Microsoft Fluent 设计美学的应用。 msix[4] 工具可以将您的应用程序包装到安装器中,以便上传到安装器中 Windows 上的 Microsoft Store。
总的来说,这促进了 Window 在平台上创建应用程序。以极快的速度 Windows 它还可以转移到其他桌面或移动应用程序和 web 运行在平台上。让我们来看看一些早期的例子:
Microsoft 与 Flutter
我们问过 Windows 团队愿意分享一些吗? Flutter 支持的话。这是微软公司 Windows 开发平台副总裁 Kevin Gallo 的评论:
“"我们很高兴看到 Flutter 增加造增加 Windows 支持应用程序。Windows 这是一个开放的平台,我们欢迎所有的开发人员。很高兴看到 Flutter 开发人员给他们带来经验 Windows 上,并发布到 Microsoft Store。对 Windows 的支持是 Flutter 我们迫不及待地想看到你能为社区迈出一大步 Windows 带来哪些惊艳的应用!
”
其实很多 Microsoft 团队也为今天的发布做出了巨大贡献。我们特别想感谢 Fluent design 支持团队 Windows 上 Flutter 应用图标的贡献。他们的高质量 fluentui_system_icons[5] package 已经加入到 Flutter Favorite 项目中了。
同时,Microsoft 围绕 Windows 可访问性的投资也给我们留下了深刻的印象,非常感谢团队的帮助,以确保 Flutter 从第一天开始开始支持屏幕阅读器。将无障碍功能视为额外需求是错误的。 Microsoft 包容性设计工具包[6] 如图所示,我们必须注意在不同情况下提供永久、临时或需求的体验。
下面的视频演示 Flutter 如何集成 Windows 讲述人 (Windows Narrator) 功能。为了这个视频,我们特别模糊了屏幕,让你知道这个功能对需要它的用户的价值。
Windows 叙述者是一个人 Windows 它还可以创建屏幕阅读器 Flutter 运行良好。
Windows 开发生态工具集
我们的开发工具合作伙伴也开始工作 Windows 增加对桌面端应用程序开发的支持,如:
FlutterFlow[7] 低代码,拖动生成 Flutter 应用工具,FlutterFlow 今日正式宣布支持 Windows 平台还宣布了一些帮助 Flutter 开发者建立了桌面应用的许多功能。
Realm 本地数据存储服务速度快。今天发布的最新版本支持使用 Flutter 构建Windows 桌面端应用程序[8],他们使用 Dart FFI 快速访问底层数据库并添加它们 iOS 和Android 现有的移动平台支持等。
Nevercode 团队更新了他们的 Codemagic CI/CD tool[9] 并开始支持工具 Windows 您可以在云端测试和构建桌面端 Windows 并将其发布到应用程序中 Microsoft Store。
Syncfusion[10] 更新工具套件,充分发挥作用 Windows 平台优势。如果你使用他们提供的服务,你会发现他们的数据可视化组件,如树形图、线性规则、火花图表、日历组件甚至 PDF 和 Excel 生成组件都已经支持了 Flutter,Syncfusion Flutter widget 是用 Dart 原建。
近期,Rive[11] 宣布推出其流行的图形工具套件 Windows 该版本允许设计师和开发人员创建交互式矢量动画,使用状态机实时响应代码。即将推出 Windows 该版本的应用程序提供了惊人的性能和较低的内存占用,并将很快进行 Microsoft Store 提供下载。
看围绕着 Flutter 的建立的成熟生态,我们非常激动,在你开始使用 Flutter 构建 Windows 应用的时候,我们鼓励你多尝试一下生态里的这些合作伙伴的服务和工具。
Flutter 2.10 中的 Windows 平台支持
作为 Flutter 2.10 正式版的一部分,Flutter 已经可以为 Windows 平台构建应用程序提供稳定的、具备生产质量的支持,Flutter 2.10 还包含诸多其他新特性和性能改进以及错误修复,在今天的另一篇推文中已经详细介绍。
在未来几个月里,我们会发布更多为 macOS 和 Linux 平台提供稳定版支持的消息,让你可以通过 Flutter 为更全的桌面平台、Web 平台和移动端平台构建精美应用!
再次感谢大家对 Flutter 的支持,期待看到你为 Windows 平台构建的精彩应用程序!
如果你想将上面这个图片当作桌面背景,请点击点击这个链接下载原图: https://files.flutter-io.cn/images/branding/desktop/dash2022_4k.png
致谢
原文: Announcing Flutter for Windows
链接: https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed
翻译: Vadaski
审校: Luke
制图: Lynn
文内链接
[1]
Betterment 使用 Flutter 的案例: https://verygood.ventures/success-stories/betterment
[2]使用 fluent_ui package 实现具有 Microsoft Fluent 设计美学的设计: https://pub.flutter-io.cn/packages/fluent_ui
[3]使用 flutter_acrylic package 实现具有 Microsoft Fluent 设计美学的设计: https://pub.flutter-io.cn/packages/flutter_acrylic
[4]使用 msix 工具打包发布 Windows 桌面应用程序: https://pub.dev/packages/msix
[5]Fluent design 团队开发的 fluentui_system_icons package: https://pub.dev/packages/fluentui_system_icons
[6]Microsoft 包容性设计工具包: https://www.microsoft.com/design/inclusive
[7]低代码、拖拽式生成 Flutter 应用的工具 FlutterFlow 官网: https://flutterflow.io/
[8]Realm 今天宣布支持使用 Flutter 构建Windows 桌面端应用程序: https://www.mongodb.com/developer/article/introducing-realm-flutter-sdk
[9]Nevercode 开发的 Codemagic CI/CD 工具: https://flutterci.com/
[10]Syncfusion 官网的 Flutter widget 介绍界面: https://www.syncfusion.com/flutter-widgets
[11]创建交互式矢量动画的工具 Rive 官网: https://rive.app/