一文掌握Flutter for Windows桌面端稳定版新特性

自从Flutter 创建以来,Flutter就致力于打造一个能够构建精美的、可高度定制的、并且可以编译为机器码的跨平台应用解决方案,以充分发挥设备底层硬件的全部图形渲染能力。今天,Flutter 对 Windows 生产版本的正式支持是对这一愿景实现的重要标志。它使 Windows 开发者也能享受到移动开发的相同生产力和功能。
一文掌握Flutter for Windows桌面端稳定版新特性_第1张图片

Flutter 的目标是在任何平台上为你提供出色的构建体验,并且Flutter想要打造的是:只需要使用同一套核心框架和工具完成这个目标。通过 Flutter,你可以自由打造 优美 的使用体验,使你的品牌和设计脱颖而出;它还拥有 极高 的执行速度,因为它会被直接编译为机器码;而通过支持有状态的热重载功能以提供交互式的体验,让你可以在应用运行时直接看到代码更改后的结果,从而获得 生产力 提升。Flutter 是开放的,成千上万的贡献者参与到核心框架的构建,或是通过 package 和插件生态系统对其进行扩展。

截止目前,已经有近 50 万个应用程序使用 Flutter 进行构建

迄今为止,Flutter看到这股趋势已经超出了Flutter的预期。包括一些大公司例如 Betterment、宝马以及字节跳动等,还有 Google 内部三十多个团队都使用了 Flutter。根据 Statista 以及 SlashData 的统计,Flutter 在 2021 年已经成为了最流行的跨端 UI 工具包。

一文掌握Flutter for Windows桌面端稳定版新特性_第2张图片

Flutter自己的数据也能支持这一点,在 2021 年四个季度的开发者调查中,有 92% 的 Flutter 开发者对Flutter提供的工具表示满意。(对于另外 8% 的人,Flutter正在倾听你的反馈,希望也能得到你的满意)。

这其中共同的需求之一就是对 Windows 的支持,

在发布的 Flutter 2.10 稳定版中,已经全面支持构建 Windows 桌面端应用程序了!

Windows 与 Flutter

几年前,Flutter团队为 Flutter 制定了一个宏大的愿景,即从 iOS 和 Android 的移动端应用上扩展到其他平台,其中就包括 Web 端和桌面端

Flutter 的核心部分是跨平台的:从可移植的硬件加速的 Skia 图形渲染引擎,到 Flutter 的渲染系统的核心单元,例如动画、主题、文本输入以及国际化,Flutter 提供了上百个 widgets。

然而桌面端并不只是移动应用运行在一个更大的屏幕上这么简单,它们从设计上来说就很不一样。从输入设备角度来看,桌面端有键盘和鼠标,它们会在显示器上运行多个可变大小的窗口。而对于辅助功能 (Accessibility)、输入法、视觉样式等关键内容都有不同的规则约束。并且它们还和底层操作系统中不同的 API 进行集成:桌面应用支持从系统的文件选择器到设备硬件再到 Windows 注册表等数据存储的所有内容。

所以当Flutter团队把 Flutter 带到 Windows 上时,Flutter也需要为它进行定制。

正如Flutter对 Android 和 iOS 的支持那样,对 Windows 的实现也包括了 Dart 框架以及 C++ 的引擎。Windows 与 Flutter 通过承载了 Flutter 引擎的 嵌入层(Embedder) 进行通信,翻译以及发送 Windows 都是 嵌入层 的职责范围。Flutter 与 Windows 共同将你的 UI 绘制到屏幕上,处理窗口大小调整和 DPI 更改等事件,并与已有的 Windows (如输入法编辑器) 配合使用。

一文掌握Flutter for Windows桌面端稳定版新特性_第3张图片

在 Windows 上,Flutter 使用了一套完全相同的 Dart 代码,但是能够使用 Windows 的 API。

你的应用能够使用 Flutter 框架的全部功能,在 Windows 上,它还可以直接通过 Dart 的 C 互操作层或使用用 C++ 编写的平台插件与 Win32、COM 和 Windows 运行时 API 进行通信。Flutter还适配了许多常用插件以包含对 Windows 的支持,包括camerafile_pickershared_preferences。更重要的是,社区已经添加了各种其他 package 对 Windows 的支持,涵盖了从 Windows 任务栏集成到串行端口访问的全部内容。

一文掌握Flutter for Windows桌面端稳定版新特性_第4张图片

要完全为 Windows 的 UI 进行定制,你也可以使用例如像是 fluent_ui 以及 flutter_acrylic 这样的 package 创造具有 Microsoft Fluent 设计美学的应用。而且使用 msix 工具能将你的应用包装进安装器,这样就可以上传到 Windows 上的 Microsoft Store。

总的来说,这促进了在 Window 平台上创建应用程序。以极快的速度在 Windows 上运行的同时还能转到其他桌面或者移动应用以及 web 平台上运行。让Flutter来看看到目前为止的一些早期样例:

Microsoft 与 Flutter

Flutter曾询问过 Windows 团队是否愿意分享一些对 Flutter 支持的话。这是微软公司 Windows 开发者平台副总裁 Kevin Gallo 的评论:

"Flutter团队很高兴看到 Flutter 增加了对创建 Windows 应用程序的支持。Windows 是一个开放的平台,Flutter欢迎所有开发人员。Flutter团队很高兴看到 Flutter 开发人员将他们的体验带到 Windows 上,并发布到 Microsoft Store。对 Windows 的支持是 Flutter 社区的一大步,Flutter也迫不及待地想看看你能为 Windows 带来哪些令人惊叹的应用!”

事实上,许多 Microsoft 的团队也都为今天的发布做出了很大贡献。Flutter特别想要感谢 Fluent design 团队对于支持 Windows 上 Flutter 应用的图标做出的贡献。他们高质量的 fluentui_system_icons package 已经加入到 Flutter Favorite 项目中了。

同时,Microsoft 围绕 Windows 可访问性所做的投入也给Flutter留下了深刻的印象,非常感谢该团队的帮助,以确保 Flutter 从第一天起就能够为屏幕阅读器提供支持。将无障碍功能视为额外的需求是错误的。正如 Microsoft 包容性设计工具包 中的这张图片所示,Flutter必须要关注提供永久、临时或不同情境下需求的体验。

一文掌握Flutter for Windows桌面端稳定版新特性_第5张图片

下面的视频演示了 Flutter 如何集成 Windows 讲述人 (Windows Narrator) 功能。出于本视频的目的,Flutter特意模糊了屏幕,让你了解此功能对需要它的用户的价值。

插入视频

Windows 讲述人是一个为 Windows 打造的屏幕阅读器,它同样能够在 Flutter 应用中良好的运行。

Windows 开发生态工具集

Flutter的开发工具合作伙伴们也开始为 Windows 桌面端应用程序开发增加支持,比如:

  • FlutterFlow 是低代码、拖拽式生成 Flutter 应用的工具,FlutterFlow 今天正式宣布支持了 Windows 平台,同时还宣布了一些帮助 Flutter 开发者建立桌面应用的很多功能。
  • Realm 是一个快速的本地数据存储服务。今天发布的最新版本支持使用 Flutter 构建Windows 桌面端应用程序,他们使用 Dart FFI 快速访问底层数据库,并增加了他们对 iOS 和Android 等移动平台的现有支持。
  • Nevercode 团队更新了他们的 Codemagic CI/CD tool 工具并开始支持 Windows 桌面端,你可以在云端测试和构建 Windows 应用,并将其发布到 Microsoft Store。
  • Syncfusion 更新了工具套件以充分发挥在 Windows 平台的优势。如果你在使用他们提供的服务,你会发现他们的数据可视化组件,比如树状图、线性规、火花图表,日历组件甚至是 PDF 和 Excel 生成组件都已经支持了 Flutter,Syncfusion Flutter widget 是用 Dart 原生构建的。
  • 近期,Rive 宣布推出其流行的图形工具套件的 Windows 版本,它能够让设计人员和开发人员创建交互式矢量动画,这些动画可以使用状态机实时响应代码。即将推出的 Windows 版本的应用程序提供了惊人的性能和更低的内存占用,并将很快将在 Microsoft Store 中提供下载。

一文掌握Flutter for Windows桌面端稳定版新特性_第6张图片

看到围绕着 Flutter 的建立的成熟生态,Flutter非常激动,在你开始使用 Flutter 构建 Windows 应用的时候,Flutter鼓励你多尝试一下生态里的这些合作伙伴的服务和工具。

Flutter 2.10 中的 Windows 平台支持

作为 Flutter 2.10 正式版的一部分,Flutter 已经可以为 Windows 平台构建应用程序提供稳定的、具备生产质量的支持,Flutter 2.10 还包含诸多其他新特性和性能改进以及错误修复,在今天的另一篇推文中已经详细介绍。

在未来几个月里,Flutter会发布更多为 macOS 和 Linux 平台提供稳定版支持的消息,让你可以通过 Flutter 为更全的桌面平台、Web 平台和移动端平台构建精美应用!

一文掌握Flutter for Windows桌面端稳定版新特性_第7张图片

最后

Flutter精彩课程推荐

  • Flutter高级进阶实战 仿哔哩哔哩APP
  • Flutter从入门到进阶实战携程网App

你可能感兴趣的:(Flutter从入门到进阶,Android开发高手进阶,flutter,windows,android)