大数跨境

Flutter 3.44 现已推出|一文详解重磅更新,助力您高效开发

Flutter 3.44 现已推出|一文详解重磅更新,助力您高效开发 谷歌开发者
2026-07-03
4
导读:Flutter 3.44 现已正式发布。欢迎您阅读本文了解详细更新内容,并即刻体验这些新功能、新特性,期待看到您使用 Flutter 构建的精彩内容,也期待与您共建 Flutter 与 Dart 生态

作者 / Khanh Nguyen

Flutter 3.44 正式发布,带来多项重磅更新。此版本标志着 Flutter 开始适用于 Android 的 Hybrid Composition++、iOS/macOS 全新默认工具 Swift Package Manager,以及支持针对 Impeller 改进的 Vulkan。我们与 Canonical 合作推出了桌面多窗口支持预览版,并通过将 Material 和 Cupertino 从核心框架解耦,开启重大架构升级。通过 GenUI 重新定义智能体用户体验,借助 Agentic Hot Reload、Dart Agent Skill 和 Flutter Agent Skill 重塑开发者体验。从 2026 年丰田 RAV4 多媒体系统到即将推出的 LG webOS SDK,Flutter 正在为下一代应用赋能。

今年 Google I/O 大会的 Flutter 主题是:Flutter 无处不在,无时不在,集众智而建,为大众而生。

"无处不在,无时不在" 源于对 Flutter 应用融入生活方方面面的感悟。数据显示,pub.dev 生态系统热度空前,过去 30 天软件包下载量超过 13 亿次。Flutter 现在是两大应用商店中受欢迎程度排名第二的移动开发 SDK,月活跃开发者超过 150 万,一年内增加了 50%。

"集众智而建,为大众而生" 体现了全球社区的贡献。超过 1,700 名贡献者在过去一年向核心代码库提交了 5,800 项变更。仅在此发布周期中,收到来自 178 位不同贡献者的 972 次提交,其中包括 61 位新贡献者的首次提交。社区的助力始终是 Flutter 的命脉。

更多新变化将在本文中展开,推荐查看 Dart 3.12 版本中的更改:https://dart.dev/blog/announcing-dart-3-12

开发者体验

我们致力于提高使用 Flutter 构建应用的效率,无论是手动编写代码还是使用编码智能体。在此版本中,改进了现有的开发者工具套件,并引入新工具增强开发工作流。

DevTools 性能提升

引入更细颗粒度的分析提高效率,已针对包含大量文件或目录的项目进行了分析性能改进。进一步提升了 Flutter DevTools 的稳定性和性能,包括改为默认使用 WASM,使得 DevTools 运行和响应更快。

详细了解 DevTools 2.55.0 和 2.57.0 的版本说明:

Widget 预览 (实验性)

此版本为 Widget 预览环境带来了性能改进和功能提升:

  • 预览检测重写:检测逻辑现在使用 Dart 分析服务器,大幅减少了 Flutter 工具的内存开销。对于 IDE 用户,总体内存用量最高减少 50%。
  • 预览筛选:现在可以按分组、名称、脚本和软件包 URI 对预览进行筛选。特别鸣谢社区成员 NamanGoyalK 对此功能的贡献。

Widget 预览使您能够单独预览独立的 widget,与完整应用分开查看。

了解详情:Flutter Widget Previewer

无需 Rosetta 的原生 Apple Silicon 支持

使用 Apple Silicon 芯片的 Mac 开发者将不再需要安装 Rosetta 转译层来运行 Flutter。所有 macOS 命令行工具都已更新为在 ARM 上原生运行。Flutter 将在后续版本中完全终止对 Intel x86 Mac 的支持。如果您的团队仍依赖基于 Intel 的 Mac 主机进行开发,建议尽早规划硬件迁移。

欢迎您详细了解在配备 Apple Silicon 的 Mac 上使用基于 Intel 的应用 (support.apple.com)

AI 驱动时代,重塑开发者体验

Dart 和 Flutter 生态系统见证了 Antigravity、Gemini CLI、Claude Code 和 Cursor 等智能体工具的增长。为了支持这种转变,我们专注于强化开发者体验基础,并引入新工具。

通过 Agentic Hot Reload 实现无缝的编码智能体集成。MCP 服务器和编码智能体现在将自动识别并连接到正在运行的 Dart 和 Flutter 应用。当您提示 AI 助手编辑界面时,智能体会编写代码并自动触发热重载来立即显示结果,无需任何手动设置。此外,我们还进行了以下改进:

  • 强化了依赖项搜索:智能体现在可以安全地读取和搜索软件包依赖项中的文件,而无需完整访问本地 pub 缓存。
  • 整合工具:已整合 MCP 工具定义,显著降低智能体工作流的 Token 成本。

Agentic Hot Reload: 您可以提示智能体执行更改,它现在会自动连接并热重载正在运行的应用。

我们最近还推出了 Dart 和 Flutter 的 Agent Skills,为您的编码智能体提供以任务为中心的生产级领域专业知识。这些 Skill 可以提升编码智能体的能力,并帮助您在完成添加集成测试或配置本地化等任务时节省 Token,同时遵守推荐的最佳实践。

了解详情:隆重推出 Dart 和 Flutter SKill、Dart 和 Flutter MCP 服务器

Dart 和 Flutter 的 Agent Skill 为您的智能体提供有关如何完成各种任务的分步指导,例如编写集成测试。

使用 Flutter 让 AI 无处不在

随着 AI 驱动的功能演变为能力全面的智能体助理,我们专注于扩展 Dart 和 Flutter 生态系统,为各个平台的这类体验提供所需的基础设施。

Firebase AI Logic

Firebase AI Logic 使您能够从 Flutter 应用 (即从客户端) 调用 Gemini API。

MacroFactor 是一款 Flutter 应用,使用 Firebase AI Logic 直接连接到 Gemini 模型以更好地利用其多模态功能。使用 AI 可以将枯燥的琐事转化为令人愉快、宛如魔法般的用户体验,其中一个例子是仅需拍照即可追踪管理日常饮食。

Firebase AI Logic 现在具有服务器提示词模板,无需再将提示词直接嵌入到应用代码中。

面向 Flutter 的 Firebase Agent Skill 现已推出,可提供分步指导来帮助您更高效地构建全栈 Flutter 和 Firebase 应用。

MacroFactor 是一款 Flutter 应用,它使用 Firebase AI Logic 直接向 Gemini 模型发起 API 调用,利用其多模态视觉功能来简化记录饮食的用户体验旅程。

了解详情:MacroFactor 通过 Firebase、Flutter 和 Gemini 提供 AI 功能,为超过 40 万用户带来营养变革

Genkit Dart 预览版

我们很高兴地宣布 Genkit Dart 的预览版已发布。Genkit Dart 是一个用于构建全栈、AI 驱动及智能体应用的开源框架。它提供通用模型 API,支持 Google、Anthropic 和 OpenAI 等提供商。该框架配备了从原型到生产所需的一切,包括类型安全的结构化输出、工具调用、多轮对话和内置的可观测性能力。

您可以将其部署在服务器端,也可以直接在 Flutter 应用中运行 Genkit Dart!

import 'package:genkit/genkit.dart';import 'package:genkit_google_genai/genkit_google_genai.dart';void main() async {final ai = Genkit(plugins: [googleAI()]);final response = await ai.generate(  model: googleAI.gemini('gemini-flash-latest'),  prompt'Why is Dart a great language for AI           applications?',);print(response.text);}

了解详情:Genkit Dart: 借助 Dart 和 Flutter 构建全栈 AI 应用

https://dart.dev/blog/announcing-genkit-dart-build-full-stack-ai-apps-with-dart-and-flutter

Gemma 3n 挑战赛

看到 Flutter 开发者不断突破 AI 应用的边界,我们感到无比自豪。热烈祝贺 Gemma Vision 的创作者 Tommaso Giovannini 和 Vite Vere 的创作者 Guido Marangoni 在去年的 Gemma 3n 挑战赛中分别荣获第一名和第二名。两位都选择使用 Flutter 来打造足以改变生活的工具:

  • Gemma Vision 帮助视障人士感知世界
  • Vite Vere 协助有认知障碍的人士完成日常生活中的任务

恭喜 Gemma Vision 的创作者 Tomasso 和 Vite Vere 的创作者 Guido。他们在 Gemma 3n 挑战赛中分别荣获第一名和第二名!

了解详情:Gemma 3n 挑战赛获奖者

Gemma 4

近期推出的 Gemma 4 是一款轻量级的设备端模型,专为高级推理和智能体工作流而构建,适用于成本敏感、端侧数据限制或网络受限的环境。其多模态功能非常出色,多步骤规划以及链式工具调用方面的出色表现,更是令人印象深刻。

过去,跨不同硬件管理这些设备端模型非常复杂。正因如此,LiteRT-LM 的推出令人振奋。

了解详情:Gemma 4

https://deepmind.google/models/gemma/gemma-4/

适用于 Flutter 的 LiteRT-LM

当我们深入研究 Gemma Vision 和 Vite Vere 的代码时,看到两者都利用 pub.dev 提供的插件 flutter_gemma 来与 Gemma 集成,这令人非常振奋。

精彩不止于此:我们很高兴告诉您,针对 Flutter 的完整 LiteRT-LM 支持即将在 flutter_gemma 软件包中推出。

LiteRT-LM 是 Google 可用于生产环境的高性能开源推理框架。它能通过抽象化淡化硬件差异,使开发者能够在各种设备上运行强大的设备端 AI 模型 (如 Gemma 4),同时确保 GPU 和 NPU 加速在全部 6 个 Flutter 稳定平台 (Android、iOS、Web、Windows、Linux 和 macOS) 上确保峰值性能。

了解详情:flutter_gemma 软件包和 LiteRT-LM。

Flutter + A2UI = GenUI

在谈到 AI 驱动的用户体验时,面对满屏的 Markdown 内容,甚至更进一步的纯文本内容,已让人疲惫不堪。

生成式用户界面 (即 GenUI) 是一种用户体验范式,由 AI 构建并实时响应用户界面,而不仅仅是文本 —— 正如 Hatcha Demo 应用中所示。

Hatcha 是一款由适用于 Flutter 的 GenUI 驱动的社交活动策划应用。活动主办方通过对话式访谈进行规划,而 GenUI 则会根据您的活动及受众,生成主题邀请函、量身定制的组件和规划模块。

在过去的一年中,我们的 GenUI 团队作为定义新兴 A2UI 协议的项目合作伙伴,一直在推动 GenUI 的应用。A2UI 是 Google 推出的开源协议,定义了智能体和客户端如何在界面的组成和状态上进行协作。

自从去年年底推出 Flutter GenUI SDK 以来,我们已经看到了令人难以置信的发展势头,年初至今软件包的下载量增长了 500%。

Catagay Ulusoy的 Finnish it (Google Play 商店、Apple Store) 就是一个杰出的例子。此应用不仅能创建自定义课程计划来帮助用户学习芬兰语,还能为每节课动态构建完美的界面。如果您之前观看了 Cloud Next 开发者主题演讲,您可能已经看到 Flutter DevRel 负责人 Emma Twersky 对此应用和 Catagay 给予了充分的赞扬!

Flutter DevRel 负责人 Emma Twersky 在 Google Cloud Next 开发者主题演讲中为 "Finnish It!" 应用给予了赞扬!

了解详情:genui 软件包

Visual Layout 实验

来自 Google DeepMind 的 Li-Te Cheng 和他的团队是 GenUI 领域的先驱。还记得这个演示吗?2023 年,由于演示中的红色调试横幅,它在 Flutter 圈子中广为流传。是的,那是 Li-Te 的队伍!

他参与了我们的 What's New in Flutter 演讲,分享了他使用 Flutter 构建 Gemini 应用 "Visual Layout" 实验的经验。下面是 Web 版本演示:

Visual Layout 实验从初始用户提示词开始,鼓励用户通过生成式界面选择、点击和浏览实时定制和更新的信息。

他谈到了为什么他的团队倾向于将 Flutter 作为首选界面工具包:

  • 精美的界面
  • 高效的开发者体验
  • 多平台支持
  • 非常适合 GenUI 的架构

以下是他给出的 3 个关键要点,您可以将其用于自己的 GenUI 项目:

  1. 依靠规范明确的框架实现 AI 一致性;
  2. 使用 "AI Critic" 循环来确保得到可靠的输出;
  3. 使用模板化设计平衡速度和可控性。

最后,Li-Te 激励我们打破文字和聊天机器人的局限,去构建丰富、互动且令人愉悦的体验。

了解详情:适用于 Flutter 的 GenUI SDK,如果您需要引导式教程,请试用 Codelab。

Android 支持

Googlebook 及外设支持

Flutter 已经为由 Gemini 驱动的全新 Googlebook 笔记本电脑做好准备。由于 Flutter 遵循 Android 的大屏开发指南,应用可以自然顺畅地处理外部硬件输入。默认情况下,触控板滚动、鼠标悬停状态、右键菜单和键盘快捷键都可以正常工作。由于 Flutter 在 macOS、Windows 和 Linux 上具有成熟的桌面支持,Flutter 应用在 Googlebook 上也将提供原生且响应迅速的使用体验,而不是看起来像经过拉伸变形的移动端移植版。现有的移动应用无需经历大规模重写,即可在 Googlebook 上获得良好的体验。

了解详情:隆重推出专为 Gemini Intelligence 而设计的 Googlebook

https://blog.google/products-and-platforms/platforms/android/meet-googlebook/

Android 17

Android 17 已经正式发布,相关团队正在针对最新的 Android 17 版本积极测试 Flutter,以确保您的应用继续按预期运行。我们还主动集成了最新的安全性和可用性功能,如本地网络保护和安全动态代码加载。

您可以在 GitHub 上查看我们的实时进度。我们建议您立即下载 Android 17 正式版并开始测试您的应用。如果您遇到错误或发现缺少任何功能,请提交问题!

了解详情:Android 17 GitHub 项目

适用于 Android 的 Hybrid Composition++

将 Web 视图或地图等原生 Android 组件嵌入到 Flutter 应用中,一直以来导致开发者需要在帧率和保真度之间做出选择。早期的渲染策略会造成滚动时屏幕撕裂、文本输入异常或 CPU 开销过高等问题。

Flutter 3.44 引入了 Hybrid Composition++ (HCPP) 作为一项可选功能来解决这些问题。HCPP 不依赖于屏幕外缓冲区或强制 Flutter 引擎处理原生视图,而是将图层合成直接委托给 Android 系统。该过程利用 Vulkan 图形库的底层访问能力,使用硬件缓冲区交换链和 SurfaceControl 事务将 Flutter 界面与原生 Android 视图同步。

我们因此可以实现高性能的滚动和准确的触控输入。它还为 SurfaceView 组件提供了可靠的支持,而这对旧渲染模式来说则一直是个挑战。

左侧是 HC,右侧是 HCPP

HCPP 对 Android API 和硬件有要求,因此即使选择了启用,也不是所有设备都可以使用 HCPP。无需采用新的 API,您只需启用标志即可升级现有平台视图。通过向 run 命令传递 --enable-hcpp 标志,或向 AndroidManifest.xml 文件添加配置标志,您可以在新模式成为默认渲染模式之前对其进行测试:

<meta-data android:name="io.flutter.embedding.android.EnableHcpp"   android:value="true" />

了解详情:使用平台视图在 Flutter 应用中托管原生 Android 视图

Android 显示屏圆角半径支持

为了帮助您在现代移动设备上构建像素级完美的布局,Flutter 现在直接与 Android 硬件集成,以支持显示屏圆角半径 (#179219)。Flutter 现在可以查询设备显示屏的物理和逻辑圆角半径,并通过 MediaQuery 公开这些信息。这使您的界面能够准确地遵循硬件的几何形状,确保内容在弧度较大的屏幕上不会被裁剪。

了解详情:MediaQueryData.displayCornerRadii

Android Gradle 插件 9.0 和内置 Kotlin

在 Android Gradle 插件 (AGP) 9 之前,Android 应用和插件开发者必须手动将 Kotlin Gradle 插件 (KGP) 添加到其构建文件中,以便系统能够理解和编译 Kotlin 代码。从 AGP 9.0 开始,Android 构建系统可以原生处理 Kotlin。由于构建系统已经内置 Kotlin 处理能力,手动添加单独的 KGP 现在会产生冲突并导致构建失败。此破坏性更改会影响采用 KGP 的应用和 Flutter 插件。

Flutter 团队增加了临时的向前兼容性,以确保能安全构建现有项目。未来版本将移除对手动应用 KGP 的支持。

针对应用开发者的说明

如果您开发 Flutter 应用,则需要更新 Android 构建文件,以移除单独的 Kotlin Gradle 插件 (KGP)。

注意:如果您迁移的应用使用的是仍采用 KGP 的 Flutter 插件,构建将会失败。由于只有插件作者可以解决这个问题,请向插件作者报告问题。

了解详情:有关完整的分步说明,请参阅应用开发者迁移指南。

针对插件作者的说明

插件的迁移过程需要类似的 Gradle 文件更改,以及重要的版本约束更新。为确保兼容性,您必须更新 pubspec.yaml 文件,将最低 Flutter 版本约束设置为 3.44。

了解详情:如需完整的核对清单,请参阅插件作者迁移指南:

https://docs.flutter.dev/release/breaking-changes/migrate-to-built-in-kotlin/for-plugin-authors

ABI 过滤变更

ABI 决定了您的编译应用支持哪些设备硬件架构 (如 ARM 或 x86)。Flutter 曾经以编程方式将 ABI 过滤器应用于每个特定构建类型,但现在改为只需在基本 defaultConfig 代码块中配置一次。由于 AGP 9 将默认配置与特定构建类型和变体相结合,而不是覆盖默认配置,使用自定义 ABI 设置需要额外的步骤。

如果您的应用在特定构建类型或产品变体中使用自定义 abiFilters,则您现在需要在构建或运行应用时传递 -Pdisable-abi-filtering=true 标志。

了解详情:如需了解详细信息,请参阅变体指南:

https://docs.flutter.dev/deployment/flavors#add-unique-build-settings

iOS 支持

Swift Package Manager 现在是默认设置

Swift Package Manager 现已成为 iOS 和 macOS 的默认设置

从 Flutter 3.44 开始,Swift Package Manager (SwiftPM) 将取代 CocoaPods 成为 iOS 和 macOS 应用的默认依赖项管理器。Flutter CLI 会自动处理此迁移。当您构建或运行应用时,CLI 会更新您的 Xcode 项目以使用 SwiftPM,从而使您无需管理 Ruby 或 CocoaPods 安装!

了解详情:告别 CocoaPods: Swift Package Manager 即将成为 Flutter 的默认设置!

Add-to-App 集成也变得更加灵活。如果将 Flutter 嵌入到现有的 iOS 应用中,新的 flutter build swift-package 命令会将 Flutter 应用或 add-to-app 模块打包为 Swift Package,以便您在原生项目中轻松使用。

了解详情:您可以查看更新的文档,了解如何与 SwiftPM 集成。

如果您的应用依赖仍然需要 CocoaPods 的插件,Flutter CLI 将打印警告,并暂时回退到 CocoaPods 来处理这些依赖项。我们建议请求这些软件包维护者进行更新,因为对 CocoaPods 的支持最终将被完全移除。为了鼓励整个生态系统采用 SwiftPM,支持 SwiftPM 的软件包现在可以在 pub.dev 评分中获得额外加分。

如果您需要维护 iOS 或 macOS 插件,则必须将 SwiftPM 支持添加到您的软件包中。如果您已在 2024 年试点期间迁移,请务必在 Package.swift 文件中也将 FlutterFramework 添加为依赖项。

如果 SwiftPM 导致您的项目出现中断问题,您可以通过在 pubspec.yaml 中设置 --enable-swift-package-manager: false 来暂时禁用它。如果您使用此方式选择退出,请在 GitHub 上提交错误报告,并附上您的 Xcode 项目文件,以便我们跟进调查。请注意,此选择退出选项最终将被移除。

了解详情:适用于插件作者的 Swift Package Manager

Flutter 支持 UIScene

从 iOS 13 开始,Apple 引入了基于 "Scene" 的生命周期,以支持多窗口体验。在 WWDC 2025 大会期间,Apple 宣布,使用最新 SDK 构建的应用将很快需要使用 UIScene 生命周期来启动。此更新对于满足 Apple 即将推出的 iOS 版本的要求至关重要。

Flutter 3.44 中未引入新的变更,但我们想提醒您在 Apple 开始默认强制使用此新 API 之前进行迁移。如果 AppDelegate 未经过自定义,Flutter CLI 会自动迁移您的应用。但是,如果您的代码修改了界面生命周期事件,则应遵循完整的迁移指南。

了解详情:UISceneDelegate 迁移指南:

https://docs.flutter.dev/release/breaking-changes/uiscenedelegate

iOS 预测文本 (实验性)

我们将为文本输入字段引入对原生 iOS 内联预测文本的实验性支持 (#183650)。此功能在默认关闭,但您可以通过启用 TextField.enableInlinePrediction 来选择开启并测试。启用后,在您的应用中输入文本的用户可以通过按空格键接受 iOS 预测的文本 (例如,键入 "My n" 后接受 "ame")。请注意,我们仍在积极优化此预测文本的视觉样式,若您在我们最终确定此功能期间提供反馈,我们将不胜感激。

了解详情:TextField.enableInlinePrediction

Web

无障碍功能

无障碍功能和用户偏好一致性也得到了极大增强,现已直接支持浏览器的 prefers-reduced-motion 设置自动禁用动画,以及可使用 aria-description 即时获取对表单验证错误的屏幕阅读器反馈。

了解详情:prefers-reduced-motion CSS 媒体特性 (mozilla.org)

平台和工具

开发工作流和浏览器集成比以往更加顺畅。该引擎当前通过在焦点切换中复用 DOM 表单来处理 iOS 26 Safari 中的 autofill 功能,同时通过改进网页滚动和键盘事件合成来实现强大的可靠性。此外,CLI 通过直接为 flutter run 提供 --base-href 支持,来简化 Web 应用编排,从而与生产构建配置相匹配。

了解详情:PR #182024、PR #179703、PR #180692

桌面支持

Canonical 将主导 Flutter Desktop 路线图,并负责监督 Linux、Windows 和 macOS 嵌入器的维护。

我们很高兴宣布与 Canonical 扩大合作伙伴关系,Canonical 现在将担任 Flutter Desktop 的主要维护者和战略管理者。凭借其深厚的技术专长,Canonical 将主导 Flutter Desktop 路线图,并负责监督 Linux、Windows 和 macOS 嵌入器的维护。

此次合作只是更广泛生态系统扩张的第一步。未来,我们将积极与更多合作伙伴扩展治理体系,将 Flutter 的高性能、多平台体验带到更多环境和行业。

敬请关注以了解更多关于此合作伙伴关系的信息!如需咨询有关与 Flutter 团队合作的信息,请联系 partners@flutter.dev。

窗口化 API (实验性)

注意:窗口化功能目前仅适用于 main 分支。这些功能尚不适用于生产环境。

Flutter 现在支持跨平台工具提示 (Tooltips) 和独立的对话框窗口

Canonical 在桌面端的实验性窗口化 API 方面持续取得出色的进展!新功能包括:

  • 工具提示:Flutter 现在支持跨 Linux、macOS 和 Windows 的工具提示窗口 (#182348、#180895、#179147)。
  • 弹出式窗口:Flutter 现在支持 macOS 上的弹出式窗口 (#182371),预计未来版本将支持 Linux 和 Windows。
  • 对话框:Material 的 showDialog 函数现在可在支持窗口化的平台上创建一个独立的子对话框窗口 (#181861)。

最后,Linux 现在支持内容自适应视图 (#182924)。这使您可以根据其内容动态调整窗口的大小,对于弹出式窗口或工具提示窗口非常有用。

了解详情:如要抢先了解桌面端实验性窗口化 API,请查看 multiple_windows 示例。

Windows 触控笔支持

使用 Flutter 构建的 Windows 应用为数字艺术家和记笔记的用户带来了重大升级!得益于社区成员 CodeDoctorDE 的出色贡献,Flutter Windows 现在支持触控笔输入,包括对触控笔旋转和压力灵敏度的精确跟踪。

了解详情:PR 165323: Windows 触控笔支持

嵌入式实现

丰田

丰田 RAV4 是 2025 年全球最畅销的车型。现在,2026 款 RAV4 正使用 Flutter 为其多媒体系统提供支持。

不久前,我们有机会前往德克萨斯州普莱诺,并参观丰田汽车北美公司和丰田互联办公室,与工程团队讨论 Flutter 如何在设计、构建和交付多媒体系统方面为他们带来巨大改变,即把办公室的测试单元转化为真正在车道上行驶的汽车。

感谢丰田汽车北美公司和丰田互联团队的热情接待!

观看展示视频:

Flutter Outbound 产品经理 Abdallah 和 Khanh Nguyen 在丰田测试赛道上合影

了解详情:丰田官方新闻稿《丰田多媒体系统最新升级即将实装到您的车载屏幕》:

https://pressroom.toyota.com/the-latest-evolution-of-toyotas-multimedia-coming-to-a-screen-near-you/


LG


LG webOS SDK 将使开发者能够构建针对 WebOS 设备的 Flutter 应用

LG 即将推出 webOS SDK,帮助开发者轻松构建针对 WebOS 设备的 Flutter 应用,从而赋能 Flutter 在大屏设备及更多领域的应用。

webOS SDK 将包括对 Firebase、视频播放器、游戏手柄等平台的插件支持。它甚至还支持您熟悉和喜爱的所有 Flutter 功能,例如有状态的热重载以及使用 Riverpod 的状态管理。

敬请关注这些精彩功能的发布!


图形和引擎增强

此版本为 Impeller 后端带来了有针对性的渲染和性能增强。

Impeller 改进

Vulkan

此版本包括几项 Vulkan 改进,包括更好的缓存内存管理,以及在丢帧情况下更高效的 GPU/CPU 同步。

使用 SDF 创建更清晰的圆圈

渲染圆圈的数学算法已更新,以支持使用符号距离函数呈现更清晰的圆圈。此前某些情况下会出现锯齿现象的问题现已得到修复。(#183536、#183184)

利用符号距离函数 (SDF) 增强视觉保真度,确保复杂形状拥有高质量并实现抗锯齿渲染。



阴影和透视修复

改进 Impeller 处理透视矩阵的方式,修正了阴影和透视投影变换的渲染行为。(#181434、#183187)

FragmentShader 的改进

得益于以下增强功能,现在编写片段着色器变得更加直观,更不容易出错。

通过名称获取 Uniform 的 API

现在,您可以通过名称而不是手动偏移量绑定着色器中的 Uniform 变量,从而大大简化着色器代码设置:

void setUp(ui.FragmentShader shader) {     shader.getUniformFloat('foobar').set(1.234);   }

了解详情:编写和使用 FragmentShaders、FragmentShader.getUniformFloat

更清晰的着色程序编译器诊断信息

现在,着色器编译器在编译与 Skia 不兼容的着色器时会生成警告,帮助您在部署之前识别跨平台渲染问题 (#182786、#183146)。

Framework

此版本在重大架构调整、与对质量及社区驱动优化的严格关注之间取得了平衡。随着我们开始将 Material 和 Cupertino 库战略性地解耦为独立软件包,核心框架将随着 Web 渲染的重大更新、基础稳定性的改进和增强的平台集成而继续成熟发展。

Material 和 Cupertino 更新

此版本标志着 Material 和 Cupertino 库的一个重要里程碑。从这个版本开始,这些库已被冻结。这代表着它们在核心框架中的最后一次更新:material_ui 和 cupertino_ui。到下一个稳定版本,当前框架中这些库的版本将被弃用,您将能够迁移到全新独立版本的软件包。

了解详情:如需了解有关此过渡的详细信息,请阅读有关冻结的博文,并参考将这些库与核心框架解耦的主要跟踪问题。

尽管代码库已被冻结,此版本仍有大量改进。其中一大亮点是 Cupertino 库菜单的现代化改造。新的 CupertinoMenuAnchor Widget 建立在灵活的 RawMenuAnchor 的基础上,为 iOS 应用提供了更稳健、感受更贴近原生的菜单体验 (#182036)。而这要归功于社区成员 davidhicks980 的大量贡献,该成员还是 RawMenuAnchor Widget 的创建者。

CupertinoMenuAnchor 实际运作示例。

了解详情:CupertinoMenuAnchor:

https://main-api.flutter.dev/flutter/cupertino/CupertinoMenuAnchor-class.html

在 Material 方面,随着在 MenuAnchor 类中添加 Material 3 动画,菜单页得到了优化。这些动画提供更流畅、更灵敏的观感,SubmenuButton 上新的 hoverOpenDelay 参数可让您更好地控制子菜单交互。默认情况下,该动画默认处于禁用状态,可通过将 "animated" 设置为 "true" 来启用 (#176494)。

将 Material 3 动画添加到 MenuAnchor 类。


了解详情:MenuAnchor、SubmenuButton.hoverOpenDelay



此版本还使 CupertinoSheetRoute 中可滚动的内容能够与拖拽动画无缝协作,从而在滚动和关闭工作表之间实现更流畅的过渡 (#177337)。对于需要自定义拖拽区域的开发者,新的 scrollableBuilder 可让您将托管的 ScrollController 传递给主体的可滚动区域,以便为您协调工作表拖拽。

CupertinoSheetRoute 中的可滚动内容能够与拖拽动画无缝协作


了解详情:CupertinoSheetRoute、CupertinoSheetRoute.scrollableBuilder

CarouselView 组件在此版本中获得了重大的功能改进。它现在支持无限滚动 (#175710),因此您可以创建无缝循环的轮播效果。它还新增了 onIndexChanged 回调函数,并在其控制器上提供了 leadingItem 属性,从而在用户与其交互时能更清晰地掌握其状态 (#180667)。

CarouselView 现在支持无限滚动!



了解详情:CarouselView:

https://main-api.flutter.dev/flutter/material/CarouselView-class.html


借助新的设计原语,可以更轻松地实现复杂的界面效果,例如新的 ShapedInputBorder。这能让 Material Widget 通过指定任何 ShapeBorder 来使用形状创建输入边框。例如,在使用 RoundedSuperellipseBorder 使 Material 输入边框以 iOS 样式显示时很有用 (#177220)。同样,CupertinoFocusHalo 现在支持超椭圆形状,确保不同 Widget 几何形状上的焦点指示器一致 (#180724)。

了解详情:ShapedInputBorder:

https://main-api.flutter.dev/flutter/material/ShapedInputBorder-class.html


几个现有的 Widget 也已得到优化。作为 Material 中 ExpansionTile 底层驱动的 Expansible 组件现在功能更强大。ExpansibleController 和 ExpansionTileController 都新增了一个 toggle 方法,并附有改进的文档和示例 (#181320、#180273)。此外,Material 的列表条目组件 RadioListTile、CheckboxListTile 和 SwitchListTile 现在能正确接受 WidgetStatesController,允许对其视觉状态进行更多程序化控制 (#180367)。

无障碍功能:为所有用户提供更具包容性的体验

让所有人都可以访问应用仍然是 Flutter 框架的核心优先事项。此版本引入了与各平台特定无障碍设置的更深层次集成,提高了语义播报的精确度,并完善了常见界面组件的无障碍体验。

对于 iOS 开发者,此版本添加了对几项新的无障碍运动功能的支持 (#178102)。您的应用现在可以响应用户对以下内容的偏好设置:

  • 自动播放动画图像:检测用户何时希望自动暂停播放 GIF 或其他动画内容。
  • 自动播放视频预览:告知应用用户是否已禁用视频预览的自动播放。
  • 首选不闪烁光标:允许应用为发现闪烁光标分散注意力或难以跟踪的用户提供稳定、不闪烁的文本指示器。
  • 这些设置通过 AccessibilityFeatures 对象公开,使您可以在 iOS 上构建更具响应性和尊重性的界面。

进度指示器也获得了体验优化。现在,您可以将百分比字符串 (如 "50%") 用作 ProgressIndicator 的 SemanticsValue (#183670)。这能让屏幕阅读器以更自然和更易读的格式播报进度,而不仅仅是使用原始的十进制数值。

此版本还完善了核心 Widget 的语义。Slider Widget 的语义节点已重构,以更准确地反映其大小和位置,从而改善通过触摸探索或辅助设备导航的用户体验 (#184168)。此外,滚动视图的修复可确保不可见的无障碍元素不再错误地呈现在可滚动内容之前,从而实现更清晰、符合预期的导航流程 (#184155)。

这些变化共同确保了 Flutter 应用持续在所有平台上提供高质量、包容性的体验。

零宽度/高度 Widget 的弹性

此版本的一项主要工作是致力于提高在 "0x0 环境" (Widget 的宽度或高度为零的场景) 中渲染 Widget 时的框架稳定性,此前这可能会触发布局错误或意外崩溃。得益于社区成员 ahmedsameha1 的持续稳定的贡献,我们在许多核心 Widget 中添加了零尺寸的覆盖范围,包括 Hero (#180954)、Icon (#181021)、AnimatedPadding (#181235) 和 GridPaper (#180906)。这些更新可确保您的应用在复杂的布局过渡期间或在高度受限的视口内保持稳健。

SelectableRegion 的改进

我们已经解决 SelectableRegion 内的两个关键问题,以提高原生平台和 Web 平台的布局保真度和文本选择行为:

Web 布局约束保留

以前在 Web 上渲染时,SelectableRegion 可能会导致其子项意外缩小。现在,它可以正确地将所有未修改的布局约束传递给其子组件,从而确保尺寸行为的一致性 (#184083)。

多行复制精度

SelectableRegion 中的文本选择现在更加精确:当用户选择和复制跨越多行的文本时,换行符现在可以正确保留在复制的输出中,而不会丢失 (#184421)。

重大变更和弃用

作为持续致力于实现 Flutter 框架现代化和改进的一部分,此版本包含几项重要弃用和重大变更。

RawMenuAnchor 回调调整

已调整 RawMenuAnchor 一些回调的调用顺序,以实现更灵活且可预测的自定义。

了解详情:更改 RawMenuAnchor 关闭顺序:

https://docs.flutter.dev/release/breaking-changes/raw-menu-anchor-close-order

此版本中的主要弃用内容包括:

  • CupertinoSheetRoute:showCupertinoSheet 和 CupertinoSheetRoute 中的 builder 与 pageBuilder 参数现已弃用,取而代之的是 scrollableBuilder (#177337)。此更改可以将可滚动内容与工作表的拖拽动画更好地集成。
  • ReorderableListView:onReorder 回调已被弃用,取而代之的是更精确的 onReorderItem (#178242)。新的回调提供了一个更可预测的 newIndex,可以在重新插入项目之前删除项目。
  • 工具:Flutter 工具中的 --web-hot-reload 标志现已被弃用,因为 Web 的热重载现已通过更现代的机制处理 (#181884)。此外,plugin_ffi 模板已被弃用,取而代之的是具有 FFI 支持且更稳健的插件模板 (#181588)。

了解详情:有关这些变更及其他变更的详细信息和迁移指南,请参阅 flutter.dev 上的重大变更页面:

https://docs.flutter.dev/release/breaking-changes

Flutter 无处不在,无时不在

Flutter 的应用遍布移动设备、桌面端、Web 和嵌入式系统,其各个功能本身已令人印象深刻,而它们合力更可为开发者提供一个强大的平台,赋能超过 150 万开发者构建日常随时随地经历的卓越体验。从商业工具和日常应用 (如 NotebookLM、Talabat、Zoho 和 Karaca),到备受瞩目的嵌入式实现 (如 2026 年丰田 RAV4 的信息娱乐系统和 LG 的 webOS 设备),您都可以看到 Flutter 的身影。

Flutter 集众智而建,为大众而生

Flutter 的成功建立在您的反馈之上!无论是通过评论、问题报告还是即将推出的开发者调查,我们都致力于与您持续沟通。您的意见推动着我们打造出您喜爱的功能,请继续与我们分享您的想法。

该生态系统不仅依赖于 LG、丰田和 Canonical 等行业领导者,也由他们共同构建,而最重要的是,依赖于每天使用 Flutter 构建应用的 150 多万名开发者。我们很高兴继续与您共建和发展这个出色的 Dart 和 Flutter 生态系统。

要体验所有新功能、优化和图形增强功能,只需以下简单操作:

flutter upgrade
【声明】内容源于网络
0
0
谷歌开发者
谷歌开发
内容 3569
粉丝 0
谷歌开发者 谷歌开发
总阅读24.2k
粉丝0
内容3.6k