无限可能 | Flutter 2 重点更新一览

Flutter 2正式发布,带来Web支持的稳定性提升,空安全特性,以及对桌面设备的Beta版支持。空安全增强了Dart语言的类型系统,防止null错误。Flutter web现在进入稳定阶段,提供更好的性能和CanvasKit渲染引擎。桌面设备支持即将进入稳定版,包括文本编辑优化、键盘和鼠标输入改进。此外,还增加了对桌面平台的命令行参数处理和输入法支持。同时,Google Mobile Ads SDK for Flutter进入Beta,支持更多广告格式。开发者工具如Flutter DevTools和IDE扩展也得到了显著改进,提供了更好的调试和性能分析功能。生态系统更新中,Firebase插件升级,DartPad支持Flutter 2,以及新增的“Plus”插件系列提供了额外功能。
摘要由CSDN通过智能技术生成

我们非常高兴在本周发布了 Flutter 2。自 Flutter 1.0 发布至今已有两年多的时间,在如此短暂的时间内,我们解决了 24,541 个 issue,合并了来自 765 个贡献者的 17,039 个 PR。自九月发布 Flutter 1.22 以来,我们已解决 5,807 个 issue,合并了来自 298 个贡献者的 4,091 个 PR。在此特别感谢广大的贡献者,将业余时间慷慨地投入到 Flutter 项目的优化中。Flutter 2 的杰出贡献者有 xu-baolin (贡献了 46 个 PR)、a14n (贡献了 32 个 PR;专注于为 Flutter 引入空安全) 和 hamdikahloun (贡献了 20 个 PR;优化了一系列 Flutter 插件)。然而,为 Flutter 项目做出贡献的不只有开发者,还有我们负责评审 1,525 个 PR 的众多 PR 评审员,其中包括 hamdikahloun (身兼数职!)、CareF 和 YazeedAlKhalaf (年仅 16 岁!) 等人。Flutter 是真正的社区合力之作,如果没有问题反馈者、PR 贡献者和代码评审员,版本 2 便无法问世,是你们带来了这一新版本。

  • xu-baolin

    https://github.com/xu-baolin

  • a14n

    https://github.com/a14n

  • hamdikahloun

    https://github.com/hamdikahloun

  • CareF

    https://github.com/CareF

  • YazeedAlKhalaf

    https://github.com/YazeedAlKhalaf

Flutter 2 的发布也带来了许多振奋人心的内容。您可以阅读昨天的图文《Flutter 2 正式发布!》,快速了解 Flutter 2 和 Dart 2.12 中的新增功能,以及我们的客户及合作伙伴是如何使用 Flutter 2 的。我们将在下周的图文中为大家详细介绍如何在生产环境中使用 Flutter web 稳定版并发挥其优势。

  • 详细了解 Dart 2.12

    https://medium.com/dartlang/announcing-dart-2-12-499a6e689c87

  • Flutter web 抵达稳定版里程碑

    https://medium.com/flutter/web-post-d6b84e83b425

下面我们一起来详细了解下 Flutter 2 的新增功能吧!

Web

从现在开始,Flutter web 的支持已经从 Beta 版过渡到稳定阶段。随着首个稳定版本的发布,Flutter 通过对 web 平台的支持,将代码的复用性提升到了一个新高度。现在,当您平稳运行 Flutter 应用时,可以将 web 作为一个新的适配方向。

作为一家致力于通过数字化实现卓越运营的现代移动虚拟网络运营商,Moi Mobiili 选择使用 Flutter 构建其 Mun Moi 客户经理应用,并在近期发布了其 web 版应用。

借助 web 平台的诸多优势,Flutter 为构建丰富的交互式 web 应用奠定了基础。我们的首要重点是提升性能并优化渲染。除了 HTML 渲染引擎外,我们还新增了一个基于 CanvasKit 的渲染引擎,以及一些如 Link Widget 等特定于 web 的功能,以确保您的应用能够像 web 应用一样在浏览器中稳定运行。

有关此 Flutter web 稳定版的更多详情,请参阅 Flutter web 发布文章:

  • Moi Mobiili

    https://www.moi.fi/

  • Link Widget

    https://pub.flutter-io.cn/documentation/url_launcher/latest/link/Link-class.html

  • Flutter web 发布文章

    https://medium.com/flutter/web-post-d6b84e83b425

空安全

健全的空安全是对 Dart 语言的重要补充,它通过区分可空类型和不可空类型来进一步加强类型系统。这使开发者能够防止 null error 崩溃,这也是导致应用崩溃的常见原因。通过将空检查合并到类型系统中,可以在开发期间捕获这些错误,从而防止生产环境中的崩溃。在包含 Dart 2.12 的 Flutter 2 中,健全的空安全得到了充分的支持。要了解更多细节,请参阅 Dart 2.12 发布文章:

  • Dart 2.12 发布文章

    https://medium.com/dartlang/announcing-dart-2-12-499a6e689c87

pub.dev 已经发布了超过 1,000 个空安全 package,包括来自 Dart、Flutter、Firebase 和 Material 团队发布的数百个 package。如果您也是 package 的作者,请参阅迁移指南并着手迁移事项。

  • 超过 1,000 个空安全 package

    https://pub.flutter-io.cn/packages?q=&null-safe=1

  • Dart

    https://pub.flutter-io.cn/packages?q=publisher%3Adart.dev&sort=popularity&null-safe=1

  • Flutter

    https://pub.flutter-io.cn/packages?q=publisher%3Aflutter.dev&sort=popularity&null-safe=1

  • Firebase

    https://pub.flutter-io.cn/packages?q=publisher%3Afirebase.google.com&sort=popularity&null-safe=1

  • Material 

    https://pub.flutter-io.cn/packages?q=publisher%3Amaterial.io&sort=popularity&null-safe=1

  • 迁移指南

    https://dart.cn/null-safety/migration-guide

桌面设备

在新版本中,Flutter 对桌面设备的支持已经进入稳定版本的前期准备阶段。也就是说,您现在可以尝试将其作为您 Flutter 应用的部署目标: 把它看作最终稳定版发布前的预览,最终稳定版本将于今年晚些时候发布。

Flutter 桌面版经过一系列大大小小的优化,才达到现在的质量。我们率先从文本编辑入手,确保其在每个支持平台上都能令文本选择点等基本功能获得如原生般的顺畅运行体验,并能够在键盘事件经过处理后将其取消。在鼠标输入方面,我们也已确保,当处理触摸输入以及在 Material 和 Cupertino 设计语言的 TextField 和 TextFormField 中添加内置上下文菜单,并在 ReorderableListView 上提供抓取控点时,使用高精度定点设备的拖放事件将立即开始,没有任何延迟。另外,内置的上下文菜单已经添加至以 Material 和 Cupertino 为设计语言的 TextField 及 TextFormField widget 中,ReorderableListView widget 添加了抓取控点功能。

  • 文本选择点

    https://github.com/flutter/flutter/pull/71756

  • 在键盘事件经过处理后将其取消

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

  • Material

    https://github.com/flutter/flutter/pull/74286

  • Cupertino

    https://github.com/flutter/flutter/pull/73882

  • 在 ReorderableListView 上提供抓取控点

    https://github.com/flutter/flutter/pull/74299

ReorderableListView 现已支持抓取控点,便于鼠标轻松拖动

开发者可以使用 ReorderableListView 轻松移动项目,但用户需要长按项目以启用拖动操作。该设计在移动设备上很合理,但很少有桌面平台的用户会想到用鼠标长按某个项目来移动它,所以新版本提供了一个适用于鼠标或触摸输入的抓取控点。按照同样的思路,对于因平台而异的惯用功能,新版本提供了一个经过升级的滚动条,可使其与桌面平台完美适配。

  • 经过升级的滚动条

    https://github.com/flutter/flutter/pull/71664

新版本中的滚动条 widget 已适配桌面平台

更新后的 Scrollbar Widget 为桌面平台提供了预期的相同交互功能,例如支持拇指拖动、点击滚动条空白区域进行上下翻页,以及将鼠标悬停在滚动条的任何部位以显示一个轨道等。此外,由于滚动条可以通过新增的 ScrollbarTheme 类设定主题,您可以根据您的应用对其外观和感觉进行个性化设计。

  • 新增的 ScrollbarTheme

    https://api.flutter.dev/flutter/material/ScrollbarTheme-class.html

对于其他桌面平台的特定功能,本版本还为 Flutter 应用启用了命令行参数处理,这样一来,您可以通过在 Windows 文件资源管理器中双击鼠标等简单操作来打开应用中的文件。此外,我们还努力使 Windows 和 macOS 上的大小调整操作变得更加流畅,并面向全球用户推出了输入法 (IME) 支持。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值