目前想写一个桌面应用,请问下技术栈选择

5 天前
 a1oyss0925

主要目的就是写着玩,给自己找点事情做,当然丰富下技术栈有利于找工作那是更好

大致了解了下相关技术:electron 、tauri 、wails 、avalonia

说实话 tauri 是真的不太想选,rust 感觉学习成本太高了。

现在的目标就是写个邮件客户端,希望大伙给点意见

6653 次点击
所在节点    程序员
90 条回复
zoharSoul
5 天前
qt?
a1oyss0925
5 天前
@crackidz 没考虑这点,那 rust 可能难度确实高了,还是在 wails 和 electron 中选吧
HuberyPang
5 天前
https://github.com/pangxiaobin/image-matting python 技术栈 pywebview 和 vue3 实现的
SHIINASAMA
4 天前
最近在研究 gpui ,无聊玩玩
panda1001
4 天前
自用的桌面软件,列一些技术栈
1.electron
商业:notion typora obsidian 阿里云盘 vscode qqnt 开源:arduino2 lxmusic motrix
2. Qt
商业:tg WPS 向日葵 Snipaste 开源:nekoray
3.Java/Ktotin
商业:jb 全家桶 matlab 开源:eclipse arduino1
4.c#
商业:有个 tasker ,大厂的少
开源:v2rayn powertoy screen2gif
5.win32/MFC
商业:potplayer bandzip 毒瘤系等
开源:trafficmonitor notepadplus tortoisegit

真 to c 还是兼容性最好/无预装的技术栈,也许会觉得土鳖,实际装机量还是最大的。按以上玩玩和工作都联系到,选 electron
baobao1270
4 天前
flutter 吧,方便跨平台
liyafe1997
4 天前
怎么没有人提 Flutter
RichardPlus
4 天前
投票给 Avalonia ,试试水 :)
levelworm
4 天前
QT 感觉其实还挺快的。
shakukansp
4 天前
为啥 tauri 不用会 rust ?
那个 web 运行环境能读写文件和跨域请求吗?
webcape233
4 天前
要和本地文件系统交互等一些工作还得写 rust 的,我是用 wails ,因为我有不少需要操作本地文件系统相关的工作,wails 的话用 go 即可。https://blog.moonguard.dev/why-golang-instead-of-rust-to-develop-the-krater-desktop-app
rhinoc
4 天前
最近在用 tauri 写 macOS 的应用,v2 的文档还是太差了,然后 rust 占比虽然很少但多多少少要会一点(可以通过 ai 或者看报错提示去写)。
另外如果对 ui 要求比较高也不建议 tauri ,比如要实现原生的磨砂半透明效果或者圆角窗口需要开 private API 直接杜绝上架了。并且设置圆角窗口后,自带的 border 也经常抽风变成直角的。
ly901206
4 天前
python 的 nicegui 试试?之前用来写游戏挂机脚本还不错
zhuangzhuang1988
4 天前
不跨平台的化试试
webview2 + winform ?
nikenidage1
4 天前
我之前用.net 的 avalonia 写了一个小玩具,跨平台,原生编译,无需运行时
https://v2ex.com/t/952603
PTLin
4 天前
@rhinoc 说的对,v2 的文档就是狗屎,权限的各种东西都没写清楚。前两天用 tauri v2 配合 vue ,实现多窗口的时候碰到一堆坑,最后发现是权限的 router history 的问题。
抛开权限那些坑,只写 desktop 的话还算可用。
PTLin
4 天前
@shakukansp 可以的,tauri 提供了很多 native 功能的 plugin ,安装了对应 plugin 就可以在 js 端使用提供的 api 实现对应的功能,比如文件的 https://tauri.app/plugin/file-system/ 。http 的 https://tauri.app/plugin/http-client/
xujinkai
4 天前
主要还是看后端代码多不多,前端感觉 web 技术栈最简单方便。我的项目是 dotnet 加 webview2 搞的,自己写了一些通信的代码,C#和 typescript 一起写还挺爽 https://onequick.org/
lscho
4 天前
@yoiteshaw
@shakukansp
@COW

按照 js 和 nodejs 的关系,或者 app 开发里的的 JSBridge 来理解就可以了,js 本身不具备原生能力,但是 nodejs 提供了一个 v8 作为 runtime ,JSBridge 提供了 SDK 来映射原生接口。

tauri 也一样,原生能力是 tauri 框架里 rust 提供的,但是开发者只需要写 js 调用就可以了。
asm
4 天前
没人或者没工作逼你的话,远离 electron 。

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

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

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

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

© 2021 V2EX