Flutter最近又發佈了1.2版本,網上相關應用開發資料如雨後春筍般爆增。今天給大家請介紹一個可以讓Flutter工程打包後可以運行到主流的三大操作系統平臺,windows\macos\linux。
項目開源地址:https://github.com/google/flutter-desktop-embedding
該項目的目的是支持 在Windows,macOS和Linux上構建使用Flutter的應用程序。
它包含實現Flutter嵌入API,處理繪圖和鼠標/鍵盤輸入的庫,以及用於訪問其他本機平臺功能的可選插件。
如何使用本準則
如果您有一個現有的Flutter應用程序並且只想讓它運行,請在繼續之前查看快速入門頁面。
配置資源
此項目的工具和構建基礎結構要求您在與此項目的克隆相同的父目錄中具有Flutter樹:
├─ flutter (from https://github.com/flutter/flutter) └─ flutter-desktop-embedding (from https://github.com/google/flutter-desktop-embedding)
或者,您可以將.flutter_location_config文件放在包含flutter-desktop-embedding的目錄中,如果您不想在flutter-desktop-embedding旁邊放置Flutter樹,則該文件包含要使用的Flutter樹的路徑。
工具
您將需要適用於您平臺的開發人員工具:
- Linux:最新版本的GCC
- macOS:Xcode的當前版本
- Windows:Visual Studio 2017
在Linux和Windows上,您還需要gn和ninja:
- ninja
- gn
確保兩個二進制文件都在您的路徑中。
存儲庫結構
該library目錄包含核心嵌入庫代碼。有關構建和使用它的信息,請參閱那裡的 自述文件。
該example目錄包含使用每個平臺的庫構建的示例應用程序。如果您只想查看正在運行的內容,或者想要查看如何使用該庫的示例,請從那裡開始。
此外,還有:
- plugins:插件,提供對其他平臺功能的訪問。它們遵循與Flutter插件類似的結構。有關詳細信息,請參閱 自述文件
- third_party:此存儲庫使用的依賴關係,超出了Flutter本身。
- tools:開發過程中使用的工具。目前,構建系統使用這些,但是將來flutter可以添加提供與該工具類似的一些功能的開發者實用程序。
應用要求
由於桌面不是Flutter支持的平臺,因此請務必閱讀 Flutter應用程序需求文檔,以獲取有關如何設置Flutter應用程序以與此庫一起使用的重要信息。
調試
可以調試桌面應用程序的Flutter端,但需要 修改工作流程。
要調試Flutter引擎,您可以使用本地引擎構建。
反饋和討論
對於錯誤報告和特定功能請求,您可以提交GitHub問題。對於一般性討論和問題,有一個項目郵件列表。
在提交與構建錯誤或其他錯誤相關的問題時,請確保包含您正在使用的Flutter結帳的git哈希。這有助於加快調試過程。
對於構建錯誤,請運行:
tools/run_dart_tool doctor
在提交錯誤或通過電子郵件發送列表之前,確保您已正確設置所有基本依賴項。
注意事項
- 這不是官方支持的Google產品。
- 這是一項探索性的努力。有關Flutter 在桌面開發方面的官方立場,請參閱 Flutter常見問題解答。此處的代碼和示例以及它們使用的桌面Flutter庫不適合生產使用。
- 許多對桌面開發有用的功能尚不存在。檢查plugins目錄以獲取除繪圖和事件處理之外的本機功能的支持。如果您需要的功能不存在,請提交功能請求或編寫插件!
- Linux和Windows實現目前使用GLFW。這不是任何一個平臺的最終實現。
試玩
如果大家覺得此工程比較複雜只想初步嘗試一下效果可以訪問:https://feather-apps.com
相關使用說明請參閱:https://juejin.im/post/5c18a187f265da615304b2c7
更多想法和建議請留言交流