Windows应用软件开发有很多框架可以选择,例如比较流行的Electron、Qt、CEF、WPF、WinForm、MFC、DuiLib、SOUI等等。Flutter是近几年流行的全平台应用开发框架,可以进行Android、IOS、Web、MacOS、Windows、Linux等平台的应用软件开发。
一、Flutter介绍
Flutter是谷歌推出的一种移动应用开发框架,使用Dart语言编写。更多Flutter资料大家可参考Flutter官网: https://flutter.cn/。
Flutter 2.10 起,Windows 的支持已进入 stable 渠道! 本篇介绍Flutter Windows开发环境搭建,以及如何使用Flutter进行Windows应用软件开发。
二、Flutter Windows开发环境搭建
详细参考官网 https://flutter.cn/docs/get-started/install/windows
有以下几点需要注意
1 C++编译支持
Flutter Windows开发,依赖C++编译环境,因此需要先安装Visual Studio,安装时注意勾选C++模块、C++ Windows桌面开发模块。
2 查看电脑中是否有flutter dart环境
where flutter dar
3 必须在 Windows 10/11 上启用开发者模式
4 Flutter安装
Flutter开发语言是Dart,注意,不需要单独安装dart sdk, flutter sdk包含有dart 。
5 环境变量设置
根据官网的提示,进行配置环境变量,加入 flutter\bin 目录的完整路径,检测系统flutter开发环境
flutter doctor
结果如下:
三、Flutter IDE
Flutter开发环境推荐使用IDEA或VS Code,下面介绍IDEA Flutter环境配置。
1 IDEA配置
1 下载idea, 安装flutter插件
2 初次使用idea创建flutter项目,需要指定flutter的路径
2 创建Flutter项目
命令行
flutter create my_app
cd my_app
flutter run
输入数字1,选择在Windows上运行
执行flutter run生成的是Debug版exe
生成的exe路径 D:\my_study\FlutterLearning\my_app\build\windows\runner\Debug
要生成 release 版本,可以运行以下命令之一:
PS flutter build windows
flutter build macos
flutter build linux
例如windows
除了使用命令行创建,也可以在IDEA界面创建项目,建议在IDEA界面创建项目。
四、如何学习Flutter开发
Flutter开发分为两部分,先学习Dart,再学习Flutter.
1 Dart学习资料
使用Dart,需要Dart SDK,可以单独安装Dart SDK学习Flutter开发,也可以使用Flutter工具包自带的Dart SDK, 建议使用Flutter工具包自带的Dart SDK。
自 Flutter 1.19.0 dev 版本开始,Flutter SDK 在 flutter 命令脚本的同级目录下增加了 dart 命令,你可以更方便地运行 Dart 命令行程序。下载 Flutter SDK 时也会下载对应版本的 Dart SDK,但如果你单独下载了 Dart SDK,请确保 Flutter SDK 内的 dart 在你的环境变量中排在首位,因为单独的 SDK 可能并不兼容 Flutter SDK。下面的命令展示了 flutter 和 dart 是否来自相同的 bin 目录,并且是否可以兼容使用。
如何卸载Dart SDK,windows系统,Dart SDK一般安装在C:/tools目录,删除整个目录,然后把环境变量里和该路径的全部删除。
Dart学习文档1 https://dart.cn/samples
Dart学习文档2 https://www.dartcn.com/guides/language
2 Flutter学习资料
Flutter开发文档 https://flutter.cn/docs
Flutter实战电子书 https://book.flutterchina.club/
五、Flutter在桌面开发与Qt的对比
版权
Flutter开源,完全免费;Qt需要版权费。大部分在开发windows应用时不会为Qt付费,可能会选择Electron、或者WPF等矿建。Flutter在PC客户端开发目前还不完善,需要探索。
开发生态
Qt历史悠久,开发资料更多,生态成熟,Qt C++与系统交互更方便,性能接近Native,可参考的项目比较多,例如WPS、腾讯会议、剪映、亿图脑图、斗鱼、钉钉会议窗口等等; Flutter PC端生态较弱,基本无参考。
开发难度
就开发学习难度来说,无对此性,唯手熟尔。
框架选型
如果有Windows应用需求,可选择Qt、DuiLib、WPF,如果无Native交互需求,可选择CEF、Electron、tauri等等Web桌面客户端框架。近几年不建议使用Flutter进行桌面端开发,Flutter仍需要探索。