Flutter全平臺制霸再進一步:實現Linux桌面應用支持

Flutter 的“野心”不止於跨平臺開發,而是全平臺制霸:iOS、Android、Web、Linux 我全都要!

Flutter:走向全平臺制霸

Flutter 作爲谷歌出品的移動 UI 框架,在快速構建 iOS 和 Android 應用及開發、高性能、可移植性上表現優秀,並可以與現有代碼一起工作,基於這些特點使其越來越受到開發者的推崇。近幾年來我們也看到了越來越多國內外基於 Flutter 開發的最佳實踐,目前 Google Play 上也已經湧現了超過 8 萬個用 Flutter 實現的兼具快速與精美特點的應用程序。

谷歌此前給 Flutter 的目標一致都是提供一個可移植的框架,從而在各種平臺上都能構建以原生速度運行的精美 UI。這意味着在谷歌眼裏,iOS 和 Android 應用的跨平臺開發不是 Flutter 的終極,它的野心是做一個制霸全平臺開發的主流框架。iOS 和 Android 只是開始,遠非結束。

過去一年多時間,谷歌團隊一直在將 Flutter 跨平臺開發的支持擴展到桌面端上,包括 Web、macOS、Windows 和 Linux 幾大平臺。

在去年的 Google I/O 大會上,谷歌團隊宣佈了自己的實驗性的桌面項目,並逐步把相關成果融合至 Flutter 引擎當中以作爲主版本的新增內容。雖然該項目還沒有達到生產級水平,但已經可以供愛好者們嚐鮮,在 Mac、Windows 及 Linux 等桌面平臺上開發 Flutter 應用程序。

在這一過程中,谷歌重構了 Flutter 引擎的大量代碼,以支持桌面端的鼠標和鍵盤輸入以及可調整大小的頂級窗口。Flutter 還針對桌面端新加入了很多 UI 特性,如 Material Density 支持和 NavigationRail,以及 Dart:FFI 中的實驗特性,和接入系統菜單欄和標準對話框等,從而深度集成進桌面 OS 底層。由此以來,Flutter 便可以用來構建全功能、全尺寸的桌面應用了。

而在 7 月 8 日,谷歌與 Ubuntu 的發行方 Canonical 共同發佈了 Flutter 在 Linux 上的第一個 Alpha 版本,標誌着 Flutter 向 Linux 桌面端的擴展之路正式邁出了第一步!

爲什麼要在 Linux 上使用 Flutter?

當谷歌在去年宣佈要爲 Flutter 添加桌面級應用程序支持時,Canonical 就意識到這對於 Linux 發行版來說是一個大好機遇。Flutter 有望大大簡化 Linux 應用的開發過程,應用程序開發人員可以非常輕鬆地通過 Snap Store(Linux 應用程序商店)爲 Linux 用戶發佈他們的應用程序。Linux 成爲一流的 Flutter 目標平臺後,開發人員就可將其應用傳播給數以百萬計的 Linux 用戶,這些用戶將會有更多高質量的應用可用。

對於 Linux 平臺來說,Flutter 有很多頗具吸引力的優秀特性:

  • 蓬勃發展的應用程序開發人員生態系統
  • 多平臺支持
  • 高度優化的原生應用程序
  • 現代 UI 框架,支持聲明式,反應式和可組合的小部件
  • 包括 Visual Studio Code、Android Studio 和 IntelliJ 在內的豐富開發平臺支持

Canonical 組建了一支開發團隊與谷歌緊密合作,努力將 Flutter 帶入 Linux 世界。兩家公司未來將繼續合作改進 Flutter 的 Linux 支持,並確保 Linux 平臺的支持水平與其他平臺對等。

爲了證明 Flutter 已爲桌面端做好了準備,Canonical 與 gskinner.com 的設計師和開發人員合作,創建了一個創新而精美的 Flutter 桌面應用程序——Flokk

除了能夠管理用戶的聯繫人(包括搜索聯繫人、添加新聯繫人和編輯現有聯繫人)之外,用戶在 Flokk 中還能將 GitHub 和 Twitter 處理的信息與聯繫人相關聯。此外,Flokk 還使用了一系列 Flutter 特性來改進 UI 體驗。例如,應用不僅有深色主題,而且在切換顏色主題時還有動畫效果。

Flokk Contacts 應用背後的創意團隊由 Grant Skinner 領導,他以出色的設計和打造創新的用戶體驗而知名。Grant 是這樣評價在 Linux 上使用 Flutter 的體驗的:

“構建 Flokk Contacts 應用非常容易!我們幾乎無需進行任何調整就可以將我們在 Flutter 上的所有專業知識應用在 Linux 目標平臺上,並且成品應用運行起來非常出色。與 Canonical 團隊合作是一次很棒的經歷。他們熱心,投入並充滿激情,努力讓 Flutter 在包括 Linux 的所有平臺上都有更好的表現。這是一個了不起的項目,我很高興能夠使用 Flutter 爲另一個主流操作系統開發應用。”

在 Linux 上安裝 Flutter

爲了讓用戶可以輕鬆地在自己的 Linux 系統中安裝 Flutter,谷歌和 Canonical 在 Snap Store 中提供了 Linux 版的 Flutter SDK snap

Flutter SDK snap 打包了在 Linux 上開發 Flutter 應用所需的一切內容。無需安裝衆多開發依賴項,只需安裝 Flutter SDK snap 和 IDE 即可創建、構建和發佈 Linux 應用程序了。

例如,如果你想爲 Linux 開發 Flutter 應用程序,並且你選擇的 IDE 是 Visual Studio Code,那麼只需在 Linux 終端上輸入:

$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter

如果你還想使用 Linux 開發移動應用,則可以安裝 Android SDK 或 Android Studio(後者包括了 Android SDK)來實現目的。有關 Flutter SDK 的更多信息,請訪問:

https://snapcraft.io/flutter

適用於 Linux 桌面的 Flutter

在 Linux 機器上安裝 Flutter SDK 之後,你需要訪問 Flutter dev(或 master)通道並啓用 Linux 桌面支持以構建桌面應用:

$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop

現在,當你創建一個新的 Flutter 項目時將獲得一個 Linux 子目錄,這樣你的應用就可以作爲桌面應用運行在你的 Linux 機器上了:

$ flutter create counter
$ cd counter
$ flutter run -d linux

你將獲得一個使用 Flutter 構建,且運行在 GTK+ 最新穩定版本上的全新 Linux 應用程序。如果你有一個現有的 Flutter 項目,並且希望在啓用 Linux 目標後向這個項目添加 Linux 支持,則可以像下面這樣添加 Linux 子文件夾:

$ cd my_flutter_app
$ flutter create .

這樣你的項目就可以運行在 Linux 桌面上了。

寫在最後

Flutter 項目從誕生之初就備受矚目,有谷歌背書的 Flutter 不僅設計優秀,而且在規劃與執行力上也非常規開源項目可比。谷歌爲了支持 Flutter 的發展,不僅打造了 Dart 語言,更是做了時間、節奏精準的規劃,即便是在只能支持移動平臺的發展初期,也毫不掩飾自己全平臺制霸的“野心”。

在過去的一段時間裏,我們看着 Flutter 一步步從愛好者的“玩物”到開發團隊的嚐鮮再到生產級的使用,也許明年,Linux 平臺的 Flutter 已經可以在生產環境中發光發熱了。

Flutter:小孩才做選擇,大人全都要!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章