谷歌刚刚发布了 Flutter 2.0 版本,它是 Flutter 的重大升级,借助Flutter 2.0 开发人员能从同一代码库构建跨平台软件,为任何平台创建美观、快速且可移植的应用程序。
但是今天的发布会可能主要是为了强调 Flutter 继续向移动应用过渡,不管它们在哪里都支持应用ーー网络、桌面,甚至是新兴的形式因素,如可折叠的应用。
Flutter 2.0 取得与 Android 和 iOS 的“平等”地位
在 2017 年的 I/O 开发者大会上,谷歌首次推出了 Flutter,它的 1.0 版本于 2018 年 12 月问世。支持 Android 和 iOS 应用程序,但是在此后的两年多时间里,谷歌在一定程度上扩展了对 web 应用、 MacOS、 Linux、 Windows 甚至嵌入式设备的支持。然而,这种支持只是在早期阶段提供的,要么是大多数开发人员无法获得的,要么不是为生产级应用设计的。
自 2019 年以来,Flutter 的网络开发工具包一直处于测试阶段,但今天它与 Android 和 iOS 这些“兄弟们”取得了平等的地位。对于桌面开发者来说,谷歌已经将 Flutter For Windows、 MacOS 和 Linux 过渡到主要的“稳定”发行版。
Flutter 产品经理 Tim Sneath 向外媒透露,“这对我们来说是一个巨大的里程碑,不仅因为代码本身已经可以用于高质量的产品,还因为过去只有极少数的 Flutter 用户可以使用它,这些用户正在运行发布前的软件开发工具包。”
Flutter 使用 Google 自己的 Dart 编程语言,旨在帮助开发人员构建在其所运行的每个平台上都感觉原生的应用程序,同时尽可能多地共享代码以避免重复工作。
Flutter 2.0 现在支持使用相同的代码库将本机应用程序发布到五个操作系统:iOS、Android、Windows、macOS 和 Linux; Windows Vista、Windows XP 和 Windows XP。以及针对 Chrome、Firefox、Safari 或 Edge 等浏览器的网络体验。Flutter 甚至可以嵌入到汽车,电视和智能家电中,为环境计算世界提供最普遍和最便携式的体验。
Flutter 开发套件的大量改进
在设计应用程序时,开发者需要考虑无数特定于平台的因素,包括人们如何与他们的设备互动(例如,移动设备上的触摸和滑动,桌面上的键盘和鼠标),用户在不同的屏幕尺寸上消费内容,甚至他们用来写作的语言。这就是为什么花一些时间才能在发行周期中改进各种 Flutter 开发套件的原因。
Tim Sneath 说:“为了达到这个阶段,我们做了大量的工作,包括增加国际化支持,例如针对中文等语言的 IME 编辑器,针对桌面支持的 TreeView 和 DataTable 等新小工具,以及对 Apple Silicon 驱动开发机器的更好支持。”
特别是在 Linux 方面,为 Ubuntu 相关项目提供商业化服务的公司 Canonical 今天透露,Flutter 现在已经成为 Ubuntu 操作系统桌面和移动应用程序开发的默认框架。 去年 7 月,谷歌和 Canonical 启动了 Flutter 向 Linux 领域的扩展,并促使 Canonical 的工程师为 Flutter 项目贡献了代码。
作为最新扩展的一部分,Canonical 公布了一个基于 Flutter 的 Ubuntu 安装程序的早期演示。
开源让 Flutter 蓬勃发展
在过去的十年中,开源运动得到了极大的发展,大多数主要的技术公司都在某种程度上接受了它。Facebook 已经开放了无数的内部项目,而谷歌本身对开源并不陌生。与此同时,微软一直在努力展示它在开源方面的全力以赴,最近还宣称它现在已经成为跨公司协作的公认模式。
谷歌可能是 Flutter 框架的最大贡献者,但这并不能说明全部情况。Sneath 提到,在所有参与这次发布的个人中,大多数都不在谷歌工作。他说:“当然,Flutter 不仅仅是一个核心框架,目前大约有 15000 个软件包,其中绝大多数来自非谷歌贡献者,如亚马逊、微软、 Adobe、华为、阿里巴巴、 eBay 和 Square。”
在最新版的 Flutter 中,微软做出了一些显著的贡献,特别是围绕其迅速增长的关注“可折叠”的外形因素,这可能需要设备的双屏幕。微软现在正在发布支持这些新设计的代码,允许应用程序利用其独特的功能。
这也突显出为什么开源对这个项目有意义,谷歌需要整个行业和生态系统的支持,才能让 Flutter 蓬勃发展,而且如果开发者能够完全访问代码库,他们就更有可能留下来。
Sneath 说:“软件开发人员能够看到整个堆栈的代码,这对 UI 框架来说是一个巨大的加分点。能够通过层进行调试,而不是直接进入黑盒子,这会提高开发人员的效率。如果一个控件或小部件不能完全满足您的需求,那么能够接受它并将其分支出去,这样可以确保框架本身永远不会成为一个限制因素。从一个纯粹自私的角度来看,开源意味着我们可以从一个有才华的社区获得贡献。能够让我们的客户同时提交一个 bug 和一个修复,或者私下修复某些东西,是另一个巨大的优势。”
现在,开发者已经可以开始使用 Flutter 2.0 了。