子標題:Ubuntu團隊爲全部Linux發行版上的Flutter應用程序製做了一個新的基於GTK +的主機。linux
此文翻譯自:https://medium.com/flutter/announcing-flutter-linux-alpha-with-canonical-19eb824590a9git
做者:克里斯·塞爾斯(Chris Sells)(Google)和肯·範丁(Ken VanDine)(Canonical)github
Google 對 Flutter 的目標一直是提供一個可移植的工具包,以構建媲美本機速度運行的精美UI,不管您使用的是哪一個平臺。爲了驗證該功能,咱們首先關注於Android和iOS移動平臺,咱們已經在Google Play上看到了8萬多個快速,精美的Flutter應用程序。小程序
爲了得到成功,一年多來,咱們一直將重點擴展到包括桌面級體驗,包括針對Web和桌面操做系統(macOS,Windows和Linux)的體驗。這項工做包括對引擎進行普遍的重構,以支持桌面樣式的鼠標和鍵盤輸入,以及可調整大小的頂級窗口。它還包括新的UI功能,能夠很好地適應桌面,例如Material Density支持和NavigationRail,還能夠經過Dart:FFI中的實驗與基礎桌面OS進行深度集成,並能夠訪問系統菜單欄和標準對話框。全部這些工做是爲了確保除了適合移動樣式的體驗以外,Flutter還準備處理功能齊全的全尺寸桌面應用程序。瀏覽器
爲Flutter平臺提供動力是咱們長期的願景。咱們已經在Google上看到了帶有Assistant等產品的清單,因此如今咱們很高興看到其餘人利用Flutter來支持更多平臺。今天,咱們很高興與全球最流行的臺式機Linux發行版Ubuntu的發行商Canonical共同宣佈Flutter的Linux alpha版本。微信
去年,當Google宣佈對Flutter提供桌面級應用程序支持時,Canonical看到了一個使人振奮的機會來進行Linux發行,包括Ubuntu,這是Flutter應用程序開發人員的有吸引力的目標平臺。 Flutter的原生跨平臺故事正在迅速發展,Canonical但願成爲先鋒。經過在Flutter中啓用桌面Linux支持,Canonical使得應用程序開發人員能夠很是輕鬆地經過Snap Store(Linux應用程序商店)爲Linux用戶發佈他們的應用程序。經過使Linux成爲一流的Flutter平臺,Canonical邀請應用程序開發人員將其應用程序發佈給數百萬Linux用戶,並擴大可供他們使用的高質量應用程序的可用性。網絡
有關Flutter的許多事情對於Canonical來講是使人興奮的:app
Google最初宣佈的Flutter桌面支持宣佈是從支持macOS的Alpha版本以及針對Linux和Windows的計劃開始的。Canonical 經過組建一支開發人員團隊與Google的開發人員合做,將Flutter的最佳體驗帶給大多數Linux發行版,從而對Flutter進行了重大投資。 Canonical將繼續與Google合做,以進一步改善Linux支持並保持與其餘受支持平臺的功能對等。框架
爲了證實Flutter已爲臺式機作好了準備,咱們與gskinner的設計師和開發人員合做,建立了創新的,精美的Flutter臺式機應用程序。 Flokk是一個真實世界的應用程序,可處理真實世界的數據,尤爲是您的Google聯繫人列表。ide
此視頻地址:https://www.youtube.com/watch?time_continue=120&v=cTFJcq7UTRY&feature=emb_logo
除了可以管理您的聯繫人(包括搜索聯繫人,添加新聯繫人和編輯現有聯繫人)以外,Flokk還使您能夠將GitHub和Twitter處理與您的聯繫人信息。
GitHub和Twitter通知的顯示將您的聯繫人變成您本身的我的社交網絡。並且,若是您在Flokk Contacts中沒有看到您喜歡的社交網絡,那麼好消息是Flokk是徹底開源的,所以您能夠提交PR來添加您喜歡的。
除了在社交空間中進行創新外,Flokk還使用Flutter功能使外觀看起來很棒。僅做爲一個示例,深色主題不只能夠切換顏色,還能夠對更改進行動畫處理。
Flokk Contacts應用程序背後的創意團隊由Grant Skinner領導,他以出色的設計和實施創新的用戶體驗而聞名。 Grant曾說過關於在Linux上使用Flutter:
「構建Flokk Contacts應用程序很是容易!咱們幾乎無需進行任何調整就能夠將咱們在Flutter上的全部專業知識應用於目標Linux,而且該應用程序運行出色。與Canonical團隊合做是一次很棒的經歷。他們熱心,投入並熱衷於使Flutter不只針對Linux,並且針對每一個平臺都變得更好。這是一個了不得的項目,我很高興可以使用Flutter定位另外一個主要的操做系統。」 —Grant Skinner
若是您想在Linux機器上使用Flokk應用,則能夠在GitHub上下載最新版本。或者,若是您正在快速運行,則能夠從Snap Store下載Flokk應用。
如今,您已經瞭解了Flutter在桌面類應用程序(尤爲是Linux)上的運行狀況,您將但願使其在本身的Linux機器上運行。爲使操做盡量簡單,咱們很高興在Snap Store中提供Linux版Flutter SDK。 Flutter SDK快照提供了在您喜歡的Linux發行版上開發Flutter應用程序所需的一切。無需安裝大量開發依賴項;只需安裝Flutter SDK快照和您最喜歡的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 SDK以後,要構建桌面應用程序,您須要升級到Flutter開發人員或主渠道。而後啓用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應用程序的Runner項目建立linux子目錄。
除了經過編寫Dart來建立Flutter小部件來支持桌面以外,您的Linux桌面應用還可使用平臺渠道或C / C ++的Dart外部功能接口訪問全部本機Linux。或者,若是您想重複使用現有代碼,則能夠在pub.dev,Dart和Flutter的程序包管理器網站上找到該代碼。在pub.dev上能夠找到的大多數軟件包都是純Dart的,大多數均可以在Linux應用程序中正常工做。有些軟件包(稱爲插件)中包含特定於一個或多個平臺的本機代碼。做爲此版本的一部分,咱們在pub.dev上發佈了三個使用Linux本機功能的插件:
您能夠在應用程序中使用這些插件中的每一個插件,並做爲如何從Flutter代碼本地訪問Linux的示例,例如 Linux implementation of url_launcher。
要將Flutter應用程序部署到Snap Store,首先須要安裝Snapcraft,該工具將用於快速構建和發佈應用程序:
$ sudo snap install snapcraft --classic
要驅動Snapcraft工具,您須要在應用程序的項目目錄中建立一個snapcraft.yaml文件。例如,這是Flokk的snapcraft.yaml文件:
name: flokk-contacts version: 1.0.1 summary: Flokk Contacts description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter. confinement: strict base: core18 grade: stable apps: flokk-contacts: command: flokk-contacts extensions: [flutter-master] plugs: - network parts: flokk-contacts: source: . plugin: flutter flutter-target: lib/main.dart # app's main entry-point file
如今,在帶有snapcraft.yaml文件的目錄中,您能夠運行snapcraft來構建應用程序的快照。
$ snapcraft
若是一切順利,這將在您當前的工做目錄中生成一個文件,例如flokk-contacts_1.0.1_amd64.snap。
設置好要在Snap Store中發佈的賬戶後,便可發佈snap:
$ snapcraft login $ snapcraft register flokk-contacts $ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
此命令會將應用程序上載到Snap Store,並嘗試將其發佈到邊緣通道。在邊緣通道中發佈應用程序後,能夠經過Snap Store Desktop客戶端或使用命令行來安裝它:
$ snap install --edge flokk-contacts
有關構建第一個快照並將其發佈在Snap Store中的更多詳細信息,請參閱 https://snapcraft.io/first-snap#flutter 以獲取指導教程。
Flokk應用程序是針對Linux桌面的真實Flutter應用程序的絕佳示例。對於更簡單的示例,您能夠查看照片搜索應用程序,該應用程序還專門用於展現桌面功能。
Photo Search是一個簡單的在線照片搜索應用程序,它使用多個插件來訪問本機平臺功能,同時支持macOS和Linux。
對於帶有分步說明的示例Linux桌面應用程序,我建議編寫Write Flutter桌面應用程序代碼實驗室,該教程將指導您使用OAuth和GraphQL在Flutter中構建GitHub客戶端。
對於一個功能更全面的應用程序,該應用程序可使用Flutter的更多表面積並提供幾個小程序,我推薦Flutter Gallery,該軟件去年進行了從新設計,以支持臺式機和移動設備。若是您但願看到它的實際效果,也能夠在Snap Store中查看。
Thorsten Lorenz製做的一款名爲batufo的多人遊戲是另外一個展現Flutter有趣之處的桌面應用程序。遊戲以美麗的背景爲背景,使來自世界各地的玩家能夠實時相互競爭。
Thorsten一直在開發該遊戲,以支持多個Flutter平臺,包括Linux,macOS,Android和iOS。若是您想了解他的工做方式並瞭解將來的更新,那麼他能夠將他的編碼會議做爲視頻提供,而將代碼提供給GitHub。要從Linux安裝遊戲,您能夠從Snap Store中將其下拉。
經過此Alpha版本以及Google與Canonical之間的緊密合做,Linux開發人員能夠爲其選擇的操做系統得到Flutter支持。經過快照安裝Flutter SDK。使用Visual Studio Code或Android Studio在Linux上構建和測試您的桌面應用程序。將您的應用程序部署到Snap Store。有關最新詳細信息,請參見flutter.dev上的桌面頁面。最重要的是,確保提供反饋,以便咱們可以繼續努力爲每一個受支持的Flutter平臺作最好的Flutter。
來自Canonical團隊的Linux Flutter,對於咱們的夢想是向前邁出了一大步,不管您將目標對準哪一個平臺,Flutter都是構建應用程序的最佳方法。針對臺式機的定位使得Flutter引擎更加適應Google自己沒法直接支持的長尾設備,但咱們計劃爲此繼續創建合做夥伴關係並實現生態系統。
不管哪裏的設備都須要快速,精美的應用程序,這就是咱們但願Flutter成爲的地方。
老孟Flutter博客地址(330個控件用法):http://laomengit.com
歡迎加入Flutter交流羣(微信:laomengit)、關注公衆號【老孟Flutter】:
![]() |
![]() |