3 月 3 日,Google 发布了 Flutter 2,众多更新功能引起了开发者的广泛讨论。Flutter 虽然是以 Dart 语言为基础,但是新版本中的桌面支持已经允许开发者将 Flutter 源代码编译为原生 Windows、macOS 或 Linux 桌面应用程序,并能够与桌面操作系统很好地集成。
Ubuntu 的发行商 Canonical 是 Flutter 的*支持者。在 Google 刚刚宣布针对 Linux 的 Flutter 桌面支持时,Canonical 就组建了一支开发人员团队与 Google 的开发人员合作,将 Flutter 的最佳体验带给大多数 Linux 发行版,并对 Flutter 进行了重大投资。
近日,Canonical 的 Ubuntu 桌面团队开始使用 Flutter 重写即将推出的全新桌面安装程序的用户界面。在 Flutter Engage 会议中,Ubuntu 团队终于展示了其新安装程序应用程序的早期演示,这也是 Canonical 的第一个官方 Flutter 应用程序。
Ubuntu 桌面工程经理 Ken Vandine 在会议中表示:“Canonica 不仅启用了 Flutter for Linux,同时还将与 Flutter 团队合作,将 Flutter SDK 发布在 Snap Store 上。Flutter SDK 将以快照的形式发布,我们可以非常轻松地安装和设置开发环境,以便在 Ubuntu 上使用 Flutter 构建移动、Web 和桌面应用程序。Flutter 将成为 Canonical 创建的未来移动和桌面应用程序的默认选择。”
除了新安装程序,Ubuntu 桌面工程经理 Ken Vandine:“Flutter 还将为预装 Ubuntu 的设备提供开箱即用的体验,同时 Ubuntu 团队将致力于在所有桌面平台上为 Flutter 提供全面的多窗口支持。开发者可以使用其提供的丰富的 Windows 类型工具箱,来创建有效的 UI 平台。”
Flutter 会为桌面应用程序带来大变化吗?
很早之前,就有人预测:“桌面下一个巨大变化一定是 Web 技术带来的。”但事实上,我们现在也没看到这个预测的实现。
Electron 应用程序可能是最接近这个预测的了。与 Flutter 一样,Electron 应用程序很受 Web 开发人员欢迎,因为它们更易于学习,构建速度更快,并且与开发者现有的技能也很契合。但是桌面用户并不是很看好 Electron,他们认为 Electron 应用程序性能差、不集成或不支持桌面功能、外观与传统应用程序也有明显“不同”。
而 Flutter 很好地消除了 Electron 应用程序的缺陷。它拥有更好的性能,允许开发者使用“模仿”其他系统 UI 的 Web 样式,例如为 iOS 构建的 Flutter 可以使用很多仿照 iOS 原生 UI 的部件。
当然,Flutter 虽然和 Electron 应用程序不同,但是它也因为存在某些缺陷,导致其无法在开发者之间得到广泛应用。比较突出的缺陷是,Google Flutter Gallery 中的所有示例几乎都不如原生应用程序,不仅使用感受不一样,甚至外观看起来也不同,即使你是在尝试模仿特定系统的外观。
很多时候都是细节决定成败,用户界面交互滞后、文本不规范等等都会让开发者不再使用这个工具。为了规范和统一,Ubuntu 将 Yaru 引入到了 Flutter,使开发者的应用程序能够与 Ubuntu 独特风格相匹配。Flutter 的 Yaru 软件包可以应用 Ubuntu 样式、颜色和字体。
Flutter 会为桌面应用程序发展带来大变化吗?如果从目前的现状来分析,还是需要一段时间,新的 Ubuntu 安装程序也许会淘汰一些应用程序,但是更多的 Linux 应用程序还是继续由开发者使用“real”工具包和编程技术来开发。
参考链接:
https://www.omgubuntu.co.uk/2021/03/ubuntu-building-apps-with-flutter-in-future