英文原文linux
Flutter團隊正在擴展Flutter,支持建立macOS、Windows和Linux應用程序。從長遠來看,這項工做將提供一個徹底繼承的解決方案,flutter create,flutter run 和 flutter build 在桌面平臺開發上的表現將和如今的移動平臺開發中同樣,可是目前這項工做還在進行中。git
下面提供了平臺情況的高級概述。github
詳細信息請參閱 源碼倉庫shell
重要提示:Flutter桌面API仍處於早期階段,若有更改,恕不另行通知。不會提供API或ABI的向後兼容性。Flutter更新以後,全部使用了Flutter的項目的代碼都須要作更新而且從新編譯。
這是最成熟的桌面平臺(出於一些緣由,它很是接近於咱們已經支持的iOS)。macos
桌面版中以Flutter開頭的類與iOS通用,因此應該基本穩定。以FLE開頭的類仍處於早期階段。windows
當前的 Windows shell 只是 GLFW 佔位符, 以便與前期實驗. 將來它將被 Win32 或者 UWP shell 替代,由於Win32 或者 UWP shell 容許在Flutter應用程序中嵌入view-level。app
預計,最終版本的shell APIs和當前實現的方式徹底不一樣。工具
和Windows同樣,當前 Linux shell 只是 GLFW 佔位符。咱們想建立一個庫,讓開發能夠任何部分嵌入Flutter,不管你使用GTK+, Qt, wxWidgets, Motif, 仍是其餘任意工具包。可是咱們尚未肯定一個好方法。開發工具
全部平臺都支持編寫插件(例如 flutter-desktop-embedding 這些插件),可是,目前依然不多有插件實際上具備桌面支持。ui
Flutter支持桌面的工具開發還在進行中。要使用任何桌面支持工具(例如用flutter devices列出主機)目前必須知足兩點:
ENABLE_FLUTTER_DESKTOP
環境變量爲true
。這是爲了不在指定長期解決方案時影響現有的移動開發工做流程(參見:#30724。默認狀況下,桌面庫未下載,能夠經過運行運行flutter precache
下載,根據你的你的操做系統帶上參數 --linux,--macos或 --windows。
Windows和Linux庫提供C語言API。爲了更容易使用他們,可使用C++包裝器,將其構建到應用程序,中以便與提供更高級的API調用。上面提到的flutter precache
命令會將這個包裝器的源碼下載到與該庫同目錄下的cpp_client_wrapper
文件夾中。
因爲目前沒有桌面shell工具的支持,你須要本身寫一個應用的運行工具,而且在庫裏連接,就像任何你使用的插件那樣。這將須要作一些你熟悉所使用的桌面系統的原生開發。若是你在桌面系統系統開發方面沒有經驗,你須要等到flutter桌面開發工具支持可用。
因此,使用Shells請參閱你所使用的操做系統的庫的頭。未來會補充更多的文檔。至於如今,能夠參考flutter-desktop-embedding
示例,也許會有啓發。
另外,你的Flutter桌面應用程序還須要bundle Flutter assets(由flutter build bundle建立)。在Windows和Linux你將還會須要Flutter引擎的ICU數據。(在你的Flutter目錄中下的bin/cache/artifacts/engine
查找icudtl.dat
)
目前你必須在XIB中設置FLEView,而不是在代碼中設置(之後會改)。以下: