本文为你介绍谷歌 Flutter 2 的主要新功能和新特性,相比 Flutter 1.0 版本,其实 Flutter 2 的更新挺多的,但主要是以下这些,我们需要了解一下。
前言 谷歌已宣布推出了 Flutter 2,距离 Flutter 1.0 的发布才过去两年多,在这不算长的时间里,Flutter 团队处理了 24541 个 issue,合并了 17039 个 PR。这里值得一提的是,Flutter 团队特别感谢了以志愿者身份为 Flutter 提交 PR 的 contributor,他们都奉献了自己的业余时间来改进 Flutter。其中在 Flutter 2 开发期间最积极的一名 contributor 是来自中国成都的开发者 xu-baolin,其 GitHub 主页显示他就职于 OPPO,他的贡献主要是为 Flutter 引入空类型安全 (null safety)。
下面将介绍 Flutter 2 值得关注的新特性和新功能。可先参考谷歌发布Flutter 2源码下载,附主要更新介绍。
Flutter 2 更新发布详情 谷歌 Flutter 2 作为一款用于构建轻巧型移动应用的开源 UI 工具包,该版本增加了对桌面和 Web 应用程序的支持。开发者可借助 Flutter 2 打造开箱即用的应用程序,并且能够为 iOS、Android、Windows、macOS、Linux 和 Web 端套用相同的代码。 Flutter 产品负责人 Tim Sneath 表示:“版本号的大提升,主要归于对 Web 和桌面应用程序的支持。作为一个相当深远的支点,突然拥有如此广泛的产品特性,也是相当罕见的”。 得益于开放源代码的性质,Flutter 已经在 Web 和桌面应用程序的支持上公开测试了有段时间。在做好了相关准备、以及达成性能目标后,Flutter 2.0 大版本的到来也是水到渠成。 需要指出的是,Flutter 的桌面应用程序支持仍处于相对早期的阶段,但 Web 支持已经从 Beta 测试顺利转正。 开发团队表示,Flutter 2.0 有意为 Web 平台提供了非常标准的、以 DOM 为中心的开发方式。尽管效果不错,这么做也可能带来性能方面的阻碍(尤其是更高级的功能)。 在过去的时间里,Flutter 团队开始研究基于 WebAssembly 的 Canvas Kit 项目,特点是采用了与为 Android/Chrome 提供支撑的相同的 Skia 图形引擎。 Tim Sneath 表示:“这意味着我们现在基本上可以绕过核心 HTML,并真正使用 Web 平台上以应用程序为中心的部分,而不会留下(自动完成的)文字或密码、以及让网络保持独特状态的各项特性”。 桌面平台方面,谷歌宣布 Canonical 将在 Flutter 上全力以赴,并使之成为所有未来桌面/移动应用程序的默认选项。 有趣的是,微软也在扩大对 Flutter 的支持,并与谷歌一起在 Windows 平台上提供了对 Flutter 的支持。 考虑到微软近年来对 Android 生态产生了浓厚的兴趣,我们对此也并不感到意外。 谷歌指出,截止目前,其已迎来包括亚马逊、微软、Adobe、华为、阿里巴巴、eBay、Square 等公司贡献的超过 1.5 万个 Flutter/Dart 软件包。 展望未来,Flutter 团队还将继续为嵌入式设备和其它非传统平台框架提供支持,且该公司对 Flutter 如何帮助增强环境计算体验一事颇有兴趣。
Flutter 2 多出了以下主要的新功能和新特性 1、桌面 Flutter 对桌面的 stable 支持尚处于早期阶段,因此可以认为 Flutter 的桌面支持仍是 beta 支持,Flutter 团队预计 2021 年晚些时候提供 stable 支持。 主要改进的地方是针对桌面使用场景添加了许多小部件,使得某些特定于桌面的功能和交互更符合常见的使用体验。
以及支持更直观的 IME 输入。
2、iOS Flutter 表示,由于此前专注于提升对其他平台的支持质量,所以会让别人误以为放弃了 iOS,事实并非如此,他们强调 iOS 仍是 Flutter 主要支持的平台,并会继续努力带来重要的新功能和性能改进。 Flutter 2 合并了 178 个与 iOS 相关的 PR,其中包括无需打开 Xcode 即可直接从命令行构建 IPA 文件。 新增的 CupertinoFormSection, CupertinoFormRow 和 CupertinoTextFormFieldRow 小组件帮助开发者更轻松构建具有 iOS 美学风格的验证表单。
3、Android Studio/IntelliJ 扩展 IntelliJ 系列 IDE 的 Flutter 插件新增了许多面向 Flutter 2 的新功能,例如创建项目时的项目引导,其风格与 IntelliJ 的保持一致。
4、Visual Studio Code 扩展 Visual Studio Code 的 Flutter 插件也针对 Flutter 2 进行了改进,例如重新运行刚刚失败的测试。
此外,经过两年的开发,Dart 的 LSP(语言服务器协议)支持现已推出,并作为默认的方式提供给 Dart 分析器,以集成到 Visual Studio Code 的 Flutter 插件中。LSP 的支持在多个方面改进了 Flutter 的开发体验,包括支持在当前 Dart 文件中应用某种类型的所有修复程序,并使代码补全功能生成完整的函数调用,包括括号和所需参数。
用户体验 正在使用该版本,整体不错,但也有些缺点,例如与原生的交互(原生交互是硬伤,现在统一跨平台方案最好的还是React Native和Xamarin),但与优点比起来可以接受。另外,开发效率非常快,比安卓原生还快,用80%的时间出来200%的结束。
相关主题 |