先说背景,公司要做的,小工具辅助客户的级别,商业软件,非大型项目。
广泛吸纳意见,希望看看我上面的想法有哪些是过虑的,或者各位有什么建议都可以说说。 如有表达不到位的地方还请指出
1
kujio 2021-11-25 16:05:35 +08:00
如果会 android 的话,可以考虑试试 kotlin compose
|
2
xuxuxu123 2021-11-25 16:06:17 +08:00
我的想法就是 Electron ,然后 java 器 web 服务
|
3
ryougifujino 2021-11-25 16:10:45 +08:00
|
4
luchong 2021-11-25 16:23:51 +08:00
WPF
|
5
kujio 2021-11-25 16:24:14 +08:00
kotlin compose Ui 组件可以参考这个:https://github.com/Gurupreet/ComposeCookBook
UI 组件很全,自定义也很灵活, |
6
Otho 2021-11-25 16:39:11 +08:00 2
Electron + gRpc + Java
|
7
bjzhou1990 2021-11-25 16:43:24 +08:00 1
可以考虑 Flutter ,Desktop 版本也算比较成熟了
|
8
maichael 2021-11-25 16:45:49 +08:00
没有跨系统的需求的话不要使用 Electron 和 Flutter 等
|
9
yazinnnn 2021-11-25 16:50:32 +08:00
compose
|
11
duan602728596 2021-11-25 17:52:21 +08:00
我的想法和 2L 一样,推荐使用 Electron 。然后建议使用 react 或者 vue 全家桶开发单页应用。
用 Electron 的优点就是跨平台,系统的能力有 Node 和 chromium 来解决,编译可以跨平台且直接分发。 这是我个人写的基于 Electron 的项目( https://github.com/duan602728596/48tools ),里面有一堆功能,直接编译到 5 个平台,你可以参考一下。 |
12
MasterMonkey 2021-11-25 18:20:27 +08:00 via iPhone
@Otho 我支持这个
|
13
happinessnch 2021-11-25 18:23:27 +08:00 1
重表现,用 Electron
重交互、多系统调用,用 Native ( QT ,WPF ,WinForm 等) |
14
makelove 2021-11-25 18:25:40 +08:00
除非有特别的硬性需求否则无脑上 Electron,最近几年被证明的最佳 UI 方式, java 就单独起个进程就行最好别搞二套逻辑
|
15
darknoll 2021-11-25 18:43:41 +08:00
这年头好看>效率,当然用 Electron
|
16
juzisang 2021-11-25 19:12:07 +08:00 1
可以试试 https://github.com/tauri-apps/tauri
体积小,也是 webview 套壳,个人感觉实现比 Electron 规范和优雅很多 |
17
ysc3839 2021-11-25 19:25:52 +08:00
JavaFX WebView 或者 JCEF ? https://bitbucket.org/chromiumembedded/java-cef
这两个方案类似 Electron 跨平台,可以用 Web 做界面,但是后端不跟 js 强绑定,可以直接用 Java 代码做后端。(前端当然还得写 js) |
18
IsaacYoung 2021-11-25 19:35:52 +08:00 via iPhone
electron 吧
|
19
xiaoyanbot 2021-11-25 19:41:04 +08:00
nw.js
|
20
pengtdyd 2021-11-25 19:46:07 +08:00
@bjzhou1990 目前 Flutter Desktop 不推荐使用
|
21
zjsxwc 2021-11-25 20:01:07 +08:00 via Android
这种 electron 与 java 全都要?
https://github.com/jreznot/electron-java-app |
22
Buges 2021-11-25 20:10:17 +08:00 via Android
已经用 Java 写好了,那肯定继续用 Java 。
啥情况都无脑推 electron 的,是内存太多没地方用吗? |
23
nojsja 2021-11-25 20:36:08 +08:00
之前一直写 electron ,现在正在学习和尝试 tauri+rust
|
24
amai0w0 2021-11-25 21:45:09 +08:00 via Android
@bjzhou1990 现在用 Flutter 开发 Windows 桌面程序的都是真勇士,Desktop 应该还没发正式版吧
|
25
jlkm2010 2021-11-25 21:47:54 +08:00
JavaFX WebView
|
26
MakHoCheung 2021-11-25 22:13:35 +08:00
小工具的话用 jfx 没啥问题吧,直接上 java17 ,可以 jlink 成一个自包含的应用,如果类库不怎么多反射的话还可以用 gluon substrate 编译成原生二进制程序。当然楼主一开始就否了 jfx ,我这回复多余的
|
27
nicevar 2021-11-25 23:05:36 +08:00
给什么人用?如果只是少量用户很单一,什么选型都不重要,但是用户复杂的话,不要用 Electron 这种,开发出来了可能会被拒绝使用,体积大效率低,很多开发者喜欢用 Electron 开发,但是做出来的软件自己都不用。
Flutter 就更不要用了,这种不成熟的东西用起来就是坑,现在连 Android 上开发出来的软件问题都很多,编辑框的问题到现在还没解决 |
28
ashong 2021-11-26 00:10:27 +08:00 via iPhone
chromium + js + c++
|
29
akira 2021-11-26 05:07:39 +08:00 1
Native 类的 C++/C#:主项目就是用这些写的
主项目用这个写,说明你们主要的技术栈就是这个了,那还换啥语言啊 |
30
mirage13 2021-11-26 08:34:26 +08:00
用 qt 啊
|
31
kun775 2021-11-26 09:03:07 +08:00 1
windows 桌面应用无脑 winform 或 wpf 就 OK 了
|
32
skinny 2021-11-26 09:03:39 +08:00
别信什么 Electron 体积大效率低什么的说法,一般应用根本到不了那个瓶颈,除非你的 UI 代码和知乎微博那些桌面网页代码一样实在烂得没边
|
33
ming159 2021-11-26 09:11:31 +08:00 1
C#吧,Winform ,拖拽个界面。使用 HTTP 协议与 Java 通信交换数据,例如 Flurl ;
然后 Java 端内置一个 Jetty 作为 web 服务; 缺点: 仅适用于 Windows ,无法跨平台;界面稍微不注意会很丑 优点: 快,Java 端逻辑可以完全复用。 |
34
youxiachai 2021-11-26 10:59:52 +08:00
@amai0w0 flutter 2.5 desktop 已经发正式了....
|
35
youxiachai 2021-11-26 11:02:25 +08:00
@nicevar 不是写着商业项目吗.... Electron 感觉完美...美团饿了么商家端程序都是这个..
|
36
sgissb1 2021-11-26 11:11:24 +08:00
Electron 就可以了,界面这一块不该投入太多去搞。h5 做界面多快啊。
|
37
newmlp 2021-11-26 11:34:49 +08:00
Electron 看看客户接不接受,不接受就 Qt ,基本靠谱的桌面开发就这两个了
|
40
caryyu 2021-11-26 11:41:54 +08:00
如果主项目已经有了前端展示,直接上 Electron ,移植到桌面。
|
41
youxiachai 2021-11-26 11:49:27 +08:00
@newmlp 我用 win 10 的 atom 都跑过 electron.... 在怎么古董也不至于此吧...能给几十万甚至上百万的项目的,不至于吧
|
42
hez2010 2021-11-26 11:58:16 +08:00 via Android
可以用 Avalonia 开发跨平台 GUI: https://github.com/AvaloniaUI/Avalonia
|
43
newmlp 2021-11-26 11:59:51 +08:00
@youxiachai 什么奇葩环境和用户都有,没遇到是你运气好
|
44
heytap 2021-11-26 12:18:10 +08:00
尽管很多人吐槽 但我还是得推下 electron
|
45
WenhaoWu 2021-11-26 12:34:32 +08:00 via Android
自己开发 electron ,但是很抗拒 electron 的 app +1 。BTW, Flutter 的桌面端至少在 Mac 上比 Electron 流畅
|
46
auroraccc 2021-11-26 12:58:59 +08:00
商业软件不推荐 flutter 或者 tauri 。。
|
47
icyalala 2021-11-26 13:24:53 +08:00
论社区当然是 Electron ,和其他方案不是一个级别的,但前提是重构 /重写。
如果不想重写,想复用 Java 栈,那还是考虑下 JavaFX 吧。 |
48
icyalala 2021-11-26 13:27:14 +08:00
至于上面说的 Flutter ,如果愿意承担 Dart 重写的成本,那还不如用回 Electron 呢。
|
49
Accessing 2021-11-26 13:27:45 +08:00 1
JavaFx 没你想的那么糟糕,实际上这个工具很不错。你如果觉得不行,那你就给出哪个地方具体不行的理由,而不是笼统的说生态不好之类的。当你这么做之后,你可能会发现完全可以满足自己的需要。
|
50
s127 2021-11-26 13:47:57 +08:00
如果没有复杂的界面布局,没有高性能显示要求(大量绘图、3D 图等),仅仅是一个小工具,建议上 javaFX 。既然公司核心是 java ,自然不缺 java 开发人员。javaFX 入门用不了几天,官方文档也还不错。后期如果有其他非 win 系统部署,迁移更容易。
|
51
silencelixing 2021-11-26 14:10:20 +08:00
Electron 和 QT ,对样式要求高就用 electron ,对流畅图要求高就用 qt ,当然如果两者都要求高的话,那可以考虑考虑 flutter (🤪)
|
52
ainimuyan 2021-11-26 14:19:22 +08:00
如果是对项目负责,当然延续 Java 使用 JavaFX ,除非你对其他桌面技术非常非常熟悉,重写或翻译逻辑非常快。
如果你出于个人原因想搞点别的技术,建议整个小项目自己玩。 |
53
longear 2021-11-26 14:20:36 +08:00
nw.js 到底行不行, 用过的人来说一说
|
55
SilenceLL 2021-11-26 15:33:57 +08:00
|
56
3dwelcome 2021-11-26 15:45:41 +08:00
electron+1 ,毕竟前端 npm 轮子多多。
你用 Native 只能写点简单的页面,复杂的组件还要自己造轮子,多累。 |
57
abcbuzhiming 2021-11-26 16:03:43 +08:00
@skinny Electron 就是体积大效率低,怎么,烂还不准人说是把? Electron 这东西唯一的好就是对"开发者友好",尤其是对前端出身的开发者友好,做出来的东西,性能和原生差几条街,用户的机器不当钱,吃 CPU 内存没有上限。想吹 Electron ,麻烦等用原生程序成长起来的那一代使用者死光了再说
想用 Electron ,我不反对,反正这东西,程序员用起来是很爽,骂娘的都是用户 |
58
skinny 2021-11-26 16:10:00 +08:00
@abcbuzhiming 行,这就扣上吹 Electron 帽子了,你爱用 native 就用 native ,SB
|
59
3dwelcome 2021-11-26 16:30:32 +08:00
@abcbuzhiming
“做出来的东西,性能和原生差几条街,用户的机器不当钱,吃 CPU 内存没有上限。” 那要看具体是做什么了,以前有不少 V2 开发者提问,为什么十几万的树节点,在 vue 里拖动那么卡。 我只能说,网页端确实不适合处理这种超大数据的应用。 可是普通的小工具小应用,用 JS 写写,还是异常方便的。 |
60
iikebug 2021-11-26 16:48:37 +08:00
@abcbuzhiming Electron + 原生插件绑定,效果不会差的,纯 js 的性能确实不太行
|
61
wdwwtzy 2021-11-26 16:57:31 +08:00 1
我觉得桌面开发首选 C#,其他的你都会踩到各种各样的坑
|
62
superchijinpeng 2021-11-26 17:03:12 +08:00
Kotlin Compose
|
63
creanme 2021-11-26 17:33:28 +08:00 1
WPF ?不太喜欢 Electron
|
65
yolee599 2021-11-26 22:01:36 +08:00 via Android
Electron 不好用,体积大还吃配置,推荐的应该都是写 web 的程序员
|
66
wxw752 2021-11-27 01:04:51 +08:00
Electron 和 WPF 都敲过,投 Electron 一票
|
68
windpinw OP 最新更新,希望有了解 compose 的说说看法😂
|
69
Edward4074 2021-11-30 09:30:17 +08:00
@windpinw 最近刚开始用 compose desktop 搞个小工具,感觉还是比较友好的。官方 git 中有些 demo 可以参考,kotlin 、java 无缝衔接,展示内容为主的话应该没什么好犹豫的了
|