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 配置互通,可直接扫码导入,主要功能包括云存储 / 图床 / 云服务器平台,以及

2023-10-15

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

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-04-11

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

2023-09-22

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

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,变化包括新组件和组件主题、更新的组件视觉效果等。开

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 更易

2023-11-25

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

2023-01-04

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

2022-10-29

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

2023-07-27

抓包工具,支持Windows、Mac、Android、IOS, 全平台系统, 使用Flutter框架开发 支持手机扫码连接,不用手动配置Wifi代理,包括配置同步。所有终端都可以互相扫码连接转发流量。 默认Https不是开启的,需要点击加锁图标安装根证书