近期我们开源了 RustDesk 服务端以及移动端源代码,目前正计划将原来 Sciter 桌面端迁移到新的 UI 框架,有点在 Fluter 与 Tauri 之前犹豫,我个人比较倾向于 Tauri ,刚刚发起一个问卷调查,有兴趣可以参入一下,非常感谢。
1
angrylid 2022-05-16 14:14:40 +08:00 via Android
这两个都是很激进的方案,未见的就比 Sciter 更靠谱吧。
|
5
HiCode 2022-05-16 14:28:13 +08:00
同样想知道 Sciter 有什么问题!
|
6
ysc3839 2022-05-16 14:34:23 +08:00 via Android
个人更喜欢 React Native 等基于平台提供的 UI 库的框架,当然这么做会降低灵活性、通用性等等。
如果一定要选一个自己绘制界面的方案,那还是 Flutter 吧,个人感觉资源占用啥的都比浏览器低。 |
7
opentrade OP 我一直使用的 Sciter tis 版本,
- bug 太多,虽然作者比较 nice ,但是耐不住问的人太多 - 兼容性不好,很多 Windows update 下跑不起来(其它框架也许同样有这个问题吧) - 每次发布新版本,永远都会引入不少新的破坏性 bug ,搞的自己去找 work around ,要是等作者修复,得等好久。比如 Linux 下垂直滚动条不出现的 bug ,去年 12 月份更新引入的( tis 版本),一直催作者(我是付费用户),可是没得到处理 - Linux 下不支持 IME |
8
dbskcnc 2022-05-16 14:44:24 +08:00 1
显然 flutter 啊, 可以和 mobile 统一代码
|
9
weixiangzhe 2022-05-16 15:03:30 +08:00
不支持 IME 就是输入法不能用吗? 那确实不太行哦
|
10
zengxs 2022-05-16 15:05:01 +08:00 1
Tauri 功能缺失很多,可以看这个 https://github.com/tauri-apps/tauri/issues/544#issuecomment-607717471
而且 Tauri 对接原生代码比较麻烦,这方面 Flutter 好很多 Flutter 成熟度相对较高,Tauri 可以说很不成熟 不过感觉最好的解决方案还是 原生开发 + WebView 做核心 UI |
11
divasatanica 2022-05-16 15:06:08 +08:00
4 年前用过 sciter 写 windows 桌面端程序,特别难用。很不好的开发体验
不过作者基本对提问都会回答,就是要等时差 |
12
suyulingxm 2022-05-16 15:34:09 +08:00
都不建议采用,直接上 electron
|
13
sunwei0325 2022-05-16 15:34:41 +08:00
投 flutter 一票, 从此 flutter + rust 除了 appflowy 又多一个学习案例啦
|
14
StarainX 2022-05-16 15:38:49 +08:00
Flutter
|
15
Goooler 2022-05-16 15:39:30 +08:00
等 compose
|
16
opentrade OP 很高兴得到 flutter_rust_bridge 作者的回复,受益匪浅。我也去 Tauri 群里发个帖子,问问,https://github.com/tauri-apps/tauri/discussions/4137
|
17
angrylid 2022-05-16 16:28:58 +08:00 via Android
@opentrade 只是从用户的立场出发,我都没用过基于 Flutter Desktop 或 Tauri 的比较成熟的产品。考虑下 Election 或者 Qt + CEF 吗?
|
20
jpacg 2022-05-16 16:34:05 +08:00
Flutter
|
21
encro 2022-05-16 16:39:12 +08:00
b 站有个哥们用 web wasm+tauri 实现 webcam ,感觉 webcam 和 remote desktop 还真有点像。
|
22
zengxs 2022-05-16 16:43:44 +08:00
刚刚发现一个 flutter 的坑,桌面平台目前不支持内嵌 webview
https://github.com/flutter/flutter/issues/41726 https://github.com/flutter/flutter/issues/41725 https://github.com/flutter/flutter/issues/37597 |
24
zengxs 2022-05-16 16:47:23 +08:00
@opentrade 哈哈,用不到 WebView 的话倒是可以尝试一下 Flutter
我最近也是刚好在调研跨平台桌面框架,反正就是感觉每个跨平台 GUI 框架都是一堆坑 |
26
yuuko 2022-05-16 17:38:39 +08:00
投 Tauri 一票,在现在硬件性能越来越强的现在,web 真的是未来
|
28
Buges 2022-05-16 17:56:19 +08:00 via Android
投 Tauri 一票,只要你们前端的兼容性做到普通网页的程度(可以在不同版本的现代浏览器中正常加载),那就没有什么 webview 不同导致的 bug 可担心的。
flutter 始终都是移动端优先,做出来的应用体验如同在使用 Android 模拟器,桌面体验较差,成熟度比传统 Web 技术差远了。 @zengxs Tauri 就是原生开发+Webview 做核心 UI 啊,只不过帮你包了一层 API 方便使用而已。 |
29
Buges 2022-05-16 17:59:39 +08:00 via Android
你可以看上面发的那个 tauri 和 electron 功能对比,很多都是桌面集成特性,就是让你 js 端直接调用系统原生的功能,这些其实都是可以没必要的,前端只做 UI 就可以了,应用内需要什么平台原生的功能用 rust 自己封装出接口,实现上更简单,只是对 js 开发者来说可能没那么方便罢了。
|
34
Buges 2022-05-16 18:36:33 +08:00 via Android 2
@opentrade @zengxs
tauri 就是封装了系统 webview 的 API ,在上面提供了一些工具链(构建、打包、自动更新等)和类 electron 方便开发的 js 调用系统原生功能的 API ,不用这些就和自己调用 webview 没啥区别。所谓不成熟也只是指这部分不成熟,webview 哪有不成熟之说,webview 最大的坑就是各平台版本和实现不统一导致的不一致性。然而 Web 早就是成熟广泛的标准了,只要把网站兼容性的标准向正常网页(适配各种浏览器)看齐,那就不用担心不一致性的问题。 反观 flutter 自己渲染,这其中坑才多着呢,冷门平台上输入法、光标、accessibility 和各种犄角旮旯的东西总有你想不到的地方。 |
35
iwdmb 2022-05-16 18:39:49 +08:00
Flutter+1
|
36
lodisy 2022-05-16 18:41:32 +08:00 via Android 1
Flutter
另外 dart + rust 的还一个 isar 数据库 |
37
meetcw 2022-05-16 18:43:19 +08:00
上个月用过 flutter desktop 2.x 开发了个小玩具,总的来说 flutter desktop 系统相关的 api 全靠插件(比如调整窗口大小,获取剪切板,播放声音,托盘等),插件质量良莠不齐。现在 3.0 还没看,不知道有什么改进。
Tauri 我只过了一遍文档,感觉对桌面的基本支持要比 flutter desktop 好。 总的来说目前的话我会选择使用 tauri ,长远的来说我更看好背靠大树的 flutter 。 |
38
MakHoCheung 2022-05-16 18:44:33 +08:00
MAUI 或者 Compose /滑稽
|
39
janxin 2022-05-16 18:56:58 +08:00 1
Flutter 的功能支持很多是靠插件支持的,自然不如核心 UI 功能来的支持更好。实在没有的还得动手写插件。不过长远来看生态完善速度还是 OK 的,从之前的情况看,感觉半年基本常用功能覆盖问题不大(小众功能纯看脸...
Tauri 应该跟你现在的方案过渡起来比较容易? 不过我是用 Flutter 的 :) |
43
zengxs 2022-05-16 19:14:06 +08:00
|
44
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 ,再到各个平台的代码集成。》 |
45
dcsuibian 2022-05-16 19:58:26 +08:00
还是比较看好 Flutter
|
47
PTLin 2022-05-16 20:05:04 +08:00
正好这两天对这个项目感兴趣在看源码中,正好作者换技术栈我能更好的学习一下 gui 方面了。
我还是有个疑问,虽然 Rust 里 GTK 和 Qt 用起来比较半吊子和蹩脚,但是为什么不采用这些技术实现桌面端呢? |
48
hawei 2022-05-16 20:06:39 +08:00
Flutter 吧。
|
50
Cooky 2022-05-16 20:13:10 +08:00
歪个楼,拿 godot 来当 gui 也行(
|
53
PTLin 2022-05-16 20:19:02 +08:00
@opentrade 我其实也感觉那些技术有点过时了,附带一提 1password 应该是用的 Electron 做的 gui ,他们的 GitHub 上有 electron rust 的一个 crate ,而且软件包里也能看出来。
|
54
opentrade OP 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). |
57
FrankHB 2022-05-16 22:23:06 +08:00
我没法给出可靠的具体建议,不过需要指出,光是想搞清楚什么算是“前”,对 GUI 开发者来讲都经常算是不切实际的奢望。从现状看,“过时”在这个领域中不应该是需要被优先考虑的缺陷(否则很容易发现新的都是一出生就更过时的)。
cf. https://v2ex.com/t/852363#r_11667402 |
58
KaoN 2022-05-16 22:57:24 +08:00 via Android 1
|
59
wangyzj 2022-05-16 22:59:23 +08:00
顺便问问闲鱼 flutter 现在咋样了?
|
62
WebKit 2022-05-17 00:09:08 +08:00 via Android
推荐 flutter 刚发布了新的 flutter 3 性能更好。
|
65
Immortal 2022-05-17 01:43:56 +08:00
没有考虑过 druid 吗
|
67
opentrade OP @zyxk 作者人的确挺好,可惜去年发起募捐的行动失败,没有把开源社区搭建起来。如果他再年轻一些,Sciter 很有希望成为 Flutter / Tauri 之后的第三股力量。感觉 Sciter 项目主要就是靠他一个人在支撑,做的非常辛苦。
|
69
wdhwg001 2022-05-17 02:06:06 +08:00
我实际上更推荐 druid/iced ,因为你们是 RustDesk ,既然自豪地标榜自己是 Rust 系,那么理应就像其他 Rust 系桌面应用一样打心底里是排斥 Web 方案,并且也排斥带 GC 语言的方案的。
而且说实话,不依赖网页端可以让一个远控软件做到更深度的集成,比如拖拽、融合模式一类的,也可以有更好的硬件加速。 |
70
dzhou121 2022-05-17 02:18:14 +08:00 via iPhone
Druid 挺好用的,自创控件功能特别强大
|
71
Alan1978 2022-05-17 07:15:47 +08:00 via Android
不要折腾这些 要不然过两年你又回来问了 一步到位 electron
|
72
chenyu0532 2022-05-17 07:31:16 +08:00
正在用 electron 做自己的一个桌面小应用,不是特别的熟悉其他的。
就想问下,一直说 electron 性能差(抛开 vscode),差在设么地方。我个人感觉还可以。。 |
73
supermoonie 2022-05-17 07:41:43 +08:00 via iPhone
还在用 swing 开发跨平台的,轻轻飘过
|
77
lizhenda 2022-05-17 09:14:23 +08:00
如果不需要控制窗口或者涉及一些原生平台的窗口特效,那么 Tauri 还是可以试试的。否则商业产品还是建议用 Electron
|
78
lizhenda 2022-05-17 09:18:06 +08:00
@chenyu0532 Web 网站写的都卡卡的项目在 Electron 自然也卡咯。主要是水平问题。还有就是真正的细节狂确实能一眼看出客户端是套壳浏览器的(典型的拖拽左右两边窗口时会有黑底出现,其实就是浏览器的 view 跟不上原生窗口的 view )
|
79
tanranran 2022-05-17 09:20:25 +08:00
长远看,flutter 从语法和 UI 方面吊打任何平台
|
80
lysS 2022-05-17 09:43:13 +08:00
插楼问一下,Sciter 和 flutter 如何绑定啊?
|
81
lysS 2022-05-17 09:44:50 +08:00
还有,flutter 桌面端才出来不久吧?能用了?
|
82
ShadowPower 2022-05-17 09:56:06 +08:00
最近用 iced 做了个玩具,也挺好用,但有两个缺点:字体只能内嵌;最近更新之后内存占用从 40MB 增加到 200 多 MB 。
|
83
pkwenda 2022-05-17 09:56:33 +08:00
二选一,肯定是 Flutter
|
84
orafy 2022-05-17 10:03:39 +08:00
Flutter 也有很多坑额,吃显卡,客户端很多机器启动不起来。
我们从 sciter 最终迁移到自己开发的基于 Direct2D 的原生渲染也遇到了很多坑, 像 win7 的 DirectWrite 没装 platform update 设置不了字母间距, 最后借鉴了 sciter 里面对 DirectWrite 布局的代码, 然后就是抄 sciter 的 GDI 部分封装,兼容部分客户端。 |
85
hahastudio 2022-05-17 10:10:07 +08:00
桌面端的话,我觉得目前这两个真不如 electron
话说你们桌面端是打算 Windows/macOS/Linux 还是只看重一个平台,如果是一个平台的话,原生还是最好的 |
86
creanme 2022-05-17 10:27:20 +08:00
感觉 slint 还挺有意思的
|
87
THESDZ 2022-05-17 10:32:49 +08:00
看了下谷歌搜索指数 Flutter>>Tauri
不过你这是个 pc 端的,所以不清楚 |
88
opentrade OP 睡一觉过来,tauri 就反超了 flutter ,国内外关注度不一样。
https://github.com/rustdesk/rustdesk/discussions/533 |
89
Manweill 2022-05-17 11:17:10 +08:00
|
90
shui14 2022-05-17 11:43:36 +08:00
去年看到过一个方案,拉起本地 chrome ,走 chrome devtools protocol ,如果是内部桌面需求可以看看。https://github.com/Srinivasa314/alcro
|
91
ViriF 2022-05-17 12:05:02 +08:00
https://www.warp.dev/blog/how-warp-works
可以参考问问看 Warp 的方案?我是对他们提到的这个 WIP UI framework 很感兴趣,要是能看看实现就好了(口水) |
92
Fontaine 2022-05-17 12:16:03 +08:00
最近在用 Flutter 3.0 ,尝试做 mac 的客户端,除了文档不完善,还得依赖很多插件,才能完成一些基础的客户端功能呀
|
93
opentrade OP |
95
he1a2s0 2022-05-17 12:37:37 +08:00
有个收集 Rust GUI 方案的网站: https://www.areweguiyet.com/
|
96
lufengd3 2022-05-17 15:18:48 +08:00
用 Tarui 做过小 demo ,包大小方面对比 electron 确实优秀,潜在风险是 Webview 版本兼容问题,不要命,但会一直恶心人。
最好调研下当前产品投放的的设备环境,OS 、webview 版本分布这些 |
98
1217950746 2022-05-17 16:11:58 +08:00
@opentrade 基于 WebView2 的,最低支持到 Windows7 需要单独安装
|
99
opentrade OP @1217950746 这个对我们来说简直是致命的
|