桌面端跨端框架调研

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。

相关推荐
共享家95272 小时前
搭建 AI 聊天机器人:”我的人生我做主“
前端·javascript·css·python·pycharm·html·状态模式
Halo_tjn3 小时前
基于封装的专项 知识点
java·前端·python·算法
摘星编程3 小时前
OpenHarmony环境下React Native:自定义useTruncate文本截断
javascript·react native·react.js
Duang007_4 小时前
【LeetCodeHot100 超详细Agent启发版本】字母异位词分组 (Group Anagrams)
开发语言·javascript·人工智能·python
2601_949868365 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 主入口实现
开发语言·javascript·flutter
m0_748229995 小时前
Vue2 vs Vue3:核心差异全解析
前端·javascript·vue.js
C澒6 小时前
前端监控系统的最佳实践
前端·安全·运维开发
xiaoxue..6 小时前
React 手写实现的 KeepAlive 组件
前端·javascript·react.js·面试
摘星编程6 小时前
在OpenHarmony上用React Native:自定义useHighlight关键词高亮
javascript·react native·react.js
hhy_smile6 小时前
Class in Python
java·前端·python