Flutter 3 发布,一文看懂新功能及特性

2022 年 5 月 11 日,Google I/O 版:Flutter 3 发布。

Flutter 3是手机/phone、桌面/desktop和WEB上进行跨平台 UI 开发之旅的高潮。Flutter 3 完成了Google从以移动为中心到多平台框架的路线图,Flutter 3提供了 macOS 和 Linux 桌面应用程序支持、进一步的性能改进、手机端和 Web 端相关的更新等等。此外还有关于减少对旧版本 Windows 的支持,以及对 Firebase 集成的改进、新的生产力和性能特性,并支持 Apple Silicon。

Flutter 3 发布,一文看懂新功能及特性
Flutter 3

Flutter 3 目前已完成对 6 个主要平台的稳定支持。现在,Flutter 可用于构建跨 Android、iOS、Web(桌面)、Linux、Windows 桌面和 macOS 的生产级应用程序。

添加平台支持需要的不仅仅是渲染像素:它包括新的输入和交互模型、编译和构建支持、可访问性和国际化以及特定于平台的集成。谷歌方面表示,其目标是让用户能够灵活地充分利用底层操作系统,同时根据自己的选择共享尽可能多的 UI 和逻辑。

在 macOS 上,Flutter 原生支持 Intel 和 Apple Silicon。在 Linux 上,Canonical 和 Google 合作提供了一个高度集成的、同类最佳的开发选项。Flutter 3 还包含了一些性能改进、Material You 支持和生产力更新。

“在这个版本中,Flutter 完全原生于 Apple 芯片上进行开发。虽然 Flutter 自发布以来一直与基于 M1 的 Apple 设备兼容,但 Flutter 现在充分利用了 Dart 对  Apple 芯片的支持,从而能够在基于 M1 的设备上更快地编译并支持 macOS 应用程序的通用二进制文件。”

稳定版 Flutter 已经支持所有桌面平台

Linux 和 macOS 已达进入稳定版本阶段,其中级联菜单和对 macOS 系统菜单栏的支持

现在可以使用 PlatformMenuBar 在 macOS 上创建菜单栏,该 Widget 支持仅插入平台菜单,并控制 macOS 菜单中显示的内容。

Flutter 3 发布,一文看懂新功能及特性
flutter macOS支持

Material 3

Flutter 3 支持Material Design 3,即下一代 Material Design。

Flutter 3 为 Material 3 提供了更多可选支持,包括 Material You 功能如:动态颜色,新的颜色系统和排版、组件的更新以及 Android 12 中引入的新视觉效果,如新的触摸波纹设计和拉伸过度滚动效果

它可让开发人员设计开发更为优秀的跨平台系统:

Flutter 3 发布,一文看懂新功能及特性
Flutter 3 Material Design 3

主题扩展

Flutter 现在可以使用名为 Theme extensions 的概念向 Material 的 ThemeData 添加任何内容,开发者可以通过 ThemeData.extensions 去添加自己想要的内容,而不是(在 Dart 意义上)继承 ThemeData 并重新实现其copyWithlerp和其他方法。

此外,作为 package 开发人员,你可以提供 ThemeExtensions 相关内容,有关此内容的更多详细信息,请参阅flutter.dev/go/theme-extensions并 和 GitHub 上 的示例

Flutter Casual Games Toolkit/Flutter 休闲游戏工具包

对于大多数开发者来说,Flutter 是一个应用框架。但是,休闲游戏开发社区也在不断壮大,利用 Flutter 提供的硬件加速图形支持以及 Flame 等开源游戏引擎。我们希望让休闲游戏开发者更容易上手,因此在今天的 I/O 大会上,我们宣布推出Flutter休闲游戏工具包,它提供了模板和最佳实践的入门工具包以及广告和云服务积分。

Flutter 3 发布,一文看懂新功能及特性
Flutter Casual Games Toolkit

尽管 Flutter 并非专为高强度 3D 动作游戏而设计,但即使是其中一些游戏也已转向 Flutter 的非游戏 UI,包括拥有数亿用户的热门游戏,例如 PUBG Mobile《绝地求生》的手机版。对于 I/O,我们想看看我们可以将我们的技术推到多远,所以我们创建了一个有趣的弹球游戏PINBALL,由 Firebase 和 Flutter 的网络支持提供支持。 I/O Pinball 提供了一个围绕 Google 最喜欢的四个吉祥物设计的自定义表格:Flutter 的 Dash、Firebase 的 Sparky、Android 机器人和 Chrome 恐龙,让您与其他人竞争高分。我们认为这是展示 Flutter 多功能性的一种有趣方式。

Flutter 3 发布,一文看懂新功能及特性
Flutter非游戏UI案例
Flutter 3 发布,一文看懂新功能及特性
Flutter pinball

Flutter 与 Firebase 的集成更新

“今天,我们宣布 Flutter/Firebase 的集成将成为 Firebase 产品的一个完全支持的核心部分。我们正在将源代码和文档转移到主要的 Firebase 存储库和站点中,你可以期望我们与 Android 和 iOS 同步发展 Firebase 对 Flutter 的支持。”

此外,还进行了重大改进,以支持使用 Firebase 流行的实时崩溃报告服务 Crashlytics 的 Flutter 应用程序。通过 Flutter Crashlytics 插件的更新,你可以实时跟踪致命错误,为你提供与其他 iOS 和 Android 开发人员相同的功能集。并简化了插件设置过程,因此只需几个步骤即可从你的 Dart 代码中启动和运行 Crashlytics。

全面支持所有桌面平台上的国际文本输入

国际文本输入,包括使用文本输入法编辑器 (IME) 的语言,如中文、日文和韩文,在所有三个桌面平台上都得到全面支持,包括第三方输入法,如搜狗和谷歌日文输入法。

所有桌面平台的可访问性

Flutter for Windows、macOS 和 Linux 支持无障碍服务,例如屏幕阅读器、无障碍导航和倒置颜色。

macOS 上默认的通用二进制文件

从 Flutter 3 开始,Flutter macOS 桌面应用程序构建为通用二进制文件,原生支持现有的基于 Intel 的 Mac 和 Apple 最新的 Apple Silicon 设备。

弃用 Windows 7/8 进行开发

在此版本中,我们将推荐的用于开发的 Windows 版本提升到 Windows 10。虽然我们不会阻止在旧版本(Windows 7、Windows 8、Windows 8.1)上进行开发,但 Microsoft 不再支持这些版本,我们提供对这些版本的有限测试。虽然我们将继续为旧版本提供“尽力而为”的支持,但我们鼓励您升级。

注意:我们继续为在 Windows 7 和 Windows 8 上运行的 Flutter 应用程序提供支持;此更改仅影响推荐的开发环境。

Flutter 3相关

Flutter 3介绍:Introducing Flutter 3

Flutter 3 中的新功能:What’s new in Flutter 3

Flutter 更新栏目:Flutter What’s new

Flutter 3.0.0 发行说明:Flutter 3.0.0 release notes

国内大厂应用在移动端 Flutter 框架使用分析