使用 Flutter 开发跨平台桌面应用 Flutter Desktop Embedding

Flutter Desktop Embedding 是谷歌官方推出的一个兼容库,可将 Flutter 框架的 API 用于开发跨平台的桌面应用。

按文档的说法,只要把手机应用的源码改改,就能编译成桌面应用。此项目的目的是支持在 Windows,macOS 和 Linux上构建使用 Flutter 开发的应用程序。

它提供的 Flutter API,可处理绘图和鼠标/键盘输入的库,以及用于访问其他原生平台功能的可选插件。

如何使用本规范

配置

此项目的工具和构建基础结构要求您在与此项目的克隆相同的父目录中具有Flutter项目与flutter-desktop-embedding

或者,您可以将.flutter_location_config文件放在包含flutter-desktop-embedding的目录中,如果您不想在flutter-desktop-emebbing旁边放置Flutter树,则该文件包含要使用的Flutter树的路径。

存储库结构

该library目录包含核心嵌入库代码。有关构建和使用它的信息,请参阅那里的 README。

该example目录包含使用每个平台的库构建的示例应用程序。如果您只想看到正在运行的内容,或者想要查看如何使用该库的示例,请从那里开始。

此外,还有:

  • plugins:插件,提供对其他平台功能的访问。它们遵循与Flutter插件类似的结构。有关详细信息,请参阅 自述文件
  • third_party:此存储库使用的依赖关系,超出了Flutter本身。
  • tools:开发过程中使用的工具。目前这些由构建系统使用,但是在将来flutter可以添加提供与该工具类似的一些功能的开发者实用程序。

Flutter 应用

要求

由于桌面版本不是Flutter支持的平台,因此请务必阅读 Flutter应用程序需求文档,以获取有关如何设置Flutter应用程序以与此库一起使用的重要信息。

调试

可以调试桌面应用程序的Flutter端,但需要 修改工作流程。

反馈和讨论

对于错误报告和特定功能请求,您可以提交GitHub问题。对于一般性讨论和问题,有一个项目邮件列表。

在提交与构建错误或其他错误相关的问题时,请确保包含您正在使用的Flutter结帐的git哈希。这有助于加快调试过程。

注意事项

这不是官方支持的Google产品。

这是一项探索性工作,并不属于Flutter项目的一部分。有关Flutter 在桌面开发方面的官方立场,请参阅 Flutter常见问题解答。

许多对桌面开发有用的功能尚不存在。检查plugins目录以获取除绘图和事件处理之外的本机功能的支持。如果您需要的功能不存在,请提交功能请求或编写插件!

Linux和Windows实现目前使用GLFW。这不是任何一个平台的最终实现。