V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX  ›  程序员

2020 年写跨平台桌面客户端用什么?

  •  
  •   ericgui · Sep 2, 2020 · 10591 views
    This topic created in 2063 days ago, the information mentioned may be changed or developed.
    我最近考虑写一个跨平台的桌面客户端,不是游戏,就是办公类的产品。

    第一个出现在脑海中的选择似乎是 electron
    然后搜到有 react native for windows/macOS

    当然,也有 Qt,但我显然不懂 C++或者 Python

    C#写 WPF, 当然非常 OK,但不跨平台,而且我还要重新学 C# ?

    所以,各位有什么看法么
    Supplement 1  ·  Sep 2, 2020
    好,那就 electron 吧

    谢谢各位
    42 replies    2020-09-28 10:42:59 +08:00
    caopi
        1
    caopi  
       Sep 2, 2020
    electron 。。。飞书,twitch 都是 electron,还有马斯克的火箭控制台。。。。
    ragnaroks
        2
    ragnaroks  
       Sep 2, 2020
    如果终端不在意体积和性能,electron 最合适,否则 QT
    h82258652
        3
    h82258652  
       Sep 2, 2020
    electron 吧。avalonia 中文输入法据说有问题。flutter 还没 stable 。
    murmur
        4
    murmur  
       Sep 2, 2020   ❤️ 1
    办公直接 web 就可以,能说一下做 app 的意义么

    web 其实挺好的,不需要考虑发布的问题,做 app 你就逃不掉更新这些
    icenine
        5
    icenine  
       Sep 2, 2020
    VSCode 也是 electron 的,这还不能打消你的顾虑吗
    BingoXuan
        6
    BingoXuan  
       Sep 2, 2020 via Android
    我用 Webview 包了一个 app,可惜快捷键用不了,但体积小。实时图表更新比 chrome 还要丝滑,这一点非常不解。
    haleyao
        7
    haleyao  
       Sep 2, 2020
    flutter 我觉得可用了呀
    用它写了个地图编辑器 还没遇到坑
    96412hj
        8
    96412hj  
       Sep 2, 2020
    @BingoXuan #6 老哥,能给个链接吗?学习学习,最近正好工作有需要,之前用的 electron,这玩意太不稳定了,老是更新,现在我做的项目要和模组打交道,想着还是用原生包个 webview
    nnnToTnnn
        9
    nnnToTnnn  
       Sep 2, 2020
    @BingoXuan 6L 老哥,你试试换个操作系统试试。
    knightgao2
        10
    knightgao2  
       Sep 2, 2020   ❤️ 3
    electron 航天级别实战框架
    Guidoo
        11
    Guidoo  
       Sep 2, 2020
    electron 不解释
    zjsxwc
        12
    zjsxwc  
       Sep 2, 2020
    考虑下 imgui,和 PHP 裸写网页一样写 GUI,挺简单的

    https://github.com/ocornut/imgui

    https://github.com/inkyblackness/imgui-go
    C603H6r18Q1mSP9N
        13
    C603H6r18Q1mSP9N  
       Sep 2, 2020
    @haleyao #7 flutter. 桌面端都支持了?

    实际上很多桌面端就是 webview 包个壳,动不动就 100M,看见就头大
    zzk1989
        14
    zzk1989  
       Sep 2, 2020
    使用浏览器作为界面吧,只带一个托盘,用 websocket 通讯,打开界面用默认浏览器或者使用 chrome 命令行 app 模式
    clf
        15
    clf  
       Sep 2, 2020
    electron
    flutter
    Chenamy2017
        16
    Chenamy2017  
       Sep 2, 2020
    electron + vue.js 走起。QT 年轻的时候做过几年,现在入坑 electron 。
    cheng8984
        17
    cheng8984  
       Sep 2, 2020
    去年用 PyQt 写了一套,感觉还可以,QtDesigner 用起来舒服啊
    jjianwen68
        18
    jjianwen68  
       Sep 2, 2020
    supermoonie
        19
    supermoonie  
       Sep 2, 2020 via iPhone
    考虑性能的话 qt 还不错,不考虑性能,javafx 也不错,另外也可以考虑 jcef 做个外壳加载本地页面,最近在用 javafx 做跨平台的开发,只可惜 jcef 不支持 javafx,论坛里 15 年开始提议,到现在也没能支持,不过可以曲线救国使用子进程打开 jcef 或者花钱买 JxBrowser
    em70
        20
    em70  
       Sep 2, 2020
    delphi 一个工程同时编译成 win 和 mac 两个版本,几乎无需额外代码
    BingoXuan
        21
    BingoXuan  
       Sep 2, 2020
    @96412hj
    go 有个库就叫 webview,你搜一下就知道了。但我觉得这个做小工具还行,大项目还是不要了,api 极其简陋。因为不同操作系统下对 webview 有各种限制。在 macOS 下连复制粘贴都不行,alert 更是不行。更没有 electron 那样不同进程相互调用,我自己手写 websocket 的 rpc 。v 友写过一个 deskgap,但已经停止开发了。我也考虑给 deskgap+1s,无奈不会 Windows 下的编程。

    @zjsxwc
    imgui 在高分辨率下很容易糊,非常蛋疼。不过真的非常小。

    @shanghai1998
    100m 肯定是 electron,不是 webview 套壳,而是把整个浏览器扔进去了。
    ruyuejun
        22
    ruyuejun  
       Sep 2, 2020
    毫无疑问现在是 Electron
    lux182
        23
    lux182  
       Sep 2, 2020
    electron 感觉让人又爱又恨
    Jirajine
        24
    Jirajine  
       Sep 2, 2020 via Android
    tauri
    Ritr
        25
    Ritr  
       Sep 2, 2020
    如果不是必须的话 web 版的其实就足够了,electron 也无非就是套壳开发
    icyalala
        26
    icyalala  
       Sep 2, 2020
    如果是 Java 技术栈的,尤其是做 Android 的,JavaFX 几乎没有学习曲线,
    而且不至于过几个月连 build 都失败(狗头)。
    wh1012023498
        27
    wh1012023498  
       Sep 2, 2020
    qt,electon,nw.js
    hwdef
        28
    hwdef  
       Sep 2, 2020
    electron 性能想优化的好太难了,,,只有 vscode 算是性能好的,,其他 electron 写出来的都太差了。。。

    c#现在也可以跨平台,,xamarin

    或许跨平台就是个错误的选择呢?厂商的意义就是创造壁垒,,为难跨平台的应用。
    tairan2006
        29
    tairan2006  
       Sep 2, 2020
    跨平台是个坑…目前最大的指望是 flutter,但是现在还不能用
    gongym
        30
    gongym  
       Sep 2, 2020 via Android
    govcl,跨平台,轻量级,拖拽 UI 布局,案例丰富,golang 开发。简直完美
    luosong
        31
    luosong  
       Sep 2, 2020
    以前用 QT,写过 js 之后再也不想碰 C++
    element90
        32
    element90  
       Sep 2, 2020
    难道不是 flutter 吗?
    我是 Java 后端开发,但最近辞职没找到工作,所以在家学习了 Flutter,真心推荐下,真的挺好用,flutter 的语言使用 Dart,Dart 有点像混合了 js 和 java,不像 scala 那样复杂,很好上手。
    而且我本人也没有太多的移动端开发经验,做过全栈(web),可以轻松地构建自己的应用,虽然目前只是 android 和 iOS,但 flutter 支持到桌面级的开发,非常方便移植。
    另外毛遂自荐一下自己的应用,已经开源,github 地址:https://github.com/forfuns/sudoku-flutter
    希望可以帮到你
    qq7790586
        33
    qq7790586  
       Sep 2, 2020
    electon 真的是又爱又恨。vscode,迅雷。钉钉貌似也是 electon
    HaiYu
        34
    HaiYu  
       Sep 2, 2020
    可以关注一下 tauri 对标的是 electon,虽然功能还不全但感觉有前途
    creanme
        35
    creanme  
       Sep 2, 2020
    react-native (手动狗头
    不过 react-native 确实可以开发 windows 和 macos 的程序,轮子哥似乎在做这方面的工作。
    zhanlanhuizhang
        36
    zhanlanhuizhang  
       Sep 3, 2020
    .NET Core,应该是跨平台的吧
    PopRain
        37
    PopRain  
       Sep 3, 2020
    .net Winform 和 wpf 应该很快可以跨平台了, 强烈不建议 QT , 就算在 windows 下运行,也不是调用 windows 的 API, 是自己做的一套窗口系统,不喜欢。(当然也可能我对 QT 了解不多,没有 c++功底的人就不要考虑 QT 了)
    myCupOfTea
        38
    myCupOfTea  
       Sep 3, 2020
    @qq7790586 钉钉是 nw.js
    myCupOfTea
        39
    myCupOfTea  
       Sep 3, 2020
    不兼容 xp electron,兼容 xp nw.js
    ArrayBuffer
        40
    ArrayBuffer  
       Sep 3, 2020
    如果有时间折腾可以试试 flutter, 想快速开发还是用更成熟的 electron, 就这么简单
    loginbygoogle
        41
    loginbygoogle  
       Sep 28, 2020 via iPhone
    现在是 electron,2-3 年后是 flutter
    loginbygoogle
        42
    loginbygoogle  
       Sep 28, 2020 via iPhone
    等 flutter desktop 完成了对 webview2 的集成,electron 就可以退休了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1475 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
    ♥ Do have faith in what you're doing.