Flutter 2.0正式发布,支持跨全平台

2021年3月4日,谷歌正式宣布了 Flutter 2 的推出。作为一款用于构建轻巧型移动应用的开源 UI 工具包,Flutter 的第二个大版本增加了对桌面和 Web 应用程序的支持。开发者可借助 Flutter 2 打造开箱即用的应用程序,并且能够为 iOS、Android、Windows、macOS、Linux 和 Web 端套用相同的代码。

Flutter的愿景

Flutter 的目标是改变开发人员对构建应用程序的思路,不是从开发者需要适配的平台开始,而是让开发者从需要完成的用户需求开始实现。

Flutter 可以让你在拥有更好设计效果的情况下,得到更好的用户体验,因为它的运行速度很快,它会将源代码编译为机器代码,但是 Flutter 在开发过程中支持的 hotload,所以也可以在应用程序调试运行时进行更改并立即查看结果。

在这次发布的Flutter 2中,Flutter 正式将从移动框架扩展到了全平台框架,使用 Flutter 2 开发者可以让它的应用直接运用到各种不同的平台而几乎不需要做出什么改变。现在仅 Play 商店就已经有超过15万个Flutter应用程序,并且每个应用程序都可以通过 Flutter 2 进行免升级,因为它们现在可以在不重写的情况下扩展到 Desktop 和Web 。

在 Google 内部也会使用 Flutter 开发,Google 内有近一千多名工程师正在使用 Dart 和Flutter 构建应用程序,其中许多产品都已经发布了,包括:Stadia,Google One和Google Nest Hub 等等。

在几个月前, Google Pay 里的旗舰移动应用就有不少更改为使用 Flutter,它们已经在生产力和质量上取得了重大进步。通过统一的代码库,团队消除了平台之间的功能差异,并清理超过一百万行代码,Google Pay 的报告还提到其工程师的效率要高得多,技术债务大大减少,统一的发布流程(如跨 iOS 和 Android 的安全性审查和试验)得以实现。

Flutter vs RN vs Ionic

下面有一张图说明Flutter与现行的RN,Ionic这些跨平台的应用框架的对比:

  • Ionic:Ionic提供了最差的性能,因为它到底是一个封装的web应用。

  • Flutter、NativeScript和React Native。这三个都为你提供了真正的原生应用(从你的代码中编译),因此,它们提供了比Ionic更好的性能。对这三者中谁是最好的做精确的测量是相当困难的,因为它依赖于你正在构建的应用程序、使用的设备、操作系统和使用的Flutter/ NativeScript/ React Native的版本。Flutter它具有Dart的优势,并且没有JavaScript桥来启动与设备原生组件的交互,它提供的速度是这三者中表现比较好的。

  • 原生:写得好的原生代码应该总是比编译后的原生代码性能更高。

Flutter2.0重大的变化

开发团队表示,Flutter 2.0 有意为 Web 平台提供了非常标准的、以 DOM 为中心的开发方式。尽管效果不错,这么做也可能带来性能方面的阻碍(尤其是更高级的功能)。

过去大约一年时间里,Flutter 团队开始研究基于WebAssemblyCanvas Kit项目,特点是采用了与为Android / Chrome提供支撑的相同的 Skia图形引擎。Tim Sneath 表示:“这意味着我们现在基本上可以绕过核心 HTML,并真正使用 Web 平台上以应用程序为中心的部分,而不会留下(自动完成的)文字或密码、以及让网络保持独特状态的各项特性”。桌面平台方面,谷歌宣布Canonical将在 Flutter 上全力以赴,并使之成为所有未来桌面 / 移动应用程序的默认选项。

上面演示Flutter应用,与原生应用。从上面的演示可以看出,flutter的性能是非常优秀的。

Flutter入门资料

【1】官方文档
【2】中文文档
【3】Flutter环境配置
【4】Flutter与前端

我们后续的内容中,也会去更新相关的Flutter学习的路径,请大家关注!~