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

18817 次点击
所在节点    程序员
139 条回复
opentrade
2022-05-16 19:10:12 +08:00
@janxin 但是我们的移动端是 flutter ,所以选两者对我们都各有利弊
opentrade
2022-05-16 19:11:11 +08:00
@meetcw 是不是没装 chrome 的 win7 需要安装 edge?
zengxs
2022-05-16 19:14:06 +08:00
@Buges #34 是的,webview 确实是很好的 UI 平台,但是 tauri 提供的原生功能太少了,目前还是只能看成一个加强版的 pwa
Flutter 的坑部分,基本认同

@opentrade #40 如果之前就是 html 写的,那无脑上 tauri 就行了,原来的代码基本上可以重用,如果选 flutter 就要全部从头开始写
xieren58
2022-05-16 19:46:23 +08:00
https://rustcc.cn/article?id=9e10386b-6ad0-450a-82d6-d5154aed6d3e 这个帖子可以参考.

《我们是一家互联网金融公司(非区块链)。

从 2021 年 10 月,在尝试 Flutter 跨平台开发效果不佳后,开始仿照 1Password 的成功经验,试水 rust 做应用核心模块开发。目前,基本走通模式。

半年多的时间,从 0 到 3 个全职 rust 开发工程师,核心模块两万行代码,外加各种 Bindings 涵盖 electron(based on neon), browser(based on wasm-bindgen), android/ios(based on mozilla/uniffi),terminal(based on tui),和两个 SDK (py/cxx),提供从 Low Level 的 HTTP/WS Clients 到 High Level 的 ViewModel ,再到各个平台的代码集成。》
dcsuibian
2022-05-16 19:58:26 +08:00
还是比较看好 Flutter
opentrade
2022-05-16 20:03:52 +08:00
@xieren58 最后的选择是?
PTLin
2022-05-16 20:05:04 +08:00
正好这两天对这个项目感兴趣在看源码中,正好作者换技术栈我能更好的学习一下 gui 方面了。
我还是有个疑问,虽然 Rust 里 GTK 和 Qt 用起来比较半吊子和蹩脚,但是为什么不采用这些技术实现桌面端呢?
hawei
2022-05-16 20:06:39 +08:00
Flutter 吧。
xieren58
2022-05-16 20:07:08 +08:00
@opentrade 你可以问问他们, 我不是在那个公司.
Cooky
2022-05-16 20:13:10 +08:00
歪个楼,拿 godot 来当 gui 也行(
opentrade
2022-05-16 20:14:55 +08:00
@PTLin 人嘛,要向前看
opentrade
2022-05-16 20:15:24 +08:00
@PTLin 难道你想啃那些老东西?
PTLin
2022-05-16 20:19:02 +08:00
@opentrade 我其实也感觉那些技术有点过时了,附带一提 1password 应该是用的 Electron 做的 gui ,他们的 GitHub 上有 electron rust 的一个 crate ,而且软件包里也能看出来。
opentrade
2022-05-16 20:23:27 +08:00
Reddit 上有个非常好的回答

Having tried both (and Dioxus too), Tauri seems to me a better choice.

The release candidate they released is pretty solid, tooling is great (create-tauri-app), communication between frontend and backend is very simple (it's just a macro, it supports async, and everything that implements seeds::(De)Serialize can be sent/received), etc.

Also, since it uses web technologies, you get all the existing ecosystem, which is huge. It's unbeatable.

Flutter is great for mobile apps. For desktop, there's still a lot missing. Performance is also very poor (honestly wasn't expecting that, might have something to do with my hardware thought).
lijy91
2022-05-16 20:24:44 +08:00
@meetcw 我猜可能用了 leanflutter 的 window_manager 和 tray_manager
opentrade
2022-05-16 20:42:21 +08:00
@xieren58 公司网站一直加载,看来他们的选型不值得参考。
FrankHB
2022-05-16 22:23:06 +08:00
我没法给出可靠的具体建议,不过需要指出,光是想搞清楚什么算是“前”,对 GUI 开发者来讲都经常算是不切实际的奢望。从现状看,“过时”在这个领域中不应该是需要被优先考虑的缺陷(否则很容易发现新的都是一出生就更过时的)。
cf. https://v2ex.com/t/852363#r_11667402
KaoN
2022-05-16 22:57:24 +08:00
wangyzj
2022-05-16 22:59:23 +08:00
顺便问问闲鱼 flutter 现在咋样了?
opentrade
2022-05-16 23:09:35 +08:00
@FrankHB 因人而异,我个人偏向与迎接新事物

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

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

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

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

© 2021 V2EX