更新详情 | Flutter 3.22 与 Dart 3.4

news2024/11/17 13:24:40

作者 / Michael Thomsen

过去几个月,Dart & Flutter 部门可谓忙碌非凡,但我们很高兴地宣布,Flutter 3.22 和 Dart 3.4 已经在今年的 Google I/O 大会上精彩亮相!

  • Google I/O

    https://io.google/2024/intl/zh/

我们始终致力于提供强大的语言和框架组合,使您能够从单一共享代码库构建美观、丰富和快速的应用,这样您就可以在移动设备、Web 和桌面上为用户打造应用,而无需分散您的产品路线图。

b237e2c67014c29f3d2bc83cb2970f82.gif

Flutter 3.22 和 Dart 3.4 进行了性能提升和特定于平台的优化,向着我们的这一愿景更进一步。我们特别高兴地与您分享有关 Wasm 的探索,这其中涵盖许多令人惊喜的内容,包括改进的 Impeller 渲染引擎,在 iOS 设备端更流畅的视觉效果和更低的 CPU 使用率,借助 Android 的预测性返回手势改进平台导航功能,使用 Google 移动广告 SDK 改进变现服务选项,以及 DevTools 中功能丰富的深层链接验证器。Dart 开发者将在 IDE 中直接使用 dart fix 来简化 API 迁移,以及用于高级分析的新 DevTools 功能。此外,您现在可以预览适用于 Firebase Dart SDK 的 Vertex AI,将基于 AI 的功能与强大的安全措施相结合。

我们还将聚焦于使用 Flutter 提高生产力和构建高性能体验的顶尖公司,重点介绍一些特别令人兴奋的功能,这些功能使我们更接近于实现跨平台的原生性能目标,以及我们在生产力、开发者体验和游戏方面的投入的最新进展。

欢迎您查看 Flutter 和 Dart 的博文,了解关于此次发布的详细内容。

  • Flutter

    https://medium.com/flutter/fbde6c164fe3

  • Dart

    https://medium.com/dartlang/dart-3-4-bd8d23b4462a

Flutter 在行动

Flutter 开发者正着力于在应用商店中推出大型的新应用,让我们来看几个例子。

742eb65158c5d5caf5a46c5715058e79.png

协助大型企业级应用在移动设备和 Web 上提供服务

  • 在英国,金融机构 Virgin Money 在其手机银行和信用卡应用套件中使用 Flutter,以统一应用开发流程、加快变革速度,并提供业界领先的用户体验。

  • Virgin Money

    https://uk.virginmoney.com/

  • 使用 Flutter

    http://flutter.dev/showcase/virgin-money

  • 美国保险公司 GEICO 近期分享,Flutter 帮助他们改善了 iOS、Android 和 Web 端的品牌用户体验,缩小了代码库的规模,并提高了开发效率。

  • GEICO

    https://www.geico.com/about/corporate/at-a-glance/

  • 分享

    https://www.geico.com/techblog/flutter-as-the-multi-channel-ux-framework/

  • 环球影城景点与体验为好莱坞、大阪和奥兰多公园推出了全新的 Flutter 移动应用。观看下面的视频,了解他们为什么选择 Flutter,并了解到目前为止 Flutter 的表现如何。

  • 环球影城景点与体验

    https://corporate.universaldestinationsandexperiences.com/

更多方面的应用

  • Canonical 团队自 2021 年以来一直与 Flutter 合作,为 Ubuntu 中的 Flutter 生态系统提供支持。过去一年,Canonical 团队使用 Flutter 从头开始重建 Ubuntu 安装程序。

  • Canonical

    https://canonical.com/

  • 自 2021 年以来

    https://ubuntu.com/blog/flutter-and-ubuntu-so-far

  • 生态系统

    https://pub-web.flutter-io.cn/publishers/canonical.com/packages

  • LG 选择 Flutter 来增强其智能电视操作系统 webOS。Flutter 的性能、生产力和强大的生态系统使 LG 能够快速开发和部署运行顺畅的 webOS 系统应用。到 2025 年,Flutter 将为全球数千万台 LG 电视的系统应用提供支持。

  • LG

    https://www.lg.com/us

我们受到这些成功故事的启发,致力于让 Flutter 变得更好。让我们深入了解最新的产品更新,了解我们如何助力您打造更精彩的应用、游戏和体验。

WebAssembly: 在 Web 上追逐原生性能

我们宣布在稳定版本中支持将 Flutter Web 应用编译为 WebAssembly (Wasm)。Wasm 是一种适用于 Web 浏览器,提供可移植、平台中立的二进制代码格式。

  • 编译

    https://docs.flutter.cn/platform-integration/web/wasm

我们对 Wasm 的支持是一项持续多年的深度投入。首先,我们与 Chrome 团队合作,在 WebAssembly 中定义了对高级托管语言 (如 Dart) 的支持,这些语言通常使用垃圾回收功能。这产生了 WasmGC 提案,该提案现在已成为完整且最终确定的标准,可在 Chrome (Chromium 119 及更高版本) 和 Firefox (120 及更高版本) 中使用,预计其他浏览器供应商也将跟进。接下来,我们新增了一个全新的 Dart 编译器后端来生成 WasmGC 代码,Dart 和 Flutter 团队合作,将编译的应用代码和 Flutter 渲染引擎作为 Wasm 模块运行,实现了高效的 Wasm 到 Wasm 互操作性。

  • WasmGC

    https://developer.chrome.google.cn/blog/wasmgc?hl=zh-cn

  • 提案

    https://github.com/WebAssembly/gc/blob/main/proposals/gc/Overview.md

那么最终结果如何呢?我们看到性能大大提高,接近我们在移动设备和桌面设备上运行机器代码的性能。在我们的内部基准测试中 (在 M1 MacBook 上的 Chrome 中),Wonderous 的帧渲染时间在一般情况下提高了 2 倍,在 99% 的最差情况下提高了 3 倍。提高渲染性能对于要求苛刻的应用至关重要,这些应用具有动画和丰富的过渡效果,超出帧预算 (分配给渲染下一帧的时间) 会导致非常明显的卡顿。Wasm 有解决这一问题的可能,正如下图所示,Wonderous 应用在运行传统 JS 编译与 Wasm 编译时存在差异。

c649ba88cfd3dc6cb5090ecb087e345a.gif

△ 比较 Javascript 与 Wasm 的渲染速度,Wonderous 示范应用。

  • Wonderous

    https://flutter.gskinner.com/wonderous/

Flutter Web 应用的 Wasm 编译现已在稳定版本中提供。您可以查看我们的 Dart Wasm 文档和 Flutter Wasm 文档,即刻开始尝试使用。

  • Dart Wasm 文档

    https://dart.dev/web/wasm

  • Flutter Wasm 文档

    https://docs.flutter.cn/platform-integration/web/wasm

DART 宏: 提高开发抽象级别

我们致力于提供一流的开发者体验。这意味着要解决 Dart 开发者长期面临的痛点,例如序列化 JSON 数据。

这是一种普遍存在的模式,既琐碎又乏味。目前的解决方案意味着要么使用手动编码和解码样板代码,要么添加额外工具,如 JsonSerializable 软件包等代码生成解决方案的形式。

  • JsonSerializable

    https://docs.flutter.cn/data-and-backend/serialization/json#serializing-json-using-code-generation-libraries

如今,我们宣布推出一个用于更好处理 JSON 的选项预览: JsonCodable 宏。

  • JsonCodable

    https://dart.dev/go/json-codable

宏是创建更多代码的代码。它们类似于代码生成,区别在于宏系统内置在 Dart 中,并且在您编辑和运行代码的过程中实时发生的。这是一种无延迟的集成体验,完全支持我们现有开发者的工作流程,例如热重载等。下方的录屏是使用宏的示例:

a44d3a9f85c26404a7efdd543c639cbb.gif

△ 使用宏的体验示例: 最初不存在 toJson 代码补全,但在将 @JsonCodable 添加到该类后,toJson 代码补全会立即显示。

我们很高兴看到宏为我们的开发者解决了各种问题。以数据类为例,这是 Dart 语言中得票最高的特性。除了特定的应用外,我们的最终目标是在 Dart 中拥有一个宏系统,允许用户创建自己的宏,并提高 Dart 编程的抽象级别。

  • 得票最高的特性

    https://github.com/dart-lang/language/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

设计和实现如此强大的宏系统是一项艰巨的任务,因此目前尚未确定稳定版本的发布日期——您可以查阅 Dart 3.4 的博文了解更多详细内容。与此同时,欢迎您立即尝试 JsonCodable 宏的预览。如需了解更多信息,您可以查阅官方网站。

  • Dart 3.4

    https://medium.com/dartlang/dart-3-4-bd8d23b4462a

  • 官方网站

    https://dart.dev/language/macros#the-jsoncodable-macro

Flutter 游戏开发的新资源

7988c19dd216beda7f3262b1b293b48a.png

我们早期在游戏方面的投入取得了鼓舞人心的成果,其中包括 Etermax 和 Supercell 等行业领导者的成功案例,他们都利用 Flutter 的强大功能和灵活性,高效地提供令人愉悦的用户体验并扩大其影响力。

  • Etermax

    http://flutter.dev/showcase/etermax

  • Supercel

    http://flutter.dev/showcase/supercell

我们很高兴为 Flutter 游戏开发者提供这些新资源,继续巩固这一势头:

  • SoLoud 音频引擎现已推出: 我们与 Flutter 社区 (@Marco Bavagnoli) 合作,创建了一个免费且便携的音频引擎,提供低延迟、高性能的音频,这对许多游戏都是至关重要的。另外,我们还创建了一个使用 SoLoud 的声音和音乐代码实验室。

  • SoLoud 音频引擎

    https://pub.flutter-io.cn/packages/flutter_soloud

  • Marco Bavagnoli

    https://github.com/alnitak

  • 声音和音乐代码实验室

    https://codelabs.developers.google.com/codelabs/flutter-codelab-soloud#0

  • 了解如何在不影响用户体验的情况下生成纵横交错的填字游戏风格网格,并使用名为 Forge2D 的 Box2D 物理模拟,在 Flutter 和 Flame 游戏中制作游戏机制。

  • 生成纵横交错的填字游戏风格网格

    https://codelabs.developers.google.cn/codelabs/flutter-word-puzzle#0

  • 使用名为 Forge2D 的 Box2D 物理模拟,在 Flutter 和 Flame 游戏中制作游戏机制

    https://codelabs.developers.google.com/codelabs/flutter-flame-forge2d#0

  • Forge2D

    https://pub.dev/packages/forge2d

  • 优化 Flutter 基于 Web 的游戏加载速度的新指南: 在基于 Web 的游戏中,加载时间过长是一个主要阻碍。建议您遵循此指南 (由 Cheng Lin 撰写) 来优化加载速度,避免玩家因为加载速度过慢而放弃您的游戏。

  • 优化 Flutter 基于 Web 的游戏加载速度

    https://medium.com/flutter/best-practices-for-optimizing-flutter-web-loading-speed-7cc0df14ce5c

  • Cheng Lin

    https://twitter.com/chenglinlim

赋能可持续游戏开发

2024 年 1 月,受到他们使用 Flutter 幕后故事的启发,我们与 Global Citizen 合作,发起使用 Flutter 来设计、构建和发布可持续发展游戏的挑战。这些游戏旨在激励玩家为环境采取虽小但有意义的行动。今天,我们将隆重揭晓 10 位获奖者。

  • 故事

    https://www.youtube.com/watch?reload=9&v=qgOlg173gcI

  • 10 位获奖者

    https://medium.com/flutter/announcing-the-winners-of-the-global-gamers-challenge-1ccf4d271226

恭喜所有获奖者!

探索更多

以上就是我们这次更新的重点,但还有许多我们没有提及的改进同样令人振奋:

  • 您可以预览适用于 Firebase Dart SDK 的 Vertex AI,以便在 Dart 或 Flutter 应用中使用适用于 AI 驱动功能的 Gemini API。SDK 已经与 Firebase App Check 集成,可保护您的 API 调用,并保护您的后端基础架构免受帐单欺诈、网络钓鱼和应用冒充等严重威胁。有关的详细信息,请您参阅我们的官方网站。

  • 适用于 Firebase Dart SDK 的 Vertex AI

    https://firebase.google.com/docs/vertex-ai/get-started?platform=flutter

  • 官方网站

    http://flutter.dev/ai

  • 我们的下一代渲染引擎 Impeller,现已在 Android 上提供完整的功能。

  • 下一代渲染引擎

    https://docs.flutter.cn/perf/impeller

  • 现在在 Flutter 应用中导航以及导航到其他应用或主屏幕时,都支持 Android 的预测性返回手势。

  • 预测性返回

    https://developer.android.google.cn/guide/navigation/custom-back/predictive-back-gesture?hl=zh-cn

  • iOS 上的平台视图已经进行了性能优化,降低了高达 50% 的 CPU 使用量。

  • 拓展了 Google 移动广告 SDK,支持更多广告合作伙伴和中介选项。

  • DevTools 有一个新的深层链接验证器,可帮助您识别和排除 Android 深层链接配置中的错误,以便您更轻松地将 Web 体验与 Flutter 应用连接起来。

  • 现在您可以直接从 IDE 调用我们的 API 迁移工具 Dart Fix

  • DevTools 现在支持时间轴中的高级过滤和 CPU 示例。

欢迎您查阅 Flutter 博文和 Dart 3.4 博文,以了解更多详细信息。

  • Flutter 博文

    https://medium.com/flutter/fbde6c164fe3

  • Dart 3.4 博文

    https://medium.com/dartlang/dart-3-4-bd8d23b4462a

一如既往,我们非常感谢您长久以来的支持、热情投入和反馈,也迫不及待地想看到您继续推动 Flutter 发展。

本次 Flutter 的介绍在此告一段落,期待能尽快再次与您相见!


6da7a9015cf38579217a277a0517f448.gif 点击屏末  | 即刻了解 Flutter 社区的最新资讯

fa0f92947923e83d5a5659bd419bc46b.png

a867ba0d12baff54d7fcaa1fd7eec9bb.png

459d6ce4e6ce6c4be739fb1a27310122.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1721491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows11下将Labelme标注数据转为YOLOV5训练数据集

完整代码: import shutil import os import numpy as np import json from glob import glob import cv2 from sklearn.model_selection import train_test_split from utils.data_dir import root_dirdef convert(size, box):dw 1. / (size[0])dh 1. / (size[1]…

如何仿一个抖音极速版领现金的进度条动画?

效果演示 不仅仅是实现效果,要封装,就封装好 看完了演示的效果,你是否在思考,代码应该怎么实现?先不着急写代码,先想想哪些地方是要可以动态配置的。首先第一个,进度条的形状是不是要可以换&am…

五种主流数据库:常用数据类型

在设计数据库的表结构时,我们需要明确表中包含哪些字段以及字段的数据类型。字段的数据类型定义了该字段能够存储的数据种类以及支持的操作。 本文将会介绍五种主流数据库中常用的数据类型以及如何选择合适的数据类型,包括 MySQL、Oracle、SQL Server、…

零代码本地搭建AI大模型,详细教程!普通电脑也能流畅运行,中文回答速度快,回答质量高...

你好,我是郭震 这篇教程主要解决: 1). 有些读者朋友,电脑配置不高,比如电脑没有配置GPU显卡,还想在本地使用AI; 2). Llama3回答中文问题欠佳,想安装一个回答中文问题更强的AI大模型。 3). 想成为…

汽车IVI中控开发入门及进阶(二十四):杰发科技AC8015

前言: 在此之前的大部分时间,四维图新更多的是以图商的身份在业内出现,但现在四维图新图商之外的技术积累提现在了杰发科技身上,或者是从图商到汽车智能化一体解决方案供应商的角色转变。汽车智能化,可以简单的归为座舱智能化和智能驾驶两个板块。 随着汽车变得越来越智能…

显示器与电脑如何分屏显示?

1.点击电脑屏幕右键--显示设置 2、然后找到屏幕---找到多显示器---选择扩展显示器

重生奇迹MU召唤师如何学习狂暴术?

一、了解狂暴术的基本信息 狂暴术是一种非常强大的技能,可以让召唤师的攻击力和防御力大幅度提高,但同时也会增加自身的伤害。在使用狂暴术之前,召唤师需要仔细考虑自己的状态和对手的情况。 二、学习狂暴术的方法 1.通过任务学习 在游戏…

戴尔科技:一盆冷水浇醒了AIPC

这年头,只要沾上英伟达的公司,不论美股还是大A,都跟着鸡犬升天几轮过,但昨晚英伟达蒸发1064亿美元, 跟着遭罪的也不少,有没有一夜惊魂梦醒的感觉? 今天我们来说说——戴尔科技。 昨晚戴尔科技大跌5.18%&a…

查看VUE3代理后真正请求的URL

在vite.config.ts中添加如下配置: server: {host: "0.0.0.0", // 指定服务器应该监听哪个 IP 地址port: 8848, // 指定开发服务器端口open: true, // 开发服务器启动时,自动在浏览器中打开应用程序cors: true,// Load proxy configuration fr…

建议收藏-各类IT证书查验真伪链接

1、红帽认证证书核验链接: https://rhtapps.redhat.com/verify/ RHCSA认证、RHCE认证、RHCA认证 添加图片注释,不超过 140 字(可选) 2、华为认证证书核验链接: https://e.huawei.com/cn/talent/#/cert/certificate…

Java进阶学习笔记31——日期时间

Date: 代表的是日期和时间。 分配Date对象并初始化它以表示自标准基准时间(称为纪元)以来的指定毫秒数,即1970年1月1日00:00:00。 有参构造器。 package cn.ensource.d3_time;import java.util.Date;public class Test1Date {pu…

YOLOv10涨点改进:卷积魔改 | 分布移位卷积(DSConv),提高卷积层的内存效率和速度

💡💡💡本文改进内容: YOLOv10如何魔改卷积进一步提升检测精度?提出了一种卷积的变体,称为DSConv(分布偏移卷积),其可以容易地替换进标准神经网络体系结构并且实现较低的存储器使用和较高的计算速度。 DSConv将传统的卷积内核分解为两个组件:可变量化内核(VQK)和…

打造你的专属Vue组件:超实用“高级筛选弹窗组件“实战

打造你的专属Vue组件:超实用“高级筛选弹窗组件“实战 在现代前端开发中,组件化思想是提高开发效率、维护性和代码复用性的关键。本文将通过一个实例——创建一个自定义的“高级筛选”弹窗组件,来展示如何在Vue框架下利用Composition API和E…

内网安全:横向传递攻击(PTH || PTK || PTT 哈希票据传递)

内网安全:横向传递攻击. 横向移动就是在拿下对方一台主机后,以拿下的那台主机作为跳板,对内网的其他主机再进行后面渗透,利用既有的资源尝试获取更多的凭据、更高的权限,一步一步拿下更多的主机,进而达到控…

Mac电脑pd虚拟机专用windows系统镜像(m1/intel)win10、11镜像文件

入手了Mac电脑后,由于需要用到Windows软件,又嫌安装双系统太复杂,这时候Mac就用到了安装虚拟机,目前最好用的虚拟机是Parallels Desktop,win镜像版本要根据自己的喜好选对,在此提供分别兼容M1和Intel的win1…

WSL2-Ubuntu22.04-配置

WSL2-Ubuntu22.04-配置 准备1. WSL相关命令[^1]2. WSL2-Ubuntu22.04可视化3. WSL2 设置 CUDA4. 设置OpenGL 本文介绍了WSL2的基本使用方法及可视化,着重介绍了GPU和OpenGL的设置。 准备 名称版本windows11wsl2CUDA12.5 1. WSL相关命令1 查看已安装的wsl distribut…

AMS 仿真 ERROR

ERROR (OSSHNL-514): Netlist generation failed because of the errors reported above. The netlist might not have been generated at all, or the generated netlist could be corrupt. Fix the reported errors and regenerate the netlist. 原因:用的incisi…

假设检验学习笔记

1. 假设检验的基本概念 1.1. 原假设(零假设) 对总体的分布所作的假设用表示,并称为原假设或零假设 在总体分布类型已知的情况下,仅仅涉及总体分布中未知参数的统计假设,称为参数假设 在总体分布类型未知的情况下&#…

Solidity学习-投票合约示例

以下的合约有一些复杂,但展示了很多Solidity的语言特性。它实现了一个投票合约。 当然,电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。 我们不会在这里解决所有的问题,但至少我们会展示如何进行委托投票,…

解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的

昨天晚上一个站长求助明月,说是安装 WP Super Cache 插件的时候提示 advanced-cache.php 被占用了,无法完成安装,收到截图看了才明白原来提示的是“advanced-cache.php 文件,由另一个插件或者系统管理员创建的”,如下图…