Rust 桌面程序选 Flutter 还是 Tauri?

2022-05-16 14:06:44 +08:00
 opentrade

近期我们开源了 RustDesk 服务端以及移动端源代码,目前正计划将原来 Sciter 桌面端迁移到新的 UI 框架,有点在 Fluter 与 Tauri 之前犹豫,我个人比较倾向于 Tauri ,刚刚发起一个问卷调查,有兴趣可以参入一下,非常感谢。

https://github.com/rustdesk/rustdesk/discussions/533

18608 次点击
所在节点    程序员
139 条回复
encro
2022-05-16 16:39:12 +08:00
b 站有个哥们用 web wasm+tauri 实现 webcam ,感觉 webcam 和 remote desktop 还真有点像。
zengxs
2022-05-16 16:43:44 +08:00
opentrade
2022-05-16 16:44:44 +08:00
@zengxs 这个我倒是用不到
zengxs
2022-05-16 16:47:23 +08:00
@opentrade 哈哈,用不到 WebView 的话倒是可以尝试一下 Flutter
我最近也是刚好在调研跨平台桌面框架,反正就是感觉每个跨平台 GUI 框架都是一堆坑
opentrade
2022-05-16 16:53:32 +08:00
@zengxs 肯定都有坑,自己写的东西何尝不是一堆坑,就看谁更成熟点。
yuuko
2022-05-16 17:38:39 +08:00
投 Tauri 一票,在现在硬件性能越来越强的现在,web 真的是未来
opentrade
2022-05-16 17:42:33 +08:00
@zengxs 这个功能缺失列表,好像现在很多都已经补齐了
Buges
2022-05-16 17:56:19 +08:00
投 Tauri 一票,只要你们前端的兼容性做到普通网页的程度(可以在不同版本的现代浏览器中正常加载),那就没有什么 webview 不同导致的 bug 可担心的。
flutter 始终都是移动端优先,做出来的应用体验如同在使用 Android 模拟器,桌面体验较差,成熟度比传统 Web 技术差远了。
@zengxs Tauri 就是原生开发+Webview 做核心 UI 啊,只不过帮你包了一层 API 方便使用而已。
Buges
2022-05-16 17:59:39 +08:00
你可以看上面发的那个 tauri 和 electron 功能对比,很多都是桌面集成特性,就是让你 js 端直接调用系统原生的功能,这些其实都是可以没必要的,前端只做 UI 就可以了,应用内需要什么平台原生的功能用 rust 自己封装出接口,实现上更简单,只是对 js 开发者来说可能没那么方便罢了。
opentrade
2022-05-16 18:09:50 +08:00
@Buges 是的,其实这些我都不需要,我们现在都是自己封装的
opentrade
2022-05-16 18:10:41 +08:00
@Buges 体验真的是这样吗?风格可以自己调,应该不是大的问题吧
zengxs
2022-05-16 18:17:35 +08:00
@Buges Tauri 的缺点是只提供了一个 webview ,让你想要稍微原生一点的功能都很麻烦
opentrade
2022-05-16 18:30:06 +08:00
@zengxs 带着镣铐跳舞,flutter 应该也差不多
Buges
2022-05-16 18:36:33 +08:00
@opentrade @zengxs
tauri 就是封装了系统 webview 的 API ,在上面提供了一些工具链(构建、打包、自动更新等)和类 electron 方便开发的 js 调用系统原生功能的 API ,不用这些就和自己调用 webview 没啥区别。所谓不成熟也只是指这部分不成熟,webview 哪有不成熟之说,webview 最大的坑就是各平台版本和实现不统一导致的不一致性。然而 Web 早就是成熟广泛的标准了,只要把网站兼容性的标准向正常网页(适配各种浏览器)看齐,那就不用担心不一致性的问题。

反观 flutter 自己渲染,这其中坑才多着呢,冷门平台上输入法、光标、accessibility 和各种犄角旮旯的东西总有你想不到的地方。
iwdmb
2022-05-16 18:39:49 +08:00
Flutter+1
lodisy
2022-05-16 18:41:32 +08:00
Flutter

另外 dart + rust 的还一个 isar 数据库
meetcw
2022-05-16 18:43:19 +08:00
上个月用过 flutter desktop 2.x 开发了个小玩具,总的来说 flutter desktop 系统相关的 api 全靠插件(比如调整窗口大小,获取剪切板,播放声音,托盘等),插件质量良莠不齐。现在 3.0 还没看,不知道有什么改进。

Tauri 我只过了一遍文档,感觉对桌面的基本支持要比 flutter desktop 好。

总的来说目前的话我会选择使用 tauri ,长远的来说我更看好背靠大树的 flutter 。
MakHoCheung
2022-05-16 18:44:33 +08:00
MAUI 或者 Compose /滑稽
janxin
2022-05-16 18:56:58 +08:00
Flutter 的功能支持很多是靠插件支持的,自然不如核心 UI 功能来的支持更好。实在没有的还得动手写插件。不过长远来看生态完善速度还是 OK 的,从之前的情况看,感觉半年基本常用功能覆盖问题不大(小众功能纯看脸...

Tauri 应该跟你现在的方案过渡起来比较容易?

不过我是用 Flutter 的 :)
opentrade
2022-05-16 19:09:26 +08:00
@janxin 的确过度容易,我们就是 html js 那套

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/853174

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX