桌面端技术选型求指导

2021-11-25 15:59:10 +08:00
 windpinw

先说背景,公司要做的,小工具辅助客户的级别,商业软件,非大型项目。

  1. 核心逻辑部分已经有十分完备的 java 实现(可以从公司主项目抄过来)
  2. 希望尽量轻量化。
  3. 目前在考虑桌面端的框架。 JavaFx: 不考虑,社区不好,支持少 Swing: 最容易和逻辑部分结合,比较担心 UI 方面能否实现较好的效果,或者 effort 是不是比较大 Electron: UI 不担心,但是逻辑处理的部分需要用 js 重构一次,后续的迭代大概率还要继续参考主项目的代码 进行重构。除非独立部署一个 java web 服务器让逻辑部分单独出来。 Native 类的 C++/C#:主项目就是用这些写的,开发负担比较重,估计不考虑。除非有很好的解决方案。

广泛吸纳意见,希望看看我上面的想法有哪些是过虑的,或者各位有什么建议都可以说说。 如有表达不到位的地方还请指出

8339 次点击
所在节点    程序员
69 条回复
youxiachai
2021-11-26 11:49:27 +08:00
@newmlp 我用 win 10 的 atom 都跑过 electron.... 在怎么古董也不至于此吧...能给几十万甚至上百万的项目的,不至于吧
hez2010
2021-11-26 11:58:16 +08:00
可以用 Avalonia 开发跨平台 GUI: https://github.com/AvaloniaUI/Avalonia
newmlp
2021-11-26 11:59:51 +08:00
@youxiachai 什么奇葩环境和用户都有,没遇到是你运气好
heytap
2021-11-26 12:18:10 +08:00
尽管很多人吐槽 但我还是得推下 electron
WenhaoWu
2021-11-26 12:34:32 +08:00
自己开发 electron ,但是很抗拒 electron 的 app +1 。BTW, Flutter 的桌面端至少在 Mac 上比 Electron 流畅
auroraccc
2021-11-26 12:58:59 +08:00
商业软件不推荐 flutter 或者 tauri 。。
icyalala
2021-11-26 13:24:53 +08:00
论社区当然是 Electron ,和其他方案不是一个级别的,但前提是重构 /重写。
如果不想重写,想复用 Java 栈,那还是考虑下 JavaFX 吧。
icyalala
2021-11-26 13:27:14 +08:00
至于上面说的 Flutter ,如果愿意承担 Dart 重写的成本,那还不如用回 Electron 呢。
Accessing
2021-11-26 13:27:45 +08:00
JavaFx 没你想的那么糟糕,实际上这个工具很不错。你如果觉得不行,那你就给出哪个地方具体不行的理由,而不是笼统的说生态不好之类的。当你这么做之后,你可能会发现完全可以满足自己的需要。
s127
2021-11-26 13:47:57 +08:00
如果没有复杂的界面布局,没有高性能显示要求(大量绘图、3D 图等),仅仅是一个小工具,建议上 javaFX 。既然公司核心是 java ,自然不缺 java 开发人员。javaFX 入门用不了几天,官方文档也还不错。后期如果有其他非 win 系统部署,迁移更容易。
silencelixing
2021-11-26 14:10:20 +08:00
Electron 和 QT ,对样式要求高就用 electron ,对流畅图要求高就用 qt ,当然如果两者都要求高的话,那可以考虑考虑 flutter (🤪)
ainimuyan
2021-11-26 14:19:22 +08:00
如果是对项目负责,当然延续 Java 使用 JavaFX ,除非你对其他桌面技术非常非常熟悉,重写或翻译逻辑非常快。
如果你出于个人原因想搞点别的技术,建议整个小项目自己玩。
longear
2021-11-26 14:20:36 +08:00
nw.js 到底行不行, 用过的人来说一说
iikebug
2021-11-26 14:55:06 +08:00
@longear nw.js 比 electron 唯一的优势是源码加密
SilenceLL
2021-11-26 15:33:57 +08:00
3dwelcome
2021-11-26 15:45:41 +08:00
electron+1 ,毕竟前端 npm 轮子多多。

你用 Native 只能写点简单的页面,复杂的组件还要自己造轮子,多累。
abcbuzhiming
2021-11-26 16:03:43 +08:00
@skinny Electron 就是体积大效率低,怎么,烂还不准人说是把? Electron 这东西唯一的好就是对"开发者友好",尤其是对前端出身的开发者友好,做出来的东西,性能和原生差几条街,用户的机器不当钱,吃 CPU 内存没有上限。想吹 Electron ,麻烦等用原生程序成长起来的那一代使用者死光了再说

想用 Electron ,我不反对,反正这东西,程序员用起来是很爽,骂娘的都是用户
skinny
2021-11-26 16:10:00 +08:00
@abcbuzhiming 行,这就扣上吹 Electron 帽子了,你爱用 native 就用 native ,SB
3dwelcome
2021-11-26 16:30:32 +08:00
@abcbuzhiming

“做出来的东西,性能和原生差几条街,用户的机器不当钱,吃 CPU 内存没有上限。”

那要看具体是做什么了,以前有不少 V2 开发者提问,为什么十几万的树节点,在 vue 里拖动那么卡。

我只能说,网页端确实不适合处理这种超大数据的应用。

可是普通的小工具小应用,用 JS 写写,还是异常方便的。
iikebug
2021-11-26 16:48:37 +08:00
@abcbuzhiming Electron + 原生插件绑定,效果不会差的,纯 js 的性能确实不太行

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

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

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

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

© 2021 V2EX