前言
先说结论,目前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环境还无法构建。
