Flutter 3.22 和 Dart 3.4 提供了性能改进和特定于平台的改进,使我们更接近这一愿景。我们特别高兴能分享更多关于 Wasm 的旅程,但您会发现更多,包括改进的 Impeller 渲染引擎、更流畅的视觉效果和 iOS 上 CPU 使用率的降低、通过 Android 预测性后退手势增强的平台导航、扩大的盈利能力Google Mobile Ads SDK 的选项,以及 DevTools 中新的强大的深度链接验证器。 Dart 开发人员将dart fix
直接在 IDE 中享受简化的 API 迁移以及用于高级分析的新 DevTools 功能。此外,您现在可以预览 Vertex AI for Firebase Dart SDK,它将 AI 驱动的功能与强大的安全措施集成在一起。
Flutter 在行动
Flutter 开发人员正忙于向应用商店推出大型新应用。让我们看几个。
帮助大型企业级应用程序在移动和网络上交付
- 在英国,金融机构Virgin Money正在其移动银行和信用卡应用程序套件中使用 Flutter,以统一应用程序开发流程、加快变革并实现行业领先的用户体验。
- 美国保险公司GEICO最近表示,Flutter 帮助他们大规模改善了 iOS、Android 和 Web 上的品牌用户体验,缩小了代码库大小,并提高了开发效率。
- 环球影城目的地和体验 (Universal Studios Destinations & Experiences)为其好莱坞、大阪和奥兰多公园发布了新的 Flutter 移动应用程序。观看下面的视频,了解他们选择 Flutter 的原因以及它迄今为止的表现。
超越移动设备和网络
- Canonical团队自 2021 年以来一直与 Flutter 合作,以在 Ubuntu 中支持 Flutter生态系统。在过去的一年里,Canonical 团队使用 Flutter 从头开始重建了 Ubuntu 安装程序。
- LG选择 Flutter 来增强其智能电视操作系统 webOS。 Flutter 的性能、生产力和强大的生态系统使 LG 能够快速开发和部署运行流畅的 webOS 系统应用程序。到 2025 年,Flutter 将为全球数千万台 LG 电视上的系统应用程序提供支持。
我们受到这些成功故事的启发,并致力于让 Flutter 变得更好。让我们深入了解最新的产品更新,以展示我们正在采取哪些措施来帮助您构建更精彩的应用、游戏和体验。
WebAssembly:追求 Web 上的本机性能
今天,我们宣布稳定版本支持将Flutter Web 应用程序编译为 WebAssembly (Wasm)。这是一种令人兴奋的网络浏览器新指令格式,它提供了一种可移植的、平台中立的二进制代码格式。
我们对 Wasm 的支持是一项深入的、多年的投资。首先,我们与 Chrome 团队合作,定义 WebAssembly 对 Dart 等高级托管语言的支持,这些语言通常使用垃圾收集。由此产生了WasmGC 提案,该提案现已成为完整的最终标准,可在 Chrome(Chromium 119 及更高版本)和 Firefox(120 及更高版本)中使用运行时实现,其他浏览器供应商预计也会跟进。接下来,我们添加了一个全新的 Dart 编译器后端来生成 WasmGC 代码,Dart 和 Flutter 团队合作将编译后的应用程序代码和 Flutter 渲染引擎作为 Wasm 模块运行,并具有高效的 Wasm 到 Wasm 互操作。
那么最终结果是什么?我们看到性能有了很大提高,接近运行机器代码的移动和桌面设备上的性能。在我们的内部基准测试中(在 M1 MacBook 上的 Chrome 中),Wonderous的帧渲染时间在一般情况下提高了 2 倍,在 99% 最差情况下性能提高了 3 倍。改进的渲染性能对于具有动画和丰富过渡的要求较高的应用程序至关重要,在这些应用程序中,超出帧预算(分配给渲染下一帧的时间)会导致非常明显的卡顿。 Wasm 有潜力消除这种情况,如下图所示,与使用传统 JS 编译运行的 Wonderous 应用程序相比,Wasm 编译进行了比较。
Flutter Web 应用程序的 Wasm 编译现已稳定可用。首先,请查看我们的Dart Wasm 文档和Flutter Wasm 文档。
Dart 宏:提高开发抽象级别
我们致力于提供一流的开发人员体验。这意味着解决 Dart 开发人员长期存在的痛点,例如序列化 JSON 数据。
这是一种既琐碎又乏味的普遍模式。当前的解决方案意味着要么手动编码和解码样板文件,要么以代码生成解决方案(例如JsonSerialized包)的形式分层使用额外的工具。
今天,我们宣布推出更好的 JSON 选项预览:JsonCodable宏。
宏是创建更多代码的代码。它们就像代码生成,只不过宏系统内置于 Dart 中,并且在您编辑和运行代码时实时发生。这是一种没有延迟的集成体验,完全支持我们现有的开发人员工作流程(例如热重载),如以下截屏所示:
我们很高兴看到宏为我们的开发人员解决了各种问题。以数据类为例,它是得票最高的Dart 语言功能。除了具体的应用之外,我们最终的目标是在 Dart 中拥有一个宏系统,允许用户创建自己的宏,并提高 Dart 编程的抽象级别。
设计和实现如此强大的宏系统是一项艰巨的任务,因此目前还没有确定稳定版本的日期 - 有关更多详细信息,请查看Dart 3.4 帖子。与此同时,JsonCodable
今天就尝试一下宏的预览。有关更多信息,请查看宏文档。
Flutter 游戏开发的新资源
我们在游戏方面的早期投资看到了可喜的成果,包括Etermax和Supercell等行业领导者的成功案例,他们都利用 Flutter 的强大功能和灵活性来有效地提供令人愉悦的用户体验并扩大其影响范围。
今天,我们很高兴能够为 Flutter 游戏开发者提供这些新资源,继续巩固这一势头:
- SoLoud 音频引擎现已推出:我们与 Flutter 社区 (@ Marco Bavagnoli ) 合作创建了一款免费的便携式音频引擎,可提供低延迟、高性能的声音,这对于许多游戏来说至关重要。我们还创建了一个使用 SoLoud 的新声音和音乐代码实验室。
- 了解如何在不影响用户体验的情况下生成广泛的纵横填字游戏式的互锁单词网格,并使用名为Forge2D的 Box2D 的2D 物理模拟在 Flutter 和 Flame 游戏中制作游戏机制。
- 优化 Flutter 网页游戏加载速度的新指南:加载时间长是网页游戏的主要障碍。按照本指南(作者:程林)来优化您的加载速度,这样玩家就不会因为加载缓慢而放弃您的游戏。
赋能可持续游戏开发
2024 年 1 月,受到使用 Flutter 背后故事的启发,我们与 Global Citizen 合作,挑战我们的社区使用 Flutter 设计、构建和发布可持续发展游戏。这些游戏旨在激励和激励玩家为环境采取小而有意义的行动。今天,我们宣布10 名获奖者。 恭喜所有获奖者!
还有更多值得探索的地方
这就是我们今天要重点介绍的全部内容,但还有更多令人兴奋的改进我们没有提及。这里还有一些需要了解的事情:
-
您可以 ****预览Vertex AI for Firebase Dart SDK, 以在 Dart 或 Flutter 应用中使用 Gemini API 来实现 AI 驱动的功能。该 SDK 与 Firebase App Check 集成,可保护您的 API 调用,并保护您的后端基础设施免受计费欺诈、网络钓鱼和应用假冒等严重威胁。有关详细信息,请参阅我们的AI 页面。
-
我们的下一代渲染引擎Impeller现已在 Android 上提供完整功能。
-
现在,在 Flutter 应用程序内导航以及导航到另一个应用程序或主屏幕时,都支持Android 的预测性返回手势。
-
iOS 上的平台视图已进行性能优化,CPU 使用率降低高达 50%。
-
Google移动广告 SDK已得到扩展,可以支持更多广告合作伙伴和中介选项。
-
DevTools 有一个新的深层链接验证器,可以帮助您识别和排除 Android 深层链接配置中的错误,以便您可以更轻松地将 Web 体验连接到 Flutter 应用程序。
-
我们的 API 迁移工具Dart fix现在可以直接从 IDE 调用。
-
DevTools现在支持时间线中的高级过滤和 CPU 示例。
以上就是今年 google I/O 大会关于 flutter 的部分,供大家参考。
这是一个从 https://juejin.cn/post/7368823201068433458 下的原始话题分离的讨论话题