更新详情 | Flutter 3.22 与 Dart 3.4

作者 / 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.mzph.cn/news/846240.shtml

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

相关文章

记一次mysql索引优化

生产日志告警出现一条慢 sql 告警, 通过 sql 监控平台拿到 这条sql 语句是 : SELECTid,report_id,report_detail_id,item_code,report_type,photo FROM**** 表 WHEREdel_flag 0 AND (report_type 1 AND report_detail_id IN ( 1742 )) 之后用 explain 分析这条 sql 的命中…

FPGA新起点V1开发板(九)——流水灯

文章目录 一、模块框图二、代码编写三、注意点四、总结 一、模块框图 二、代码编写 endmodule下面需要敲出一个回车代码拼接是大括号 led < {led[2:0],led[3]}注意二进制和十进制 module flow_led(input sys_clk50,input rst_n,output reg [3:0] le…

Java开发分析工具:JProfiler 14 for Mac/win 激活版下载

JProfiler是一款功能强大的Java应用程序性能分析工具&#xff0c;适用于Java开发人员和企业用户&#xff0c;可帮助他们识别和解决Java应用程序中的性能问题&#xff0c;提高应用程序的性能和稳定性。使用JProfiler&#xff0c;开发人员可以实时查看Java应用程序的性能数据&…

Redis数据类型(下篇)

5.Redis有序集合zset(sorted set) 本质就是在set的基础上&#xff0c;每个val值前面加了一个score分数值。 &#xff08;1&#xff09;向有序集合中添加多个&#xff08;或者一个&#xff09;元素和其对应的分数 127.0.0.1:6379> zadd zset1 100 a 90 b 80 c 70 d 60 e (…

【VMware虚拟机中ubuntu系列】—— 在虚拟机中使用本机摄像头的详细教程与常见问题分析及解决

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、虚拟机调用本机摄像头(1) 启动VMware USB 服务(2) 连接本机摄像头(3) 测试摄像头的连接 二、安装usb驱动二、运行usb_cam.launch时出现select timeout的报错…

vulhub中Nexus Repository Manager 3 未授权目录穿越漏洞(CVE-2024-4956)

Nexus Repository Manager 3 是一款软件仓库&#xff0c;可以用来存储和分发Maven、NuGET等软件源仓库。 其3.68.0及之前版本中&#xff0c;存在一处目录穿越漏洞。攻击者可以利用该漏洞读取服务器上任意文件。 环境启动后&#xff0c;访问http://your-ip:8081即可看到Nexus的…

npm发布、更新、删除包

如何将自己开发的依赖包发布到npmjs上供别人使用&#xff1f;五个步骤搞定&#xff01; 实现步骤&#xff1a; 创建自己的工具包项目&#xff0c;进行开发。注册npmjs账号。执行npm login在控制台登录&#xff0c;填写用户信息。执行npm publish发布包。更新及删除。 步骤一…

MongoDB~俩大特点管道聚合和数据压缩(snappy)

场景 在MySQL中&#xff0c;通常会涉及多个表的一些操作&#xff0c;MongoDB也类似&#xff0c;有时需要将多个文档甚至是多个集合汇总到一起计算分析&#xff08;比如求和、取最大值&#xff09;并返回计算后的结果&#xff0c;这个过程被称为 聚合操作 。 根据官方文档介绍&…

虚拟化软件(VMWare、VB)异常最后解决手段

Version V0.0&#xff1a;20240601 Ini 前言 这里描述的是常规的解决办法还是无法解决的严重问题&#xff0c;比如”虚拟化软件(VMWare、VB)“启动”虚拟机“、和”CPU硬件加速“开启不了等问题。 一、安装了加速器、游戏平台、模拟器的电脑 解决办法&#xff1a; 把这些…

把AI引入到低代码领域

前言 引入AI到低代码开发平台&#xff0c;如驰骋低代码&#xff0c;能够带来显著的利益和价值&#xff0c;具体体现在以下几个方面&#xff1a; 1. 提升开发效率 自动化设计&#xff1a;AI可以帮助设计者自动规划菜单体系&#xff0c;减少手动设计的时间和错误。快速表单设计…

【MySQL】聊聊order by 是如何排序的

CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB;构建一个表结构&#xff0c;以及数据。 本篇主要来分析下order by是如何进…

springboot游戏售卖商城网站-计算机毕业设计源码80257

摘 要 本论文主要论述了如何使用JAVA语言开发一个springboot 游戏售卖商城网站&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用springbootvue.js相结合框架&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径&#xff08;跳过&#xff09;1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图&#xff1a; 2 添加了Web3D场景选择按钮&#xff0c;可以选择目标课程或者学习房间。

eNSP学习——连接RIP与OSPF网络、默认路由

目录 相关主要命令 实验一、连接RIP与OSPF网络 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP和OSPF网络 3、配置双向路由引入 4、手工配置引入时的开销值 实验二、使用OSPF、RIP发布默认路由 原理介绍 实验目的 实验内容 实…

LeetCode 算法:盛最多水的容器c++

原题链接&#x1f517;&#xff1a;盛最多水的容器 难度&#xff1a;中等⭐️⭐️ 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以…

回文串算法题

回文串是一个正着读和反着读顺序一样的字符串。"aba" 是回文串&#xff0c;"abba" 是回文串&#xff0c;"abc" 不是回文串。 回文串的题目&#xff0c;都要使用一个基本的逻辑&#xff0c;就是判断当前这个字符串是不是回文串。以 c 为例&#…

六一去哪儿,跟着蒙自源开启一段关于童年记忆与美味奇妙旅程

夏日微风轻拂&#xff0c;童心随风起舞。在这个充满欢声笑语的季节里&#xff0c;蒙自源诚挚地邀请您和您的家人&#xff0c;一同参加为六一儿童节精心准备的庆祝活动&#xff0c;共同开启一段关于童年记忆与美味的奇妙旅程。 从5月25日起&#xff0c;蒙自源的各大门店将化身为…

【R语言入门】 在Anaconda Navigator平台使用R语言编程

R语言入门 - 在Anaconda Navigator平台使用R语言编程 R Essentials - Using R Programming Language on Anaconda Navigator Platform By JacksonML 02/06/2024 1. 安装Anaconda Navigator 为了持续研究数据科学&#xff0c;笔者一开始就在电脑上安装了Jupyter Notebook&am…

services层和controller层

services层 我的理解&#xff0c;services层是编写逻辑代码语句最多的一个层&#xff0c;非常重要&#xff0c;在实际的项目中&#xff0c;负责调用Dao层中的mybatis&#xff0c;在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…