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

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

3天内不再提示

在 I/O 看未来 | 社区投稿 - 一文快速总结 Flutter & Dart 的现状和未来

谷歌开发者 来源:未知 2023-05-19 13:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 / 郭树煜,谷歌开发者专家 (Flutter & Dart GDE),《Flutter 开发实战详解》作者,掘金优秀作者(恋猫de小郭),Github GSY 系列开源项目负责人

原文发布于掘金

随着 Google I/O 2023 的发布,Flutter 3.10 和 Dart 3.0 也都正式发布了,不得不说如今 Dart 的版本号终于快追上 Flutter 的版本号了,特别随着 Dart 3 的发布,Flutter 在 records 和 patterns 的加持下,开发体验终于开始步入现代化语言的进程。

对于 Flutter 开发者来说,Flutter 3.10 和 Dart 3.0 可以说是新的分水岭详细介绍可见下方链接,接下来我们就来简单总结一下吧。

  • Flutter 3.10 发布https://juejin.cn/post/7231565908631633979
  • Dart 3 正式版发布https://juejin.cn/post/7231704360668839994

Flutter 3.10

Flutter 3.10 严格意义上讲并不算特大更新,因为它不是大家想象中的 4.0,但是 3.10 也带来了很重要的变更: iOS 默认使用开始使用 Impeller

在 3.7 版本中 Impeller 就被引入用于未来替换 Skia,原因是 Flutter 团队面对 Skia 上越来越多的问题无法有效快速推进,所以走上了自研 Impeller 的道路,而效果也显著。

3.10 里更新的大多数篇幅都集中在 iOS 上,可以看到 iOS 上的性能问题一直都在困扰 Flutter 团队,而 Impeller 就是解决的途径。

那么你问我升级到 3.10 是否可以默认就使用 Impeller?我的答案是否定的。对于生产项目,升级到 3.10 第一件事就是把 plist 里的 FLTEnableImpeller设置为 false,因为按照历史规律,能相对更稳定的 Impeller 大概就从 3.10.6 开始。

更建议下个版本才投入 Impeller 到生产,个人项目可以开始提前 beta。

当然逐步介入 Impeller 是必须使用的,因为下个版本很大概率 iOS 上的 Skia 就会开始被剔除。

还有一个比较实用的就是支持 Xcode 无线调试了。

另外本次更新的还有大量的 Material 3 控件,有新增的例如 NavigationBarNavigationDrawerSearchBar等,也有 DatePickeTimePickerBottomSheet的修改,但是我相信国内开发者大多都不是很关心 M3

目前需要在 MaterialApp主题配置下通过 useMaterial3才可以启用 M3,但是下个版本会变成默认,所以推荐这个版本开始先写 useMaterial3:false,反正我知道的国内设计师都不大认可 M3。

本次还提供了一个骚气的 API ColorScheme.fromImageProvider,从图片生成对应的 ColorScheme,我只想问大家会用它来配置主题颜色并使用么?

79324c34-f607-11ed-90ce-dac502259ad0.gif

对了,现在默认颜色变成紫色了。

Web 的主要更改就是支持 fragment shader 和不用 iframe 可以把 flutter web 嵌套到其他 Web 下,目前 Flutter Web 的未来还是在于 Dart。

  • fragment shaderhttps://docs.flutter.dev/development/ui/advanced/shaders

Dart 3 开始预览支持的 WebAssembly native 代码是官方未来的主流方向,也就是 htmlcanvas 模式慢慢会是 "非主流"。

新的 Dart 编译为 Wasm 模块会在加载时间、性能和一致性上得到更好体验,同时针对浏览器团队合作,将新的 WasmGC 规范内置到生态中,从而实现真正的 native web。

那么可以预见,随着 Flutter 3.10 的发布,接下来的 Flutter 未来路线就更加明朗:
  • 更稳定的 iOS Impeller

  • Impeller 支持 Android

  • Skia 退出历史舞台

  • Web 在 Dart native Wasm 的支持下天平倾向 CanvasKit

  • 使用 Skia 的 PC 和 Web 与使用 Impeller 的 mobile 会出现更明显的渲染差异化

最后,不得不说 Flutter 在游戏支持这条路上也越走越远,而和去年一样,今年同样发布了预热小游戏 I/O FLIP该款小游戏是使用 AI 设计的纸牌游戏,作为第二款 I/O 游戏,构建依然采用了 Flutter 和 Firebase 开发构建,整体体验上像是 Demo 版本的炉石传说。

  • I/O FLIPhttps://juejin.cn/post/7231378331139997757

794a81aa-f607-11ed-90ce-dac502259ad0.gif

结合之前 2023 Flutter Forward 大会上演示的真 3D 游戏 Demo,可以看到未来 Flutter 在游戏领域还会持续发力,期待明年 I/O 有更好的游戏答卷。

  • 2023 Flutter Forwardhttps://juejin.cn/post/7192646390948823098#heading-6

Dart 3

Dart 3 的到来其实是可以预见的,因为自从 Flutter Forword 发布了 Dart 3α 预览 之后,大家就对 Dart 3 有了一定的概念,其中最最最重要的就是,现在强制 null safety 了。

  • Dart 3α 预览https://juejin.cn/post/7194741144482218045

可能你会说不是 null safety 很久了吗?但是现在 Dart 3 开始是强制性的 null safety,也就是删除对 running without sound null safety 的支持

其实我见到很多同志依然还在使用非 null safety 的 Dart,是时候要升级了,跑不掉的。

Record, patterns 和 class modifiers 带来的生产力这里就不多说了,感兴趣的可以去看上面的详细介绍,随着 Record, patterns 和 class modifiers 的加入,Dart 在现代语言的语法糖中终于逐步走上正轨,虽然还是「菜鸟」,但是它在慢慢站起来了

对于未来,Dart 还有两个主力的方向:
  • native interop: 现在 Dart 通过 dart:ffi已经可以直接和原生语言进行交互,比如 Java Kotlin interop 以及 Objective-C 和 Swift interop 等,那么未来是不是可以不再需要写 Plugin,直接通过 native interop 来实现?现在 Dart 上的大部分数据库实现都已经是 ffi 的接入支持。

  • 编程支持: 例如在 json 序列化支持上一直是 dart 的诟病,但是元编程的规模和固有风险,目前 Dart 团队正在采取一种更有效和彻底的方法进行探索,虽然没有具体的时间,但是还是可以有所期待

  • Kotlin interophttps://dart.dev/guides/libraries/java-interop
  • Objective-C 和 Swift interophttps://juejin.cn/post/7137874832988831751

总体上 Dart 的定位也在从 Flutter 领域对外拓展,比如前面提到的 I/O 小游戏,它的后端也是使用 Dart 编写,目前 pub.dev 上的知名数据库,也都支持脱离 Flutter 单独使用。

最后

虽然本次 Flutter & Dart 并不是 Google I/O 的主角,但是可以感受到 Flutter 和 Dart 团队满满的诚意,Flutter 和 Dart 也在逐步实现 Flutter Forward 大会时的承诺,同时在逐步向用户展示他们未来的可能。

最后,可以明确一点: Flutter 3.10 和 Dart 3 还是有坑,但是这不会它们的终点,未来的 Flutter 和 Dart 会更加精彩

7af1c7a2-f607-11ed-90ce-dac502259ad0.png  

谷歌开发者

7b0f87ce-f607-11ed-90ce-dac502259ad0.png

在微信和微博平台搜索 "谷歌开发者"

关注官方账号

7b352844-f607-11ed-90ce-dac502259ad0.gif 点击屏末||即刻阅读掘金社区作者原文

7b477ca6-f607-11ed-90ce-dac502259ad0.png

7b4f3d9c-f607-11ed-90ce-dac502259ad0.png

7b88c972-f607-11ed-90ce-dac502259ad0.png


原文标题:在 I/O 看未来 | 社区投稿 - 一文快速总结 Flutter & Dart 的现状和未来

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


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

    关注

    27

    文章

    6244

    浏览量

    110255

原文标题:在 I/O 看未来 | 社区投稿 - 一文快速总结 Flutter & Dart 的现状和未来

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    罗德与施瓦茨宣布推出新频段 R&S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    瓦茨(以下简称“R&S”)今年的欧洲微波周(EuMW)上展示频率覆盖高达54GHz的新型号ZNB3000,此系列矢量网络分析仪助力工程师快速获得测量结果。R&SZNB
    的头像 发表于 12-04 17:04 181次阅读
    罗德与施瓦茨宣布推出新频段 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    国产嵌入式工控机以AMP扩展实现37路I/O的解决方案

    康仕推出的NIS-5130-AGV嵌入式工控机,以其革命性的AMP扩展接口设计,实现了高达37路数字I/O的接口密度,为AGV、工业自动化等领域带来了全新的解决方
    的头像 发表于 12-04 14:36 348次阅读
    国产嵌入式工控机以<b class='flag-5'>AMP</b>扩展实现37路<b class='flag-5'>I</b>/<b class='flag-5'>O</b>的解决方案

    Android Studio中的Gemini全面支持DartFlutter开发

    Android Studio 中创建 Android 应用的 Flutter 开发者将迎来次重大的飞跃: Android Studio 中的 Gemini 已全面支持 Dart
    的头像 发表于 08-06 13:52 1076次阅读
    Android Studio中的Gemini全面支持<b class='flag-5'>Dart</b>和<b class='flag-5'>Flutter</b>开发

    AI的未来,属于那些既能写代码,又能焊电路的“双栖人才”

    的信号:AI真正的未来,不只属于“算法天才”,更属于那些既能写代码,又能焊电路的“双栖工程师”。无论是AI芯片、智能终端、机器人、边缘计算还是大模型下沉的讨论中,我们不断听到同个问题:“谁能把它
    发表于 07-30 16:15

    读懂超声波换能器:原理、应用与未来趋势

    换成机械功率,也就是超声波,然后再将这些超声波传递出去,而自身仅消耗极少的部分功率 。这种能量转换的过程,就像是场精密的魔术表演,无声无息中完成了电能与机械能的奇妙转换。 从结构上
    发表于 06-23 16:51

    新知|Verizon与AT&amp;amp;amp;T也可以手机直接连接卫星了

    近日,Verizon与AT&amp;T宣布,手机直连卫星方面取得重要进展,使用普通手机实现了通过卫星的视频通话。很显然,Verizon与AT&amp;T的这举措是针对此前T-Mobile
    的头像 发表于 06-19 07:07 893次阅读
    新知|Verizon与AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T也可以手机直接连接卫星了

    【「零基础开发AI Agent」阅读体验】+关于AI Agent开发入门的第印象与相关官方文档和社区资料的内容补充

    能提供,当然更好。 另外书中提到了心智能体平台和扣子平台,我也就关于他们的网址资料做了总结: 介绍心智能体(AgentBuilder)平台的官方网站是https
    发表于 04-22 18:16

    工业电机行业现状未来发展趋势分析

    过大数据分析的部分观点,可能对您的企业规划有定的参考价值。点击附件查看全文*附件:工业电机行业现状未来发展趋势分析.doc 本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第
    发表于 03-31 14:35

    FPGA+AI王炸组合如何重塑未来世界:看看DeepSeek东方神秘力量如何预测......

    正以550万美元的&amp;quot;拼多多模式&amp;quot;,冲击万亿级市场格局。 AI时代,FPGA与AI的结合正在重塑未来的芯片生态,主要体现在以下几个方面: 1.技术
    发表于 03-03 11:21

    双模载波芯片CN8513&amp;amp;amp;CN8514智能家居中的创新应用

    双模载波芯片CN8513&amp;CN8514智能家居中的创新应用
    的头像 发表于 02-10 09:43 965次阅读
    双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514<b class='flag-5'>在</b>智能家居中的创新应用

    解析大尺寸金刚石晶圆复制技术现状未来

    高功率固态电子器件领域极具应用潜力。 然而,金刚石的高硬度和生长速率低、尺寸小等问题,限制了其大尺寸晶圆制备中的应用。今天,我们就同深入探究大尺寸金刚石晶圆复制技术的发展现状未来
    的头像 发表于 02-07 09:16 943次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解析大尺寸金刚石晶圆复制技术<b class='flag-5'>现状</b>与<b class='flag-5'>未来</b>

    I/O接口与I/O端口的区别

    计算机系统中,I/O接口与I/O端口是实现CPU与外部设备数据交换的关键组件,它们功能、结构
    的头像 发表于 02-02 16:00 2807次阅读

    新品| Atomic Echo Base 语音识别底座 &amp;amp;amp; GroveY Cable 连接线

    新品:AtomicEchoBase&amp;GroveYCable01AtomicEchoBaseFEATURESAtomicEchoBase是款专为M5Atom系列主机设计的语音识别底座,集成
    的头像 发表于 12-27 18:35 1321次阅读
    新品| Atomic Echo Base 语音识别底座 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; GroveY Cable 连接线

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

    引言 之前的文章鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙中,介绍了如何改造项目,适配鸿蒙平台。 文中讲述了整体的理念和思路,本文更进步,结合可实操的项目代码,详
    发表于 12-26 14:59

    如何判断产品需不需要做AT&amp;amp;amp;T认证?AT&amp;amp;amp;T测试内容和要求分享

    随着经济全球化的发展,国内越来越多产品厂商选择将自家产品出口到北美市场,而这时候各位厂商都会面临产品需不需要做AT&amp;T的问题。今天英利检测针对这问题整理了些关于AT&amp
    的头像 发表于 12-23 17:46 1020次阅读
    如何判断产品需不需要做AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T认证?AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T测试内容和要求分享