Flutter 在去年的时候就有一个第三方的桌面引擎, 是用 golang 开发的
Github 地址是:https://github.com/go-flutter-desktop/go-flutter
目前在 mac,linux,windows 均可用, 作为一个 mac 用户, 除了 retina 下字显得有点小, 感觉没有单独适配外, 总体感觉是优于官方的 desktop 引擎的
另外我是真实的 golang 脑残粉, 我觉得 golang 这东西真的太好了, 用 golang, 准不会错
文章目录
开发环境
需要的开发环境, 因为我是 MacOS, 我以 macOS 为例,其他的请参考对应的系统
- Xcode 命令行体系, 这个东西包含很多开发套件(Git), 无论你是否用 XCode 开发,都建议装一个…
- Flutter 环境和配套工具, 这个跑不掉,作为 flutter 开发者…
- go 语言环境(使用 brew 安装), 1.12+, IDE 用 Jetbrains 家的 goland (你用 VSCode 的话看你自己的情况)
环境安装
对 flutter 桌面版本感兴趣的一定接触过 flutter 开发, 我就默认你有 flutter 全套开发环境
go 语言环境安装
$ brew install go
如果你的 go 比较老, 请升级,使用$ brew upgrade go
配置 GOPATH 环境变量
$ vi ~/.bash_profile
export GOPATH=~/code/go # 这个是必须配置的, 等号后的部分根据你的情况修改, 简单来说里面放的是你自己的代码,不是go的SDK,不是go的SDK,不是go的SDK, 具体的话是你 go 语言的三方库源码/自己写的go代码/中间产物/应用程序所在的目录
PATH=$PATH:$GOPATH/bin # 这个是选配, 但是强烈建议配置,不然以后的go工具链需要全路径引用
你下载的 go 相关的东西会被装在这个文件夹里
go-flutter 的环境
需要使用一个叫做 hover 的工具, 这个工具是由 go 编写的, 编译打包运行都使用这个工具
$ go get -u github.com/go-flutter-desktop/hover
, 这样这个工具会被安装到$GOPATH/bin
目录下
[外链图片转存失败(img-rW5MQaWr-1562911906074)(https://raw.githubusercontent.com/kikt-blog/image/master/img/20190704163802.png)]
当你可以直接在命令行输入 hover 可以出现如下情况时就说明可用了
➜ ~ hover -h
Hover helps developers to release Flutter applications on desktop.
Usage:
hover [flags]
hover [command]
Available Commands:
build Build a desktop release
help Help about any command
init Initialize a flutter project to use go-flutter
run Build and start a desktop release, with hot-reload support
Flags:
-h, --help help for hover
Use "hover [command] --help" for more information about a command.
➜ ~
安装 hover 出现问题的话可以参考这里
运行 example
官方提供了几个 example: https://github.com/go-flutter-desktop/examples.git
cd /tmp
git clone https://github.com/go-flutter-desktop/examples.git flutter-examples
cd flutter-examples/pointer_demo
flutter pub get
hover run
通过以上几个步骤就可以把项目跑起来了
[外链图片转存失败(img-TDaZXXcg-1562911906077)(https://raw.githubusercontent.com/kikt-blog/image/master/img/20190704165918.png)]
是一个关于鼠标移入移出监听的 demo
将原项目改为 desktop
官方说明文档是这样的, 不想看英文的, 可以跳过官方文档直接看我的中文说明
[外链图片转存失败(img-JsgKYdHr-1562911906078)(https://raw.githubusercontent.com/kikt-blog/image/master/img/20190705150032.png)]
这里要注意, 因为插件系统的原因, 如果不是纯 dart 插件, 则插件内容不能用
我模拟一下这个过程, 创建一个+++的 helloworld 工程, 你如果是要改造已有项目, 则应该 cd 到你的 flutter 的根目录进行 $ hover init 项目url
的操作, 这里根据官方说, url 无所谓, 后面可改
flutter create flutter_example_1
cd flutter_example_1
flutter pub get
hover init github.com/Caijinglong/flutter-go-example # 初始化 desktop 工程
这时候运行项目$ hover run
会有一个提示: Target file "lib/main_desktop.dart" not found.
我们查询可知, 可能是考虑到兼容性的问题, go 引