Flutter 3.35 发布


Flutter 3.35 现已发布。本次更新旨在提升用户工作效率,并带来了稳定版的 Web 状态热重载(hot reload)和实验性的 Widget Previews 功能。

Web

Web 上的状态热重载现已默认启用

从 3.35 开始,Flutter Web 将默认启动热重载。“我们的目标是在所有平台上提供无缝且一致的热重载体验。虽然你仍然可以使用 flag 禁用此功能,但我们计划在未来的版本中移除此功能。”

Wasm dry runs

为了将 WebAssembly (Wasm) 作为 Web 的默认构建 target,现在每个 JS build 都会执行一次 Wasm 的 “dry run” 编译,它会通过一系列检查确定应用程序的 Wasm 适配情况,并将结果以警告形式发送到控制台,此功能可通过--(no-)wasm-dry-run标志切换。

Framework

此版本带来了一系列改进,赋予开发者更多控制权,并优化了辅助技术用户的开箱即用体验。

在 Flutter Web 应用与屏幕阅读器及其他工具的通信方面取得了重大进展。针对国际用户新增了语义语言环境支持 ( #171196 ),确保无障碍功能能够以用户偏好的语言呈现。

新的SemanticsLabelBuilder小部件 (#171683) 简化了将多个数据点组合成单一、连贯公告的过程,无需进行繁琐的字符串连接。对于复杂的可滚动视图,可以使用新的SliverEnsureSemantics小部件(#166889)来包装 slivers,确保它们始终在语义树中表示,即使滚动出视图也是如此。

此版本包含许多修复程序,可提高核心小部件的可访问性。

  • 在 iOS 上,CupertinoSliverNavigationBar现在可以正确遵循可访问的文本缩放(#168866),并且 VoiceOver 选项卡激活行为现在可以正常工作(#170076)。
  • 对于 Android,Talkback 问题现在可在使用平台视图 (#168939) 时解决,这对于嵌入本机组件的应用程序来说是一个关键的修复。
  • CustomPainter(#168113)的语义属性现已填充支持,使用户能够使自定义绘制的 UI 完全可访问。
  • text selection toolbar 现在可正确对齐从右到左 (RTL) 的语言,从而改善体验 ( #169854 )。

Material 和 Cupertino

添加了全新的、备受要求的组件,并对现有组件进行了重大改进。

  • 引入 DropdownMenuFormField(#163721):现在可以轻松地将 M3DropdownMenu直接集成到表单中。
  • Scrollable NavigationRail(#169421):现在可以将NavigationRail配置为滚动。
  • NavigationDrawer 页眉和页脚(#168005):现在可以向NavigationDrawer添加页眉和页脚,从而提供更多的布局灵活性。
  • 引入 CupertinoExpansionTile(#165606):使用新的CupertinoExpansionTile小部件创建可扩展和可折叠的列表项。

此版本的一个关键主题是完善小部件:

  • 许多 Cupertino 小部件已更新为使用RSuperellipse形状 ( #167784 ),为它们提供 iOS 用户期望的标志性连续角外观。
  • 为了让应用程序感觉更生动、更原生,为关键交互组件(如CupertinoPicker(#170641)和CupertinoSlider(#167362))添加了触觉反馈。
  • 现在可以将的Slider值指示器配置为始终可见(#162223)。

此外,对于构建复杂滚动的场景,现在可以明确控制 slivers 的绘制顺序(或 z 顺序)( #164818),从而可实现高级效果,例如与其他 slivers 重叠的“粘性”标题,而不会出现视觉故障。

添加了几个新功能,让用户可以更好地控制应用程序的 navigation 和 routing。

  • 全屏对话框 ( #167794 ):ModalRoute(及其所有后代)和 showDialog 都新增了 fullscreenDialog 属性,允许自定义对话框路由的 navigation 行为
  • 表单改进(#167060): FormField现在包含一个 onReset 回调,使得处理表单清除逻辑变得更加容易。

多窗口支持(引擎)

Canonical 的朋友们在添加多窗口应用程序支持方面继续取得卓越进展。在此版本中,他们实现了在 Windows 和 macOS 中创建和更新窗口的基础逻辑 ( #168728 )。后续版本将更新 Linux 系统,并引入实验性 API 以支持多窗口功能。

文本输入和选择改进

  • 更加统一的手势系统:PositionedGestureDetails接口的引入(#160714)统一了所有 pointer-based的手势的细节,并允许用户编写更通用的手势处理代码。
  • iOS single-line scrolling(#162841):为了更好地与原生 iOS 行为保持一致,用户不再可滚动单行文本字段。

Android home/end 键支持(#168184):添加了对 Android 上的HomeEnd键盘快捷键的支持。

展望:解耦 Flutter 的设计库

随着 Flutter 生态系统的不断发展和成熟,核心框架也必须随之发展。其中,关键在于确保 Flutter 的各个部分都能以最能服务社区的速度不断发展。为此,项目团队正在着手将 Material 和 Cupertino 库从 Flutter 核心框架中移出,并将它们放入各自的独立包中。

iOS

官方正在积极优化 Flutter 与 iOS 26 测试版]的兼容性。

Android​​​​​​

在 Android 上,从 3.35 开始可以在 Flutter 应用中使用 SensitiveContent ,在媒体投影期间保护敏感的用户内容,在 API 35 及更高版本中,可以使用该控件在屏幕共享期间遮挡整个屏幕,从而帮助防止数据被盗。

Engine

3.35 版本继续专注于提升 Impeller 的性能和兼容性。此外还投入了大量资金以支持 iOS 平台的UISceneDelegate接口,并引入了其他工具改进。

更多详情可查看官方公告。


相關推薦

2022-05-12

谷歌宣布推出  Flutter 3。Flutter 3 完成了谷歌从以移动为中心到多平台框架的路线图,提供了 macOS 和 Linux 桌面应用程序支持,以及对 Firebase 集成的改进、新的生产力和性能特性,并支持 Apple Silicon。 公告指出,Flutter 3 是谷歌

2022-09-01

Flutter 3.3 现已发布,此版本专注于完善和性能改进,以强化三个月前发布的 Flutter 3 中所提供的功能。自 Flutter 3 发布以来,Flutter 已经合并了 5,687 个 PR。此版本通过几个新组件和一些错误修复扩展了对不断发展的 Material 3 规范

2023-08-19

Flutter 3.13 现已发布,并包含 Dart 3.1。自上次发布以来的三个月时间内,此版本共合并了 724 个 PR。一些更新亮点包括: Engine 对 Impeller(新图形渲染器)进行了多项改进,并为可折叠设备添加了新的引擎 API。 Impeller iOS 性能改

2024-08-17

源了自研 Unify 框架,旨在解决大规模跨端落地场景下,Flutter 与原生模块之间的通信问题。Unify 通过平台无关的模块抽象、灵活的实现注入、自动代码生成等特性,为开发者提供高效、灵活、易用的 Flutter 混合通信能力。 开源

2025-04-11

Flutter 团队公布了 2025 年的 Roadmap,涵盖移动平台(Android 和 iOS)、Web 平台、桌面、核心框架、Dart、工具和 AI 等相关模块的计划。 可访问性 2024 年,我们完成了对移动平台(iOS 和 Android)上可访问性的几个关键用例的验证

2023-09-22

掉? OpenHarmony SIG 组织在 Gitee 开源了兼容 OpenHarmony 的 Flutter。该组织主要用于孵化 OpenHarmony 相关的开源生态项目。 ▲ 仓库地址:https://gitee.com/openharmony-sig/flutter_flutter 根据 README 的描述,此仓库是基于 Flutter SDK 对 OpenHarmo

2023-05-11

Flutter 3.10 现已发布,此版本包括了对 Web、mobile、图形、安全性等方面的许多改进。 一些更新亮点包括: Material 3:Material 库现在符合最新的 Material Design spec,变化包括新组件和组件主题、更新的组件视觉效果等。开

2022-03-02

微软方面发布了关于支持用 Flutter 开发可折叠设备的更新公告。此前,他们曾向用户展示了在 Flutter Framework 和 Engine 上打开的 PR。目前,Engine PR 已合并;最初的 Framework PR 则被拆分成更小的 PR,其中一些也已被合并。 图

2023-07-15

RustDesk 1.2 现已发布,此版本采用Flutter重写桌面版本,支持Wayland被控。 一些值得关注的变化有: 用 Flutter 重写 支持ipv6(Beta) 增加一次性密码 QuickSupport (Beta) 硬件编解码器 H264 / H265(Beta) AV1编解码器 国际键盘

2023-05-07

Serverpod 是一个新一代的应用程序和 Web 服务器,专为 Flutter 和 Dart 生态构建。它允许你用 Dart 编写你的服务器端代码,自动生成你的 API,Serverpod 是开源的,可以在任何地方托管你的服务器。 Serverpod 1.1 版本使 Serverpod 更易

2024-05-08

目前的版本相比上次更新做了如下主要改进: 对于video_player官方不支持的平台(目前为windows和linux),现在无需添加任何代码,仅需在pubspec.yaml添加 fvp 作为依赖就能获得该平台的支持。 升级ffmpeg至7.0 所有平台均已支

2023-01-04

Ubuntu 开发一套新的安装程序。该安装程序将会充分利用 Flutter、Curtin(旨在快速安装 Ubuntu) 和 Subiquity(Ubuntu Server 安装程序和设置工具) 等技术的优势。 之所以要开发一套全新的安装程序,这其中最主要的原因还是现有技术

2023-11-25

后九年里,他一直致力于打造跨平台应用程序开发框架 Flutter。 希克森写道,Flutter 是“老谷歌人”最后推出的项目之一,属于 Larry Page 在 Alphabet 创建前不久发起的一系列雄心勃勃的实验的一部分。Flutter 团队基本上也像一家

2022-10-29

到 GNOME 44。 一年前多之前,Ubuntu 母公司 Canonical 曾宣布 Flutter 将成为未来创建 Ubuntu 桌面和移动应用程序的默认选择,还推出了使用 Flutter 创建的全新 Ubuntu 桌面安装器 (Ubuntu Desktop Installer)。 现在,经过接近两年的开发,期待