Google 對 Flutter 的目標一直是提供一個可移植的工具包,以構(gòu)建媲美本機速度運行的精美UI,無論您使用的是哪個平臺。為了驗證該功能,我們首先關(guān)注于Android和iOS移動平臺,我們已經(jīng)在Google Play上看到了8萬多個快速,精美的Flutter應(yīng)用程序。
為了獲得成功,一年多來,我們一直將重點擴展到包括桌面級體驗,包括針對Web和桌面操作系統(tǒng)(macOS,Windows和Linux)的體驗。這項工作包括對引擎進行廣泛的重構(gòu),以支持桌面樣式的鼠標和鍵盤輸入,以及可調(diào)整大小的頂級窗口。它還包括新的UI功能,可以很好地適應(yīng)桌面,例如Material Density支持和NavigationRail,還可以通過Dart:FFI中的實驗與基礎(chǔ)桌面OS進行深度集成,并可以訪問系統(tǒng)菜單欄和標準對話框。所有這些工作是為了確保除了適合移動樣式的體驗之外,F(xiàn)lutter還準備處理功能齊全的全尺寸桌面應(yīng)用程序。
為Flutter平臺提供動力是我們長期的愿景。我們已經(jīng)在Google上看到了帶有Assistant等產(chǎn)品的清單,所以現(xiàn)在我們很高興看到其他人利用Flutter來支持更多平臺。今天,我們很高興與全球最流行的臺式機Linux發(fā)行版Ubuntu的發(fā)行商Canonical共同宣布Flutter的Linux alpha版本。
為什么要在Linux上使用Flutter?
去年,當Google宣布對Flutter提供桌面級應(yīng)用程序支持時,Canonical看到了一個令人振奮的機會來進行Linux發(fā)行,包括Ubuntu,這是Flutter應(yīng)用程序開發(fā)人員的有吸引力的目標平臺。 Flutter的原生跨平臺故事正在迅速發(fā)展,Canonical希望成為先鋒。通過在Flutter中啟用桌面Linux支持,Canonical使得應(yīng)用程序開發(fā)人員可以非常輕松地通過Snap Store(Linux應(yīng)用程序商店)為Linux用戶發(fā)布他們的應(yīng)用程序。通過使Linux成為一流的Flutter平臺,Canonical邀請應(yīng)用程序開發(fā)人員將其應(yīng)用程序發(fā)布給數(shù)百萬Linux用戶,并擴大可供他們使用的高質(zhì)量應(yīng)用程序的可用性。
有關(guān)Flutter的許多事情對于Canonical來說是令人興奮的:
- 快速發(fā)展的應(yīng)用程序開發(fā)人員生態(tài)系統(tǒng)
- 多平臺支持
- 高度優(yōu)化的本機應(yīng)用程序
- 現(xiàn)代的UI框架,支持聲明式,反應(yīng)式和可組合的小部件
- 使用Visual Studio Code,Android Studio和IntelliJ的豐富開發(fā)平臺
Google最初宣布的Flutter桌面支持宣布是從支持macOS的Alpha版本以及針對Linux和Windows的計劃開始的。Canonical 通過組建一支開發(fā)人員團隊與Google的開發(fā)人員合作,將Flutter的最佳體驗帶給大多數(shù)Linux發(fā)行版,從而對Flutter進行了重大投資。 Canonical將繼續(xù)與Google合作,以進一步改善Linux支持并保持與其他受支持平臺的功能對等。
Flokk:證明Flutter已為臺式機做好準備
為了證明Flutter已為臺式機做好了準備,我們與gskinner的設(shè)計師和開發(fā)人員合作,創(chuàng)建了創(chuàng)新的,精美的Flutter臺式機應(yīng)用程序。 Flokk是一個真實世界的應(yīng)用程序,可處理真實世界的數(shù)據(jù),尤其是您的Google聯(lián)系人列表。
此視頻地址:https://www.youtube.com/watch?time_continue=120&v=cTFJcq7UTRY&feature=emb_logo
除了能夠管理您的聯(lián)系人(包括搜索聯(lián)系人,添加新聯(lián)系人和編輯現(xiàn)有聯(lián)系人)之外,F(xiàn)lokk還使您可以將GitHub和Twitter處理與您的聯(lián)系人信息。
GitHub和Twitter通知的顯示將您的聯(lián)系人變成您自己的個人社交網(wǎng)絡(luò)。而且,如果您在Flokk Contacts中沒有看到您喜歡的社交網(wǎng)絡(luò),那么好消息是Flokk是完全開源的,因此您可以提交PR來添加您喜歡的。
除了在社交空間中進行創(chuàng)新外,F(xiàn)lokk還使用Flutter功能使外觀看起來很棒。僅作為一個示例,深色主題不僅可以切換顏色,還可以對更改進行動畫處理。
Flokk Contacts應(yīng)用程序背后的創(chuàng)意團隊由Grant Skinner領(lǐng)導(dǎo),他以出色的設(shè)計和實施創(chuàng)新的用戶體驗而聞名。 Grant曾說過關(guān)于在Linux上使用Flutter:
“構(gòu)建Flokk Contacts應(yīng)用程序非常容易!我們幾乎無需進行任何調(diào)整就可以將我們在Flutter上的所有專業(yè)知識應(yīng)用于目標Linux,并且該應(yīng)用程序運行出色。與Canonical團隊合作是一次很棒的經(jīng)歷。他們熱心,投入并熱衷于使Flutter不僅針對Linux,而且針對每個平臺都變得更好。這是一個了不起的項目,我很高興能夠使用Flutter定位另一個主要的操作系統(tǒng)。” —Grant Skinner
如果您想在Linux機器上使用Flokk應(yīng)用,則可以在GitHub上下載最新版本?;蛘?,如果您正在快速運行,則可以從Snap Store下載Flokk應(yīng)用。
在Linux上輕松安裝Flutter
現(xiàn)在,您已經(jīng)了解了Flutter在桌面類應(yīng)用程序(尤其是Linux)上的運行情況,您將希望使其在自己的Linux機器上運行。為使操作盡可能簡單,我們很高興在Snap Store中提供Linux版Flutter SDK。 Flutter SDK快照提供了在您喜歡的Linux發(fā)行版上開發(fā)Flutter應(yīng)用程序所需的一切。無需安裝大量開發(fā)依賴項;只需安裝Flutter SDK快照和您最喜歡的IDE,便擁有了創(chuàng)建,構(gòu)建和發(fā)布Linux應(yīng)用程序所需的一切。
例如,如果您想開始為Linux開發(fā)Flutter應(yīng)用程序,并且您選擇的IDE是Visual Studio Code,那么這就是您在Linux終端上需要做的一切:
$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
如果您還想使用Linux開發(fā)移動應(yīng)用程序,則可以通過安裝Android SDK或Android Studio(包括Android SDK)來實現(xiàn)。有關(guān)Flutter SDK的更多信息,請訪問https://snapcraft.io/flutter
適用于Linux桌面的Flutter
在Linux機器上安裝Flutter SDK之后,要構(gòu)建桌面應(yīng)用程序,您需要升級到Flutter開發(fā)人員或主渠道。然后啟用Linux桌面支持:
$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop
現(xiàn)在,當您創(chuàng)建一個新的Flutter項目時,您將獲得一個linux子目錄,該目錄可讓您在Linux桌面上運行該應(yīng)用程序:
$ flutter create counter
$ cd counter
$ flutter run -d linux
您將獲得一個運行在Flutter上且運行于最新穩(wěn)定版本GTK +上的閃亮的Linux新應(yīng)用程序。如果您有一個現(xiàn)有的Flutter項目,并且希望在啟用Linux之后向其添加Linux支持,則可以添加linux子目錄,如下所示:
$ cd my_flutter_app
$ flutter create .
這將使用需要在Linux桌面上構(gòu)建和運行Flutter應(yīng)用程序的Runner項目創(chuàng)建linux子目錄。
從Flutter訪問Linux中的本機代碼
除了通過編寫Dart來創(chuàng)建Flutter小部件來支持桌面之外,您的Linux桌面應(yīng)用還可以使用平臺渠道或C / C ++的Dart外部功能接口訪問所有本機Linux?;蛘撸绻胫貜?fù)使用現(xiàn)有代碼,則可以在pub.dev,Dart和Flutter的程序包管理器網(wǎng)站上找到該代碼。在pub.dev上可以找到的大多數(shù)軟件包都是純Dart的,大多數(shù)都可以在Linux應(yīng)用程序中正常工作。有些軟件包(稱為插件)中包含特定于一個或多個平臺的本機代碼。作為此版本的一部分,我們在pub.dev上發(fā)布了三個使用Linux本機功能的插件:
- url_launcher: 在提供的URL上啟動默認瀏覽器
- shared_preferences: 應(yīng)用會話之間共享的用戶首選項
- path_provider: 有關(guān)專用目錄的路徑信息,例如下載,圖片等
您可以在應(yīng)用程序中使用這些插件中的每個插件,并作為如何從Flutter代碼本地訪問Linux的示例,例如 Linux implementation of url_launcher。
部署到 Snap Store
要將Flutter應(yīng)用程序部署到Snap Store,首先需要安裝Snapcraft,該工具將用于快速構(gòu)建和發(fā)布應(yīng)用程序:
$ sudo snap install snapcraft --classic
要驅(qū)動Snapcraft工具,您需要在應(yīng)用程序的項目目錄中創(chuàng)建一個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
現(xiàn)在,在帶有snapcraft.yaml文件的目錄中,您可以運行snapcraft來構(gòu)建應(yīng)用程序的快照。
$ snapcraft
如果一切順利,這將在您當前的工作目錄中生成一個文件,例如flokk-contacts_1.0.1_amd64.snap。
設(shè)置好要在Snap Store中發(fā)布的帳戶后,即可發(fā)布snap:
$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
此命令會將應(yīng)用程序上載到Snap Store,并嘗試將其發(fā)布到邊緣通道。在邊緣通道中發(fā)布應(yīng)用程序后,可以通過Snap Store Desktop客戶端或使用命令行來安裝它:
$ snap install --edge flokk-contacts
有關(guān)構(gòu)建第一個快照并將其發(fā)布在Snap Store中的更多詳細信息,請參閱 https://snapcraft.io/first-snap 以獲取指導(dǎo)教程。
Flutter Linux桌面案例
Flokk應(yīng)用程序是針對Linux桌面的真實Flutter應(yīng)用程序的絕佳示例。對于更簡單的示例,您可以查看照片搜索應(yīng)用程序,該應(yīng)用程序還專門用于展示桌面功能。
Photo Search是一個簡單的在線照片搜索應(yīng)用程序,它使用多個插件來訪問本機平臺功能,同時支持macOS和Linux。
對于帶有分步說明的示例Linux桌面應(yīng)用程序,我建議編寫Write Flutter桌面應(yīng)用程序代碼實驗室,該教程將指導(dǎo)您使用OAuth和GraphQL在Flutter中構(gòu)建GitHub客戶端。
對于一個功能更全面的應(yīng)用程序,該應(yīng)用程序可以使用Flutter的更多表面積并提供幾個小程序,我推薦Flutter Gallery,該軟件去年進行了重新設(shè)計,以支持臺式機和移動設(shè)備。如果您希望看到它的實際效果,也可以在Snap Store中查看。
Thorsten Lorenz制作的一款名為batufo的多人游戲是另一個展示Flutter有趣之處的桌面應(yīng)用程序。游戲以美麗的背景為背景,使來自世界各地的玩家可以實時相互競爭。
Thorsten一直在開發(fā)該游戲,以支持多個Flutter平臺,包括Linux,macOS,Android和iOS。如果您想了解他的工作方式并了解未來的更新,那么他可以將他的編碼會議作為視頻提供,而將代碼提供給GitHub。要從Linux安裝游戲,您可以從Snap Store中將其下拉。
摘要
通過此Alpha版本以及Google與Canonical之間的緊密合作,Linux開發(fā)人員可以為其選擇的操作系統(tǒng)獲得Flutter支持。通過快照安裝Flutter SDK。使用Visual Studio Code或Android Studio在Linux上構(gòu)建和測試您的桌面應(yīng)用程序。將您的應(yīng)用程序部署到Snap Store。有關(guān)最新詳細信息,請參見flutter.dev上的桌面頁面。最重要的是,確保提供反饋,以便我們能夠繼續(xù)努力為每個受支持的Flutter平臺做最好的Flutter。
來自Canonical團隊的Linux Flutter,對于我們的夢想是向前邁出了一大步,無論您將目標對準哪個平臺,F(xiàn)lutter都是構(gòu)建應(yīng)用程序的最佳方法。針對臺式機的定位使得Flutter引擎更加適應(yīng)Google本身無法直接支持的長尾設(shè)備,但我們計劃為此繼續(xù)建立合作伙伴關(guān)系并實現(xiàn)生態(tài)系統(tǒng)。
無論哪里的設(shè)備都需要快速,精美的應(yīng)用程序,這就是我們希望Flutter成為的地方。
|
|
到此這篇關(guān)于Canonical通過Flutter啟用Linux桌面應(yīng)用程序的文章就介紹到這了,更多相關(guān)Flutter啟用Linux桌面應(yīng)用程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!