
想做一款类似百度网盘(主要 UI 很类似)的软件,之前一直 mfc+soui 在 windows 开发,由于需要到多平台运行,考虑 4 种方案来开发: 1.net+wpf 2.java 3.qt 4.electron 或者 nw (发布的包有点大,基本排除)
大家有没有好的推荐,选择哪个好点?
1 ysc3839 2021-03-03 16:03:16 +08:00 via Android 你的方案里 1 是不能跨平台的,2 已经不太流行了,只剩下 3 4 可选,你又觉得 4 太大,那只有 3 了。 |
2 fixend 2021-03-03 16:06:47 +08:00 我的话,只考虑 Flutter 或 electron |
3 PUBG98k 2021-03-03 16:10:34 +08:00 |
6 Shazoo 2021-03-03 16:33:21 +08:00 2 年前,也纠结 QT 还是 Electron 。最后选了 Electron…… 好吧,这个项目到现在都还没结束……您细品。 |
7 HeapOverflow 2021-03-03 16:34:46 +08:00 discord 和 slack 桌面版都用的 electron,用户体验都很很不错。 |
8 fixend 2021-03-03 16:42:06 +08:00 |
10 xing7673 2021-03-03 16:58:48 +08:00 via iPhone 目前观察到的直接选择 electron 吧,不选 flutter 主要是成熟应用把 flutter 当做插件用,纯 flutter 的还需要成功案例。 |
11 Jirajine 2021-03-03 17:19:33 +08:00 试试这个? https://tauri.studio/ 距离 stable 也不算远了。 |
12 imkerberos 2021-03-03 18:00:20 +08:00 Qt 有 20 多年的历史, N 多国外大型项目在用, 什么 AutoCAD, Maya 之类的. 你觉得呢? |
13 xcstream 2021-03-03 18:15:17 +08:00 现在趋势就是网页套壳 |
14 MeteorCat 2021-03-03 18:16:37 +08:00 via Android electron + nw,招人好招 |
15 3dwelcome 2021-03-03 18:20:32 +08:00 看是不是项目完全自己开发,我个人倾向于游戏开发全平台那种 UI 。 WEBVIEW UI 团队开发可以,一个人开发,JS 上也没什么太大的积累,个人感觉写起来没有 C++舒心。( JS 大佬除外,V2 应该有不少) |
16 GM 2021-03-03 18:37:35 +08:00 uno 可以考虑一下 |
17 northisland 2021-03-03 18:41:01 +08:00 qt |
18 northisland 2021-03-03 18:48:14 +08:00 pyqt (qt) -> git-cola PyGObject (gtk) -> gnome meld 很棒的开源软件,ubuntu apt 直接安装 |
19 yitingbai 2021-03-03 21:55:22 +08:00 这 4 个中, Qt 内存占用最低, 比其他 3 个小好几倍, 安装包体积最小,性能高, 但是上手难. 我推荐 javafx 开发桌面端, 不过百度网盘这种, 不需要和系统 api 交互, 类 web 端就好了, electron 应该最适合你的需求 |
20 imn1 2021-03-03 22:08:30 +08:00 Qt 只是没有中文手册,国内相对少,国外用的人很多,文章、例子也多 |
21 westoy 2021-03-03 22:09:09 +08:00 @imkerberos @xcstream 其实中古时代就流行网页套壳了 出 ActivePerl 和 ActivePython 的 ActiveState 家的 komodo edit/IDE 就是基于 mozilla 的 xulrunner 的, 比 atom 、vscode 早了七八年 也有不少人就是直接套个 qtwebview 直接上的 |
22 kylix 2021-03-03 22:22:22 +08:00 lazarus ^o^ |
23 loginbygoogle 2021-03-03 22:40:11 +08:00 如果是商业应用,electron 分分钟给你破解,有 win32 或 Swift 基础,可以直接 Flutter |
24 wzzzx 2021-03-03 22:49:54 +08:00 Qt,用 QML 开发分分钟的事 |
25 ericls 2021-03-03 22:51:15 +08:00 via iPhone unity html |
26 LarryWang 2021-03-03 22:55:04 +08:00 无远+ electron |
27 hnbcinfo 2021-03-03 23:59:59 +08:00 xaml+C# 前几天试过,用 Xamarin 写一套界面,可以轻松打包成 pc 和 Android 、iOS 的程序,不过在写界面的时候稍微麻烦,毕竟要兼容多平台。和传统的 wpf 有些区别。 https://docs.microsoft.com/zh-cn/xamarin/ |
28 weimo383 2021-03-04 00:47:24 +08:00 via Android @loginbygoogle 怎么破解?它就一个 exe |
29 levelworm 2021-03-04 02:00:25 +08:00 via Android 习惯 MFC 的话估计是 C++?那上手 QT 应该不难。甚至可以先用 PyQT 做个原型出来看看。 |
30 noqwerty 2021-03-04 05:02:17 +08:00 via Android 看完这个帖没多久就刷到了 Flutter 2 的消息,放在这供大家参考吧: https://developers.googleblog.com/2021/03/announcing-flutter-2.html |
31 KaoN 2021-03-04 07:22:04 +08:00 via Android qt 问题不大,虽然最近社区和 qtc 意见分歧很大,qt5 还是可以用的 |
32 NewTab12138 2021-03-04 07:51:30 +08:00 via iPhone 桌面端用 electron,移动端用 flutter, 这是最佳答案 |
33 murmur 2021-03-04 08:07:04 +08:00 flutter 是给 native 程序员用的,不是给前端用的,而且这东西的 web 和 windows 版看看就行了 几千个 issue 叫最佳解决?真敢吹啊 |
34 dingwen07 2021-03-04 08:12:51 +08:00 via iPhone Qt |
35 supermoonie 2021-03-04 08:20:00 +08:00 via iPhone 最近在使用 jcef 开发跨平台的桌面应用,有兴趣的话,可以发你链接 |
36 yolee599 2021-03-04 08:22:50 +08:00 via Android WPS 就是 Qt 做的,挺不错的,但是 Qt5 之后走商业路线了 |
37 yingzir 2021-03-04 08:24:36 +08:00 没有人提 uno 吗? https://platform.uno c# 开发,比较成熟了 |
38 AndyAO 2021-03-04 08:24:47 +08:00 .NET(MAUI) 和 Java(skija) 的新方案需要等,所以指望不上了。 目前 JVM 上有 JavaFX,C#上有 Xamarin 可以用。 当然,如果不嫌老,Swing 也行。 |
39 diyisoft 2021-03-04 08:28:26 +08:00 弱弱的推荐一下 Delphi 最新版本 :) |
40 AndyAO 2021-03-04 08:28:39 +08:00 楼上说的 uno 刚刚听说,Windows 用 UWP,而跨平台用 Xamarin 和 WebAssembly 。 The Story About .NET Cross Platform UI Frameworks The Half-Blood Programmer Stories from Lex Li on technologies. https://blog.lextudio.com/the-story-about-net-cross-platform-ui-frameworks-dd4a9433d0ea?gi=ed6c9cc36c51 |
41 sarlanori 2021-03-04 08:35:18 +08:00 via Android qt 除了开发效率低一点,其他挺好的,大型项目还是推荐用 qt,项目不大的话都可以吧 |
42 bthulu 2021-03-04 08:52:32 +08:00 unity 没人用么, 这个也能跨平台的, 招人也容易 |
44 missdeer 2021-03-04 09:21:05 +08:00 Qt 在 C++ GUI 框架中开发效率绝对算高的 |
45 XIVN1987 2021-03-04 09:24:53 +08:00 qt 跨平台、性能好、功能丰富,,久经考验,值得信赖 不过 C++学习、使用难度较大,,建议试试 PyQt 、PySide |
47 janxin 2021-03-04 09:48:45 +08:00 取决于你的开发能力啊,你的开发了解或者熟悉 Qt 那就上 Qt,没必要再去踩 Electron 的坑 如果都不熟,要看你对功能需求,很多程序对本地功能需求不大的前提下,Electron 是一个很好的选择。 看你的需求,百度网盘这种就算,界面与功能交互不复杂,下载进程其实就走独立的本地进程即可。 |
48 smilenceX 2021-03-04 10:05:12 +08:00 |
49 sssooonnnggg 2021-03-04 10:12:59 +08:00 考虑下 imgui ? |
50 nicevar 2021-03-04 10:23:36 +08:00 看你是做项目玩还是用了,如果是用肯定选择成熟的框架,那 Qt 就是最好的选择,毕竟 Qt 开发的软件几乎每个人的电脑上都有,游戏平台一堆都是 Qt 开发的,还有各类行业软件,反正我随便搜了一下电脑里有几十个,我的电脑里四个游戏平台,还有 AMD 的驱动管理、金士顿 SSD 管理软件、企业微信、AutoCAD 、抓包的 wireshark 、音乐的 MusicCore 和 GuitarPro 、IDE 的 HBuilderX,太多了。 |
51 chinvo 2021-03-04 10:28:22 +08:00 .Net 需要配合 Avalonia UI 才能跨平台 用 Xamarin 的话勉强算跨平台(共用核心库, 各平台分别建 UI 工程) C++ 和 QT 用起来也不错 后排提示, 跨平台扯着蛋 |
52 Torpedo 2021-03-04 10:28:32 +08:00 这么多推荐 flutter 的,想问下桌面端 flutter 有什么案例吗? |
53 paoqi2048 2021-03-04 10:29:23 +08:00 看你之前用的 MFC,那就 Qt 吧 |
54 newmlp 2021-03-04 10:31:11 +08:00 Qt,久经考验 |
55 crazytree 2021-03-04 10:38:49 +08:00 需要设计可以联系我:P |
56 TomVista 2021-03-04 10:58:24 +08:00 出产品当然 qt,electron,别的都是玩具 |
57 shunia 2021-03-04 11:04:19 +08:00 @noqwerty #30 应该是最新的稳定版发布后就计划好的,我感觉说是 2,其实主要就是网页平台基本 production-ready 了 |
58 shunia 2021-03-04 11:06:56 +08:00 @bthulu #42 Unity 因为是渲染引擎所以做 App 是挺耗性能的,很少有人选择。 @murmur 游戏工具有用 Unity 做桌面端的,比如: https://www.fairygui.com/ 这个 UI 工具就是用 Unity 开发的跨操作系统的桌面端。 |
59 loginbygoogle 2021-03-04 11:12:03 +08:00 via iPhone @weimo383 反编译太容易,被动开源不可取 |
60 charlie21 2021-03-04 11:22:17 +08:00 electron 参考 https://github.com/Xmader/aria-ng-gui |
61 kongziming 2021-03-04 12:00:35 +08:00 Qt,使用过 MFC 的话,用起 Qt 简单易上手 |
63 buzailianxi 2021-03-04 12:14:51 +08:00 qt |
64 g00001 2021-03-04 12:27:43 +08:00 其实前端网页能共用就行了,没有必要底层一定要跨平台,这样避免不必要的给自己挖坑。 ELectron 其实不如微软 Edge 的 WebView ( Chromium 内核) 轻量简洁。 aardio 里调用 WebView 的例子,生成的 EXE 文件打包就几百 KB import win.ui; var winform = win.form(text="Edge 浏览器控件 - web.view";right=759;bottom=469;bgcolor=16777215) import web.view; var wb = web.view(winform); wb.export({ alert = function(msg){ winform.msgbox(msg); return 123; } nativeLog = function(msg){ winform.msgbox(msg); } }) wb.html = /** <script type="text/Javascript"> alert("test").then( v=>nativeLog(v)) </script> **/ winform.show(); win.loopMessage(); |
65 littlewing 2021-03-04 12:51:38 +08:00 via iPhone electron 感觉很耗资源,不流畅 |
66 BernieDu 2021-03-04 12:59:33 +08:00 跨平台 UI 库还没黄啊。。android 和 iOS 本身就不应该共用一套设计,so stupid,外加原生开发体验很爽性能很高。没错,我是原生派 |
67 QBugHunter 2021-03-04 13:18:42 +08:00 Qt 最优选,但如果选择 Qt 的话招人是个问题,搞 C++的工资要求都不低(不算我) Electron,不适合高性能产品,如果没有对性能上的追求,Electron 也是个好的选择 |
68 fgodt 2021-03-04 13:34:01 +08:00 qt,electron 其他都不靠谱 |
70 lonewolfakela 2021-03-04 14:15:00 +08:00 其实弄个 wine 也不是不可以…… |
71 SenLief 2021-03-04 14:18:57 +08:00 qt 在跨平台上更友好,如果不在乎包大小,那无疑 electron 更方便。 |
72 piaochen0 2021-03-04 14:23:01 +08:00 @murmur 我们之前用 unity 做过 app,就是考虑跨平台,各种坑,包也特别大,很多东西也没解决方案。慎用... |
73 ACodelover 2021-03-04 14:51:23 +08:00 GTK,最近刚发布了 GTK4 |
74 Lemeng 2021-03-04 14:57:58 +08:00 QT,容易,好上手 |
75 Otho 2021-03-04 15:13:09 +08:00 推荐 Qt ,qt5 完整的做过一个跨平台的网盘项目,系统差异大的需要自己处理一下,github 上多找找也有不少开源库。就是资料少一点儿,需要自己慢慢找。 |
76 nutting 2021-03-04 15:13:14 +08:00 知乎上的轮子哥搞了一个 ui 组件,你问问 |
77 AmiKara 2021-03-04 15:46:55 +08:00 不管选什么最后开发还是与开发能力有关,electron 确实有很多坑,但也有类似于 vsc 这种非常优秀的产品,还是得看个人的技术栈或学习能力。 |
79 nerocc 2021-03-04 16:23:55 +08:00 via Android 真的需要发布包小的话,不要等框架,自己找一个类似于 WebWindow 这种的做前端,然后后端用一个自己懂得的高效率语言写一个,然后自己想办法打包起来。 SteveSandersonMS/WebWindow |
80 yunyuyuan 2021-03-04 16:33:18 +08:00 PyQt,写起来挺快,运行也不错 |
81 wangxiaoaer 2021-03-04 16:40:44 +08:00 @Torpedo #52 同问,先找个 demo 运行下看看都找不到 |
82 thtznet 2021-03-04 17:10:17 +08:00 MAUI,马上出正式版了 |
83 ragnaroks 2021-03-05 09:30:39 +08:00 现在稳定的只有 QT,或许可以等 MAUI,其它的都是自娱自乐 |
84 Otho 2021-03-05 10:28:27 +08:00 @csulyb Qt 的坑说起来挺多,但是我在开发过程中基本遇到的都能有可以使用原生的解决办法。与 js 交互有点麻烦,WebEngine 需要 js 单独支持,文件系统有差异需要使用原生方法解决,网络库不是很好用,建议使用开源的库,比如 Google 的。再有就是打包方面的问题了: Windows 的资料比较多,Mac 和 Linux 的较少,Linux 的看你需求使用官方的也能行,我用的一个开源解决方案 https://github.com/probonopd/linuxdeployqt 。Mac 的可以看一下论坛里的帖子 ,我的博客中也有一些总结,比较简单,可以参考一下 https://blog.msmk.live/ |