桌面端跨端框架调研

Electron

官网:www.electronjs.org/

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与系统通信。

官网:v2.tauri.app/

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实现多端软件的开发

官网:reactnative.dev/

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。

相关推荐
素界UI设计44 分钟前
开源网页生态掘金:从Bootstrap二次开发到行业专属组件库的技术变现
前端·开源·bootstrap
潘小安1 小时前
【译】六个开发高手使用的 css 动画秘诀
前端·css·性能优化
前端开发爱好者1 小时前
尤雨溪官宣:Vite 历史性的一刻!超越 Webpack!
前端·javascript·vite
前端开发爱好者1 小时前
Vue3 "抛弃" Axios !用上了 专属请求库!
前端·javascript·vue.js
前端开发爱好者1 小时前
"Lodash" 的终极版!Vue、React 通杀!
前端·javascript·全栈
前端开发爱好者1 小时前
TanStack:不止于 Vue!一个库,真·通杀所有框架!
前端·javascript·vue.js
curdcv_po1 小时前
Three.js,给纹理,设颜色空间
前端
站大爷IP1 小时前
HTTPS代理抓包完全攻略:工具、配置与高级技巧
前端
洛卡卡了1 小时前
“改个配置还要发版?”搞个配置后台不好吗
前端·后端·架构
林太白2 小时前
CommonJS和ES Modules篇
前端·面试