桌面端跨端框架调研

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。

相关推荐
用户新4 小时前
V8引擎 精品漫游指南--Ignition篇(下 一) 动态执行前的事情
前端·javascript
@PHARAOH5 小时前
WHAT - GitLens vs Fork
前端
yqcoder5 小时前
前端性能优化:如何减少重绘与重排?
前端·性能优化
洋子6 小时前
Yank Note 系列 13 - 让 AI Agent 进入笔记工作流
前端·人工智能
wenzhangli78 小时前
Ooder A2UI 核心架构深度解析:WEB 拦截层的设计与实现
前端·架构
前端百草阁9 小时前
【前端性能优化全链路指南】从开发编写到构建运行的多维度实践
前端·性能优化
神探小白牙9 小时前
eCharts 多系列柱状图增加背景图
javascript·ecmascript·echarts
女生也可以敲代码9 小时前
AI时代下的50道前端开发面试题:从基础到大模型应用
前端·面试
ZhengEnCi9 小时前
M5-markconv自定义CSS样式指南 📝
前端·css·python
IT_陈寒9 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端