Flutter 3.13 发布


Flutter 3.13 现已发布,并包含 Dart 3.1。自上次发布以来的三个月时间内,此版本共合并了 724 个 PR。一些更新亮点包括:

Engine

对 Impeller(新图形渲染器)进行了多项改进,并为可折叠设备添加了新的引擎 API。

Impeller

iOS 性能改进

在此版本中继续改进了 Impeller 在 iOS 上的性能。经过多方面的优化,现在 iOS 上的 Impeller 渲染器不仅延迟更低(通过完全消除着色器编译卡顿),而且在某些基准测试中平均吞吐量也更高。在 flutter/gallery 过渡性能基准测试中,平均帧光栅化时间现在约为使用 Skia 时的一半。

这一进步还得益于:

  • 启用脏区管理和部分重绘(flutter/engine#40959)
  • 实现并发渲染通道编码(flutter/engine#42028)
  • 对文本渲染进行了大量改进(flutter/engine#41290、flutter/engine#41780、flutter/engine#42417)
  • 为 convex shapes 添加了快速路径,以避免昂贵的 tessellation calls(flutter/engine#41834)
  • 开始在一些操作中使用计算着色器(flutter/engine#42192)
  • 更热切地删减越界绘制操作(flutter/engine#41606)

Fidelity 改进

在听取并解决用户的反馈后,在使用 Impeller 时,广色域色彩现已成为 iOS 上的默认设置。

Android 上 Impeller 的进度更新

继续在 Impeller 的 Vulkan 后端方面取得进展,但尚未达到官方预览期所需的质量水平。计划将在今年晚些时候以稳定版本的形式进入 Android 版 Impeller 的预览期。

尽管 Android 上的 Impeller 尚未完全准备好进行预览,但 OpenGL 和 Vulkan 后端已受益于过去一年中对 Impeller 的 HAL 所做的许多与后端无关的优化。特别是,Android 的平均帧光栅化时间在 flutter/gallery 转换性能基准测试中也得到了显着改善。进一步的改进正在进行中,以便 Android 上的预览可以达到高质量。

macOS 上的 Impeller(和 Wonderous)

适用于 macOS 的 Impeller 现已推出预览版。用户可以按照 Impeller 页面上的指导测试 Impeller 并在应用程序中启用。

New engine API

改进的可折叠设备支持

为了更好地支持可折叠设备,添加了一个新的 API 来检索显示屏的各种属性。新的 getter FlutterView.display 返回一个 Display 对象。Display 对象会报告显示屏的物理尺寸、设备像素比和刷新率。可查看 setPreferredOrientations 以获取使用新 API 的示例。

Framework

Material

对 Material Framework 进行了多项改进,以 1) 提供更多平台适应性,2) 允许更多自定义,3) 添加新功能。

TextField 的字符识别

在 iOS 上使用 TextField 时,用户将自动看到一个使用设备摄像头识别字符并将其插入字段的选项。

平台自适应对话框

AlertDialog 中添加了自适应构造函数以及自适应函数 showAdaptiveDialog,以根据当前平台显示 Material 或 Cupertino 对话框。

现在使用 AlertDialog.adaptive() 在 iOS 上使用 CupertinoAlertDialog 小部件:

以及 Android 上的 Material AlertDialog。

带年月模式的 CupertinoDatePicker

为 CupertinoDatePicker 添加年月模式。

\

Cupertino (iOS-style) check styled radio

useCheckmarkStyle 属性已添加到 CupertinoRadio 中。这还允许 Radio.adaptive 和 RadioListTile.adaptive 小部件控制它们是否在 iOS 上使用 checkmark style。

应用程序生命周期变化

AppLifeCycleListener

添加了 AppLifecycleListener 类,用于侦听应用程序生命周期中的更改,并响应退出应用程序的请求。

Android

新的支持目标

在此版本中,Flutter 现在支持 Android 14/ API 34。虽然仍在开发 Android 14 中的一些新功能(即预测性返回导航),但开发团队已根据新的 Android SDK 对该版本进行了全面测试,并优先修复用户可能发现的任何相关问题。

iOS

Reduced rotation distortion on iOS

当 iOS 屏幕旋转时,Flutter 应用程序以前会出现一些失真,看起来与原生 iOS 应用程序不同。开发团队做了一些修改来减少失真:

重命名 Runner

创建 Flutter iOS 应用程序时,会在 /ios 文件夹中创建 Runner Xcode 项目和 Xcode 工作区。现在,用户可以重命名工作区或项目,这样就不会出现 Runner 列表了。

为 iOS 17 和 Xcode 15 做准备

随着 iOS 17 和 Xcode 15 即将发布,希望使用此工具链进行开发的用户将需要使用 Flutter 3.13。此外,在下载 Xcode 15 时,还需确保还下载了 iOS 17 模拟器。

破坏性变更和弃用

破坏性变更

下一版本默认 Material 3

下一个Flutter 稳定版本中计划将 ThemeData useMaterial3 默认值从 false 更改为 true。换句话说,应用程序将默认获取 Material 3 颜色、文本样式和其他视觉效果。

可查看 Material 3 demo 预览 M2 和 M3 之间的差异。

Android supported platforms

Flutter 不再支持 Android Jelly Bean API levels(16、17 和 18)。

变更和迁移指南列表

此版本中的破坏性变更包括 v3.10 发布后已弃用的 API。要查看所有受影响的 API 以及其他上下文和迁移指南,可参阅此版本的弃用指南。其中许多都由 Flutter Fix 支持,包括 IDE 中的快速修复,以及使用 dart fix 命令批量应用。

更多详情可查看官方博客。 


相關推薦

2023-08-28

京站,聊聊 AI 大模型与底层技术 >>> PicHoro 是一款基于 flutter 开发的手机端云存储平台 / 图床管理和文件上传 / 下载工具,最新版本 V2.1.3,与 PicGo 配置互通,可直接扫码导入,主要功能包括云存储 / 图床 / 云服务器平台,以及

2024-10-16

Python 3.13 上周正式发布了稳定版,主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。 近日,开发

2024-05-11

Python 3.13 Beta 1 已发布,主要变化包括改进的交互式解释器,以及实验性即时编译器 (JIT),这将带来性能上的提升。 至于备受关注的 no-GIL,目前自由线程构建模式已进入实验阶段。 PEP 703(Making the Global Interpreter Lock Optional,

2023-10-15

Python 3.13.0 首个 alpha 已发布,目前处于非常早期的开发阶段。 本次发布的 Python 3.13 a1 是计划发布的七个 alpha 版本中的第一个。 发布 alpha 是为了更方便地测试新功能、修复错误,以及测试发布过程。请注意,这是一个预览版

2024-10-09

Python 3.13 现已正式发布,这是一个 Python 编程语言的最新主要版本。与 Python 3.12 相比,此版本包含许多新功能和优化。(与上一个候选版本 3.13.0rc3 相比,3.13.0 包含两个小错误修复以及一些文档和测试更改。) Python 3.13 中

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 规范

2024-10-03

Python 3.13.0 RC3 现已发布。公告称,​​除非发现任何严重错误,否则此版本预计将成为 3.13.0 的最终版本。3.13.0 的正式版本现定于 2024-10-07 星期一发布。 RC3 是一个计划外的候选版本,源于临时发现的几个问题。主要是由于增量

2024-10-10

何环境中运行的现代开源高性能 RPC 框架。gRPC 1.67.0 现已发布,包含了一些完善、改进和错误修复;具体更新内容如下: Core [ruby] 将 INFO log 缩减为 DEBUG log(反向移植 #37633)(#37686) [release] 将 core 版本升级至 44.0.0(#37

2024-08-17

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

2023-09-22

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

2024-04-11

Python 3.12.3 和 3.13.0a6 现已发布。v3.12.3 是最新的维护版本,包含 300 多个 commit;v3.13.0a6 则是 Python 3.13 的最后一个 alpha 版本,距离该版本功能冻结还有最后的一个月。 3.13 的亮点内容包括: 在交互式解释器中,异常回溯现在

2022-03-02

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

2023-05-11

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