前言
先说结论,目前Flutter还不能作为生成环境的桌面开发技术,这里仅作为尝鲜来学习。
有一些用其它桌面端开发技术非常容易实现的功能,但它无法实现比如
Flutter还不支持多窗口应用,只能通过一些不合理的方式实现,比如窗口背景透明,内部用子组件模拟窗口。
环境配置
Flutter环境
安装Flutter
解压,比如我放到了D:\Tools\flutter
目录
设置环境变量,添加
D:\Tools\flutter\bin
开启Windows支持
1 | flutter config --enable-windows-desktop |
目前正式版已经支持桌面端,如果想尝鲜新的特性可以切换到其他分支。
设置Flutter镜像
添加环境变量
属性 | 值 |
---|---|
PUB_HOSTED_URL | https://pub.flutter-io.cn |
FLUTTER_STORAGE_BASE_URL | https://storage.flutter-io.cn |
查看设置是否成功
CMD
1 | echo %PUB_HOSTED_URL% |
PowerShell
1 | $env:PUB_HOSTED_URL |
查看所有的环境变量
1 | ls env: |
切换其他分支
将flutter切换到beta分支上
1 | flutter channel beta |
flutter 分支介绍(运行flutter channel命令可以看到当前所在版本):
- master 最新版本,有新特性功能,也有新的bug
- dev 经过全面测试的版本,相比master会更稳定
- beta 每个月最稳定的dev版本会升级成beta
- stable 稳定版,生产环境建议使用该版本
步骤
1 | flutter channel beta |
C++环境
Flutter打包桌面端程序需要有C++开发环境
安装Visual Studio,下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/ 下载一下就ok了
创建运行项目
创建项目
1 | flutter create myapp |
运行项目
1 | cd myapp |
操作如图
输入1
,程序就运行起来了。
项目生成的目录如下
注意
运行过程中修改代码后,控制台中输入
r
,会进行热重载。默认exe生成位置在项目下
build\windows\runner\Debug
。下面的文章只作为记录,目前没有使用的必要。
热重载环境
Hover - Run Flutter apps on the desktop with hot-reload
网上都说这是一个打包工具,其实这个工具是热重载工具,并支持程序打包,但是实测现在还无法打包Winodows程序包,并且直接用flutter run
也是支持热重载的,所以目前没有使用的必要。
这个工具是GO写的,所以依赖GO环境。
配置GO环境
下载GO
安装后它会自动添加环境变量
查看版本
1 | go version |
成功显示
go version go1.16.3 windows/amd64
设置GO的代理地址
设置环境变量GOPROXY=https://goproxy.cn
修改默认的GOPATH
注意
修改这样主要是方便我们下载的三方程序默认在Go目录下,环境变量中不要包含bin,否则会出现两层bin目录。
配置GCC环境
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
解压后添加环境变量
1 | D:\Tools\mingw64\bin |
hover安装和环境配置
1 | go get -u github.com/go-flutter-desktop/hover |
稍等会hover就会出现在GOPATH
下
即go语言的SDK下面的bin文件夹下
进入项目下初始化
1 | cd myqpp |
初始化后项目下会产生一个go
文件夹
生成这个文件夹之后再执行
1 | hover run |
它会自动创建main_desktop.dart
文件
注意
运行过程中修改代码后,控制台中输入
r
,会进行热重载。项目下
go\build\outputs\windows-debug_unopt
就会自动生成exe文件。
构建
1 | hover build windows |
目前Windows环境还无法构建。