Electron
GitHub Stars: 115.7K
UI层面使用WebView,支持Vue、React等主流框架。
使用NodeJS作为中间层和系统通信,也可以使用C++/Rust等底层语言。
谁在维护框架?
GitHub、微软、开源贡献者在维护
框架的缺陷是什么?
- 一套代码支持Windows、MacOs、Linux
- WebView和Node.js为核心,其他语言作为扩展,降低开发门槛
- 有庞大的npm生态社区
框架的劣势是什么?
- 打包后体积大、内存占用高
- 启动速度慢,需要加载完整Chromium引擎
- 大型项目需要专门去做性能优化
Tauri 2.0
UI层面使用WebView,支持主流前端框架Vue、React等。
Tauri使用Rust与系统通信。
GitHub Stars: 90.1K
Discord 社区:总人数20K,活跃3K
项目发起时间:2019年初、2022年6月发布1.0版本
谁在维护框架?
基于开发者社区,这个是GitHub贡献者的数据。
框架优势是什么?
- 一套代码支持Windows、MacOs、Linux
- 基于WebView+Rust让整体体积相对其他框架小得多
- 性能和内存安全更好,因为使用了Rust
- 对于擅长Web的团队开发效率更高,但是Rust也是团队的局限
- 社区发展得很快,有很多贡献者
框架的缺陷是什么?
- Rust学习较为陡峭
- 生态并不是那么完善,某些功能要自己使用Rust写
Flutter Desktop
使用Dart语言、UI基于Flutter自带的组件库。
官网:flutter.dev/
GitHub Stars: 169K
谁在维护框架?
Google的Flutter团队、GitHub开源贡献者在维护
框架的优势是什么?
- 一套代码可兼容桌面端+移动端
- 高性能的渲染能力,拥有自带的组件库
- 热重载可以实时查看代码变化
框架的缺陷是什么?
- 桌面端资源占用率较高、打包体积较大 10MB+
- 社区资源对桌面端的支持有限,但是能满足大部分需求
- Dart语言是强类型语言,有一定学习成本
- 平台排错、调试不太方便
React Native
用React实现多端软件的开发
GitHub Stars: 121K
谁在维护框架?
Meta(Facebook)团队、微软在维护、以及社区贡献者。
框架的优势是什么?
- Web工程师上手很快
- 一套代码支持Windows、MacOS、Android、IOS
- npm大部分非UI相关包可直接使用
框架的缺陷是什么?
- Linux支持薄弱
- 跨平台调试工具不够成熟
- 针对桌面优化的UI组件较少
- ReactNative对桌面端的专注度不够,比较偏向移动端
总结
追求高性能的团队Flutter或Tauri提供最好的长期回报。
追求稳定的团队可以尝试使用Electron。
React Native的优势则是和React开发相差不大,熟悉React开发的可以快速上手,但性能一般。
我们团队选择Tauri,原因是Flutter调试不太方便,可以快速尝试一下Tauri。