缺点
- C++开发成本高 GPL协议,商业版本需要给钱,不符合咱们去肥增瘦的理念
Flutter(Dart) Flutter是一个由google开发的跨平台应用开发框架,最初只用于移动端为Android、iOS开发应用 。2015年4月,Flutter正式发布,其目标是希望可以在跨平台的特性上,实现120FPS的渲染性能 。2018年,Flutter%201.0发布,是该框架的第一个稳定版本 。2022年5月,Google%20在%20Google%20I/O%202022%20发布了%20Flutter%203.0版本,宣布对%20Windows、macOS、Linux%20桌面操作系统提供支持 。
- 代表应用:?(Flutter在2022年5月份发布3.0版本,此时桌面应用才进入正式版支持,目前还并不成熟,所以在线上使用的较少,暂时没听过有啥桌面应用是用Flutter写的)
- 优点
- 性能好(相比较Web技术栈)
- Dart语言容易学习和上手、开发成本低
- 缺点
- 桌面端才刚刚发布稳定版支持,生态和稳定性都有待考量
Swing(Java)Swing是一个用于开发Java GUI应用的框架 。它采用纯 Java 实现,不再依赖于本地平台的图形界面,所以可以在所有平台上保持相同的运行效果,对跨平台支持比较出色 。
- 代表应用:Jetbrains IDE
- 优点
- 跨平台性能好:write once run anywhere (write once debug everywhere)
- 缺点
- 需要打包JRE,体积大
- 系统API调用和交互:原生应用 > 自渲染应用 > Web应用
- 开发便捷程度:Web应用 >> 自渲染应用 > 原生应用
- 打包体积:Web应用 > 自渲染应用 > 原生应用
- 性能:原生应用 > 自渲染应用 > Web应用
Tauri介绍从上面的介绍可以看出,不同的技术栈的实现原理和特点各有区别,但是很难做到开发便捷程度、UI复杂效果、打包体积和性能等多个方面的兼顾,只能是根据应用的类型和具体的业务场景去决定到底使用哪种框架 。
所以有没有一种开发方式,可以在性能、体积、开发等多个角度上,取得一个比较好的平衡呢?这就来到了我们今天需要介绍的桌面应用开发框架Tauri 。
Build an optimized, secure, and frontend-independent application for multi-platform deployment.从上面Tauri官网的宣传语可以看出Tauri主打的几个卖点[4]:
- optimized:性能高、体积小
- secure:安全性强
- frontend-independent:前端独立
- multiplatform:跨平台
RustTauri框架是由Rust语言实现的,同时Tauri应用的后端也是由Rust来编写的 。Rust是由Mozilla主导开发的通用、编译型的系统编程语言 。设计准则为“安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的编程风格 。[5]相比较其他语言,Rust有如下的一些特性:
- 性能高(optimized):Rust的性能和C/C++的性能不相上下,由于Rust的「所有权」机制,Rust不需要GC,同时也能避免如C/C++之类需要手动管理内存的语言忘记释放内存导致的内存泄露的问题;
- 安全性强(secure):Rust设计了一个所有权系统,其中所有值都有一个唯一的所有者,并且值的作用域与所有者的作用域相同 。值可以通过不可变引用(&T)、可变引用(&mut T)或者通过值本身(T)传递 。任何时候,一个变量都可以有多个不可变引用或一个可变引用,这实际上是一个显式的读写锁 。Rust编译器在编译时强制执行这些规则,并检查所有引用是否有效 。能够有效避免C/C++等语言中的悬垂指针等问题;
- FFI编译友好(multiplatform):FFI是可以用一种编程语言写的程序能调用另一种编程语言写的代码的机制,使用Rust可以方便地提供接口给其他语言调用;
WRY[1]:Webview Render Library由于Web技术的表现力强、开发成本低的特点,与Electron、CEF等框架类似,Tauri应用的前端实现也是使用Web技术栈编写的 。那么Tauri是如何解决Electron/CEF等框架遇到的Chromium内核体积过大的问题呢?
推荐阅读
- iOS微信更新,可将小程序放到iPhone桌面,退出群聊保留聊天记录
- originos系统下载官网?origin OS系统如何切换桌面?
- qq音乐网页版怎么开桌面歌词?
- Docker 桌面与 Rancher 桌面
- 最好用的桌面便签软件?桌面便签软件推荐
- 电脑开机后不显示桌面、电脑开机后不显示桌面怎么办?
- 昭襄王之后谁是秦王?秦昭襄王的下一代君王是谁
- 语雀桌面端技术架构实践
- 搭载12代酷睿含显示器2999元真香!战66迷你台式机成为桌面新宠
- 桌面上的回收站图标不见了怎么办 桌面的回收站不见了
