不得不承认,当今已经是web时代,移动互联网时代,PC的桌面应用开发大部分也只能局限在行业/领域应用软件了。
不过,生产力、效率提升、工具类的桌面应用依然是我们日常最得力的助手。
作为一个业余Geek,有自己动手开发桌面工具情结,我倒是在桌面应用开发上“浪费”过一些精力,现将自己的经验做些总结,希望对也想入坑的小伙伴提供点参考。
说实话意义确实不大,以下是几种可能的意义
不一定,桌面开发所需要具备的技术能力和难度不一定比web开发差,换句话说让web开发者开发桌面应用未必you can up
不尽然,不过受web生态发展迅速的影响,会有一些组件和框架的差距
熟悉前端的可以考虑electron,
习惯Java的可以用一些GUI辅助工具,比如IntelliJ自带的GUI Designer实现拖动组件快速构建界面
electron
Electron | 使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用
按理说是应该这样,不过现在除了使用前端语言的包壳做法以外,其他的UI组件和逻辑代码还是没有很好的解耦
IM(微信/咚咚)
Mail(outlook等)
IDE(IntelliJ/WebStorm/VSCode/PyCharm……)
浏览器(chrome/Firefox/opera……)
办公套装(MSOffice/WPS/Adobe系列/PDF查看批注……)
本地工具( Navicat/SwitchHost/Typora/Postman )
笔记思绪( OneNote/Xmind/各种TodoList…… )
媒体播放( 网易云音乐/qq音乐…… )
生产/工业控制(CAD,各种车间操作台…… )
PC游戏(绝地求生、孤岛危机、极品飞车……)
框架/类库 | 语言/开发环境 | 适用平台 | 案例 |
---|---|---|---|
Qt(C++图形用户界面应用程序开发框架) | C/C++ | 跨平台 | WPS/极品飞车/AutoDesk/VLC…… |
WPF(微软用户界面框架) | .NET/C#/VB等 | Windows | 前后台分离(XAML、矢量图)应用广泛 |
WinForm | .NET/C# | Windows | 早期QQ |
MFC(微软类库) | C/C++ | Windows | 绘图/工业控制等 |
Swing/JavaFx/SWT | Java | 跨平台 | IntelliJ IDEA/eclipse |
NW.js(node-webkit) | HTML/CSS/JS | 跨平台 | 微信桌面版 |
Electron | HTML/CSS/JS | 跨平台 | VSCode/Typro/Postman/Skype/WhatsApp/Slack…… |
--我们最容易上手,语言最熟悉
优点:
缺点:
实例:
intellij-community
wechat_desktop
MooTool
--后面我会单独写一篇详细介绍如何不想投入太多学习成本,基于IntelliJ快速实现Swing界面
以及LookAndFeel、和spring结合、JavaFX、SWT、JNI等
--当下最流行,UI表现力最强,优点最多
优点:
缺点:
实例:
wewe-chat
https://electronjs.org/apps