0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在 I/O 看未来 | Flutter 和 Dart 最新进展

谷歌开发者 来源:未知 2023-05-29 19:25 次阅读
作者 / Google 开发者框架和语言 (含 Flutter、Dart 和 Go) 产品经理/用户体验总监 Tim Sneath

今年的 Google I/O 大会在位于加利福尼亚州山景城的总部附近举办,我们怀着无比激动的心情面向全球直播了这场盛会!

就在三个多月前,我们在肯尼亚内罗毕举行的 Flutter Forward 大会上为 Flutter 和 Dart 推出了一个大胆的新路线图。在此次 I/O 大会上,我们将通过介绍四个主题领域的最新动态,来分享我们在实现这一愿景方面取得的进展,这四个主题分别为: 突破性的图形性能、与 Web 应用和平台的无缝集成、对新兴架构的支持,以及对开发者体验的关注。

0869b1e0-fe13-11ed-90ce-dac502259ad0.png

您可能已经了解到,Flutter 是一个界面工具包,它让应用开发者只需编写一套代码,即可构建移动应用、Web 应用、桌面应用和嵌入式设备应用。您可以使用 Flutter 构建精致美观的应用,完全掌控屏幕上的每一个像素。Flutter 具有如下独特优势:
  • 快速。支持硬件加速图形和原生编译的机器代码,可充分利用设备的各种功能。

  • 高效。支持有状态热重载等技术,让您可立即看到代码更改在应用中的实际效果。

  • 可移植。使用一套源代码即可部署到多种平台,而不会出现意外情况。

  • 开源。它是一个完全开源的工具包,您无需支付许可费,也不用为相关开发工具付费。

Flutter 持续发展

在 Google 乃至整个行业中,Flutter 的使用量都在持续增长。在 Google,我们的团队已经在移动、Web 和桌面平台上部署了 Flutter 应用,示例包括:
  • Android 的最新应用 "Nearby Share" 适配 Windows。这款应用使用 Flutter 构建,允许在 Windows 和 Android 设备之间无线分享照片和文档:

    https://www.android.com/better-together/nearby-share-app/

  • 全新的 Play 管理中心应用。这款应用目前已发布公开 Beta 版,开发者可以通过它查看应用统计信息并回复应用评价:

    https://play.google.com/store/apps/details?id=com.google.android.apps.playconsole

  • Google Cloud 移动应用。这款应用让您可以通过全新的 Flutter 赋能体验来监控自己的服务:

    https://cloud.google.com/blog/products/management-tools/google-cloud-mobile-app-with-uptime-checks

  • Google 课堂练习集。这是一款在线新工具,用于创建和分发交互式作业,为学生提供实时反馈和帮助:

    https://workspaceupdates.googleblog.com/2023/04/practice-sets-for-google-classroom.html

我们在 Flutter Forward 大会上宣布团队正在使用 Flutter 构建新版本的 Google 课堂移动应用。新版本现已开始在 iOS 上推出,Android 应用更新版本中的新功能也即将推出。此版本的 Google 课堂使用最新的 Flutter 技术,包括我们最新的 Impeller 图形渲染引擎,可保证界面快速响应、不卡顿。

  • 我们在 Flutter Forward 大会上宣布

    https://www.youtube.com/watch?v=JVJF_M9bgj4


通过在 Flutter 中重写 Google 课堂,我们提升了 Google 课堂的性能。该应用的新版本比旧版本的冷启动时间更短,您可以观看下面这则对比视频了解详情:

我们正在持续投入资源开发 package,以便将您的 Flutter 应用运用到 Google 开发者生态系统的其他方面。这包括对原生广告的 Google Ads 支持进行了重大更新;新增了 Firebase 对 Windows 平台的支持,并改善了 Firebase 对 Web 的支持;同时还新增了对更深入的 Android 互操作性的实验性支持。

  • Google Ads 支持https://medium.com/flutter/2023-google-mobile-ads-updates-for-flutter-16b603df9ec9
  • 新增了 Firebase 对 Windows 平台的支持,并改善了 Firebase 对 Web 的支持https://github.com/firebase/flutterfire
  • 更深入的 Android 互操作性https://io.google/2023/program/2f02692d-9a41-49c0-8786-1a22b7155628/
由于 Flutter 支持在六大平台 (Android、iOS、Web、Windows、macOS 和 Linux)上使用,现在已有超过一百万款已发布的应用在使用 Flutter。这些应用来自世界各地,从法国铁路的火车旅行应用 SNCF Connect 到 Apple App of the Day 获奖应用 SO VEGAN;从 Rive 开发的用于创建动画图形的超快桌面应用到培养亲密关系的 Agapé 移动和平板电脑应用;从采用全新设计的精美 Global Citizen 应用最新的 Ubuntu Linux 安装程序,种类繁多。很高兴这些应用让 Flutter 的价值得到了证明!
  • SNCF Connecthttps://play.google.com/store/apps/details?id=com.vsct.vsc.mobile.horaireetresa.android&hl=en_US&gl=US
  • SO VEGANhttps://apps.apple.com/us/app/so-vegan/id1572826611
  • Rive 开发的用于创建动画图形的超快桌面应用https://rive.app/downloads
  • Agapéhttps://www.getdailyagape.com/
  • 采用全新设计的精美 Global Citizen 应用https://www.globalcitizen.org/en/content/new-global-citizen-app-impact-activism-every-day/
  • 最新的 Ubuntu Linux 安装程序https://9to5linux.com/first-look-at-ubuntu-23-04s-brand-new-desktop-installer-written-in-flutter

Impeller 带来的突破性图形性能

我们期待通过 Flutter 为开发者和设计人员提供强大的功能,以实现令人惊叹的图形体验。在过去的几年里,我们一直在重建图形渲染架构以提高速度和性能,现在终于取得了成果,我们将这款新引擎命名为 Impeller

"我们期待通过 Flutter 为开发者和设计人员提供强大的功能,从而实现令人惊叹的图形体验。"

自从在 iOS 上引入 Impeller 以来,我们不断扩大测试范围并加深与早期采纳者的合作,以验证生产质量并进一步调整性能。随着现下 Flutter 3.10 的发布,我们很高兴地宣布: Impeller 现在将在 iOS 设备上默认开启,只需迁移到最新版本的 Flutter 即可大幅提升应用的性能。

  • Impeller 现在将在 iOS 设备上默认开启

    https://github.com/flutter/flutter/issues/122223

与此同时,我们也将注意力转向为 Android 应用添加预览支持。正如 iOS 上的 Impeller 使用底层 Metal API 一样,Android 的 Impeller 实现建立在 Vulkan 之上。Vulkan 可提供低阶 API 以在底层图形硬件上进行快速渲染。虽然绝大多数现代 Android 设备都支持 Vulkan,但我们仍将支持较旧设备机型的向后兼容模式。我们将在即将发布的博文中分享适用于 Android 的 Impeller 的早期预览版,以及有关 Impeller 技术基础的更多详细信息。
  • Vulkan

    https://www.vulkan.org/

  • 现代 Android 设备

    https://developer.android.google.cn/about/dashboards#Vulkan

与 Web 应用的无缝集成

正如我们在 Flutter Forward 大会上介绍的那样,我们的目标与大多数现有的 Web 框架有所不同。我们为 Web 构建的 Flutter 的实现方式表明,Flutter 明显不是为了设计成通用的 Web 框架。已经有很多现有的 Web 框架,如 Angular 和 React,在这一领域表现的非常出色。然而,Flutter 是第一个围绕 CanvasKitWebAssembly (这两个技术特别适合用于打造复杂的应用体验) 等新兴 Web 技术进行架构设计的框架。
  • CanvasKit

    https://skia.org/docs/user/modules/canvaskit/

  • WebAssembly

    https://webassembly.org/

"Flutter 是第一个围绕 CanvasKit 和 WebAssembly 等新兴网络技术进行架构设计的框架。"

自最初 Flutter 推出 Windows 平台支持以来,我们一直在努力提高其性能、可用性和互操作性。

影响感知性能的一个主要因素是加载时间,即从用户请求页面到页面可交互所用的时间间隔。在此版本中,我们取得了飞跃性的进展,这要归功于在所有浏览器上缩减了 CanvasKit 的大小,并对基于 Chromium 的浏览器进行了其他方面的优化。在 Flutter 3.10 中,CanvasKit 的大小缩减到 1.5MB (之前版本中的大小为 2.7MB)。图标字体也去除了未使用的字形,在大多数情况下,其大小缩减至原来的百分之一。得益于这些优化,我们使用模拟数据线连接将默认计数器应用的加载时间缩短了 42%。

正如 Flutter Forward 大会上预告的那样,我们现在支持在现有 HTML 网页中嵌入 Flutter 内容,而不是让 Flutter 占据整个页面。此外,Flutter 也不需要使用内嵌框架。在 Flutter 3.10 中,我们引入了元素嵌入功能。借助该功能,您可以像在页面上集成任何其他 CSS 元素一样集成 Flutter 内容。例如,您可以应用复杂的 CSS 过渡和转换。若想开始体验,不妨试试这些使用 JavaScript 或将 Flutter 封装在 Angular 组件中的示例应用。

  • 支持在现有 HTML 网页中嵌入 Flutter 内容

    https://flutter-forward-demos.web.app/#/

  • JavaScript

    https://github.com/flutter/samples/tree/main/web_embedding/element_embedding_demo

  • Angular 组件

    https://github.com/flutter/samples/tree/main/web_embedding/ng-flutter

Flutter 3.10 继续专注于发展突破性的图形性能,还支持 Web 上的 fragment 着色。自定义着色器可用于提供超出 Flutter SDK 所提供的丰富图形效果。着色器是一种使用类似于 Dart 的小型语言 (称为 GLSL) 编写的程序,它会在用户的 GPU 上执行。如需了解更多信息,请查看我们关于着色器的文档以及新发布的 Codelab

  • fragment 着色器https://docs.flutter.dev/development/ui/advanced/shaders
  • GLSLhttps://www.khronos.org/opengl/wiki/Core_Language_(GLSL)
  • 关于着色器的文档https://docs.flutter.dev/ui/advanced/shaders
  • 新发布的 Codelabhttps://codelabs.developers.google.com/codelabs/flutter-next-gen-uis#0

借助 WebAssembly 实现对新架构的早期支持

WebAssembly (通常缩写为 Wasm) 作为适用于现代浏览器而无关平台的二进制指令格式已经日渐成熟。在 Web 应用上,Flutter 一直使用 Wasm 来分发 CanvasKit 运行时,而 Dart 框架和应用代码历来都被编译为 JavaScript。我们将感兴趣的目标从 JavaScript 转向 Wasm 已经有一段时间了。然而,直到最近,Wasm 仍然缺乏对 Dart 等垃圾回收语言的原生支持。

  • WebAssemblyhttps://webassembly.org/
  • 现代浏览器https://caniuse.com/wasm
因此,在过去的一年里,我们与 WebAssembly 生态系统中的多个团队合作,将垃圾回收引入标准之中。这是通过名为 WasmGC 的新扩展程序实现的,该扩展程序现在在基于 Chromium 的浏览器和 Firefox 浏览器中具有近乎稳定的实现。
  • WasmGC

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

WebAssembly 具有将原生代码的性能带到 Web 的潜力,这一点让我们兴奋不已。Dart 的 JavaScript 编译器已在 Google 的数百万行代码中使用,已经生成了执行速度快、优化良好的 JavaScript。然而,切换到 Wasm 将为我们提供原生代码的效率和 JavaScript 的可移植性,这将进一步提高我们在 Web 上的性能。在一些早期的基准测试中,我们看到执行速度提高到原来的 3 倍,而执行速度的提升会转化为更丰富的基于 Web 的体验。此外,借助 Wasm 我们能够与用其他语言 (如 Kotlin 和 C++) 编写的代码更轻松地集成在一起。

"WebAssembly 具有将原生代码的性能带到 Web 的潜力,这一点让我们兴奋不已。"

在翘首以盼浏览器支持变得更加普遍的同时,我们在预发布渠道中引入了对将 Flutter 应用编译为 WebAssembly 的预览支持。我们希望您能在自己的应用中试用该功能,并尽早与我们分享反馈。如需了解详情,您可以访问 flutter.dev/wasm:

https://flutter.dev/wasm

对开发者体验的持续关注

一方面我们希望通过前面列出的突破性的图形性能和更丰富的网络支持让更多用户满意,另一方面我们也在这个版本中为提升开发者的速度和效率进行了许多改进。并且我们详细的技术文档记录了对 Flutter 本身的数百项改进,这将引起目前 Flutter 开发者的极大兴趣。

  • 我们详细的技术文档记录了对 Flutter 本身的数百项改进https://medium.com/flutter/whats-new-in-flutter-3-10-b21db2c38c73

但在这个版本中,对核心开发者体验最显著的改进是发布了 Dart 3,包含在 Flutter 3.10 中

  • Dart 3https://dart.cn
Dart 3 完成了为 Dart 生态系统带来可靠的空安全 (null safety) 的漫长旅程。编写空安全代码可以防止因未经检查就使用未初始化的值而产生的一整类编程 bug。虽然我们从 Dart 2.0 开始就支持空安全代码,但现在已经关闭了传统的 "不安全" 模式。作为一个生态系统,我们已经为此准备了一段时间,排名前 1,000 的 packages 中有 99% 都支持空安全,现在是进行过渡的最佳时机。
"Dart 3 完成了为 Dart 生态系统带来可靠的空安全的漫长旅程。"

Dart 3 引入了许多其他新功能,包括记录、模式和类修饰符,这将提高 Dart 代码的可读性和流畅性。欢迎前往 Dart 3 博客,了解更多信息和示例。Flutter 本身已经在利用这些新的 Dart 3 功能,因此随着这些功能的推出,您会看到我们自己的代码库得到了改进。我们相信您会喜欢在自己的代码中使用这些功能。

  • Dart 3 博客https://medium.com/dartlang/announcing-dart-3-53f065a10635

SLSA 和软件供应链安全

在当今时代,我们不得不采取措施来防止对关键软件基础设施的威胁。因此,除了前面列出的功能外,我们的工程团队还将安全方面的投入列为今年的工作重点。这项投入涵盖安全测试、自动化和供应链安全。

  • 今年的工作重点https://medium.com/flutter/flutter-in-2023-strategy-and-roadmap-60efc8d8b0c7

"我们的团队已将安全方面的投入列为工作重点。"
我们将通过开展以下工作,进一步增强企业采用 Flutter 的信心:
  • 开源安全基金会 (OpenSSF) 最佳实践计划是帮助项目遵守安全和漏洞管理最佳实践的实用基准。很高兴地宣布,我们已经达成了这个计划合格水平的全部合格要求,并继续努力朝着符合白银级黄金级标准的方向前进。

  • Flutter 还在所有 Flutter 关键库上启用了 OpenSSF ScorecardsDependabot。OpenSSF Scorecards 是一种静态分析工具,用于检查您的库对最佳实践的遵守程度,并在这些实践没有被遵守时发现问题。Dependabot 可监控项目依赖项中是否存在漏洞,并创建拉取请求以便在必要时更新它们。利用这些工具,Flutter 团队已经在我们的网站和 Codelab 中发现并解决了 300 多个漏洞。

  • Flutter 和 Dart SDK 以及这些 SDK 的发布工作流程最近已达到 SLSA L1 等级。SLSA (软件制品的供应链等级) 框架可帮助开源项目保持强大的供应链安全性。达到 SLSA L1 等级是朝着保护 Flutter 开发者日常使用的工具迈出的重要一步。

  • 最后,我们对基础架构进行了多项安全改进,包括迁移到更安全的构建和测试环境,同时限制对这些环境的访问。此外,我们还改进了 Flutter 框架和引擎工件的日志记录和审核功能,为我们的工件提供了卓越的保护。这些改进让 Flutter 团队更深入地了解我们生成的工件在构建流程中的处理方式。

  • 最佳实践计划

    https://bestpractices.coreinfrastructure.org/en

  • 全部合格要求

    https://bestpractices.coreinfrastructure.org/en/projects/5631

  • 白银级

    https://bestpractices.coreinfrastructure.org/en/projects/5631?criteria_level=1

  • 黄金级

    https://bestpractices.coreinfrastructure.org/en/projects/5631?criteria_level=2

  • OpenSSF Scorecards

    https://securityscorecards.dev/

  • Dependabot

    https://github.com/dependabot/dependabot-core

  • SLSA L1

    https://slsa.dev/spec/v1.0/levels#build-l1

一个凝聚了开发者全员智慧的开源项目

此版本中还包含数以千计的其他更新,我们希望这些内容会让现有的 Flutter 开发者满意。但值得注意的是,这些贡献者中有相当一部分是 Google 以外的开发者,贡献内容包括开发新功能;改进文档;开发软件包,将 Flutter 扩展到我们从未想象到的领域;提交可重现的问题报告和功能请求,为我们提供了有关如何改进 Flutter 的新视角。

Flutter 不只是一个 Google 项目,而是一个全员参与的项目。我们非常感谢社区的多样性和热情参与,让 Flutter 蜕变至此。很高兴能与您一起完成这一使命,Flutter 将迈向更加光明的未来!

Betterment 开发者故事: 使用 Flutter 规模化构建理财应用

0896727a-fe13-11ed-90ce-dac502259ad0.gif 点击屏末||即刻访问 Flutter 开发者社区中文资源

089ce826-fe13-11ed-90ce-dac502259ad0.png

08a3f256-fe13-11ed-90ce-dac502259ad0.png

08aacb4e-fe13-11ed-90ce-dac502259ad0.png


原文标题:在 I/O 看未来 | Flutter 和 Dart 最新进展

文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    6139

    浏览量

    105061

原文标题:在 I/O 看未来 | Flutter 和 Dart 最新进展

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    揭秘超以太网联盟(UEC)1.0 规范最新进展(2024Q4)

    近期,由博通、思科、Arista、微软、Meta等国际顶级半导体、设备和云厂商牵头成立的超以太网联盟(UEC)OCP Global Summit上对外公布其最新进展——UEC规范1.0的预览版本。让我们一睹为快吧!
    的头像 发表于 11-18 16:53 125次阅读
    揭秘超以太网联盟(UEC)1.0 规范<b class='flag-5'>最新进展</b>(2024Q4)

    Qorvo射频和电源管理领域的最新进展

    了半导体行业的重大变革,还成功引领Qorvo成为射频技术的领导者。本次专访中,Philip将为大家分享Qorvo射频和电源管理领域的最新进展,并探讨HPA事业部如何通过技术创新应对全球电气化和互联化的挑战。
    的头像 发表于 11-17 10:57 283次阅读

    小鹏汽车图灵芯片及L4自动驾驶新进展

    的特定领域架构,进一步提升了其处理能力。 据悉,小鹏汽车已在今年10月份成功图灵芯片上跑通了智能驾驶功能,这标志着公司智能驾驶领域取得了重要进展。 除了图灵芯片,何小鹏还透露了小鹏汽车
    的头像 发表于 11-08 11:01 880次阅读

    鸿蒙Flutter实战:11-使用 Flutter SDK 3.22.0

    。 ┌───────────────┬─────────┬─────────────────┬──────────────┬──────────────┬────────┬───────┐ │ Version │ Channel │ Flutter Version │ Dart
    发表于 11-01 15:03

    芯片和封装级互连技术的最新进展

    近年来,计算领域发生了巨大变化,通信已成为系统性能的主要瓶颈,而非计算本身。这一转变使互连技术 - 即实现计算系统各组件之间数据交换的通道 - 成为计算机架构创新的焦点。本文探讨了通用、专用和量子计算系统中芯片和封装级互连的最新进展,并强调了这一快速发展领域的关键技术、挑战和机遇。
    的头像 发表于 10-28 09:50 316次阅读

    鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙

    添加依赖项,首先添加纯dart编写的包,再添加依赖于原生代码/插件的包。注意挨个添加依赖,不要一次添加太多依赖,方便排查定位问题, 解决版本依赖问题,鸿蒙Flutter项目目前需要依赖于3.7版本
    发表于 10-23 16:36

    鸿蒙Flutter实战:08-如何调试代码

    。 4.调试 Flutter 主要有两种调试方案。 方案一 IDE 中直接运行 Flutter 项目,IDE 可选择 Andriod Studio 或者 VsCode,调试栏点击
    发表于 10-23 16:29

    高燃回顾|第三届OpenHarmony技术大会精彩瞬间

    第三届OpenHarmony技术大会圆满落幕 全球开源精英齐聚 共同展示OpenHarmony技术、生态、人才的最新进展 见证OpenHarmony南北向生态繁荣 共绘开源生态发展蓝图 星光璀璨致谢
    发表于 10-16 18:47

    5G新通话技术取得新进展

    探讨5G新通话这一话题时,我们需首先明确其背景与重要性。自2022年4月国内运营商正式推出以来,5G新通话作为传统语音通话的升级版,迅速吸引了公众的目光,并引起了社会的广泛关注。它基于5G网络,代表了通信技术的新进展
    的头像 发表于 10-12 16:02 526次阅读

    谷歌Google Calendar、Tasks与Keep应用中成功整合Gemini模型

    谷歌于今日发布的I/O 2024开发者大会新闻中展现了其Google Calendar, Tasks以及Keep应用中整合Gemini模型的最新进展,为用户呈现出更为智能化的使用体验
    的头像 发表于 05-15 11:10 319次阅读

    广东的5G-A、信号升格和低空经济,又有新进展

    了两地的5G/5G-A、智算等数字基础设施建设,深入了解了他们信号升格和低空经济方面的最新进展。活动一共持续了三天,前后跑了8个项目,虽然很累,但收获满满。接下
    的头像 发表于 04-19 08:05 821次阅读
    广东的5G-A、信号升格和低空经济,又有<b class='flag-5'>新进展</b>!

    百度首席技术官王海峰解读文心大模型的关键技术和最新进展

    4月16日,以“创造未来”为主题的Create 2024百度AI开发者大会在深圳国际会展中心成功举办。百度首席技术官王海峰以“技术筑基,星河璀璨”为题,发表演讲,解读了智能体、代码、多模型等多项文心大模型的关键技术和最新进展
    的头像 发表于 04-18 09:20 663次阅读
    百度首席技术官王海峰解读文心大模型的关键技术和<b class='flag-5'>最新进展</b>

    四个50亿+,多个半导体项目最新进展

    来源:全球半导体观察,谢谢 编辑:感知芯视界 Link 近日,半导体行业多个项目迎来最新进展,其中浙江丽水特色工艺晶圆制造项目、浙江中宁硅业硅碳负极材料及高纯硅烷系列产品项目、晶隆半导体材料及器件
    的头像 发表于 02-27 09:35 951次阅读

    清华大学电子鼻传感器仿生嗅闻方向取得新进展

    近日,清华大学机械系电子鼻仿生嗅闻研究中取得新进展,相关研究成果以“Sniffing Like a Wine Taster: Multiple Overlapping Sniffs (MOSS
    的头像 发表于 02-20 10:57 919次阅读
    清华大学<b class='flag-5'>在</b>电子鼻传感器仿生嗅闻方向取得<b class='flag-5'>新进展</b>

    两家企业有关LED项目的最新进展

    近日,乾富半导体与英创力两家企业有关LED项目传来最新进展
    的头像 发表于 01-15 13:37 652次阅读