首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ybw
V2EX  ›  程序员

如果我要开发一个客户端, 要求跨 Windows/Mac/ Linux /安卓/iOS 平台, 复用同一份底层逻辑代码, 那么 C++是不是唯一的选项?

  •  1
     
  •   ybw · 61 天前 · 3954 次点击
    这是一个创建于 61 天前的主题,其中的信息可能已经有所发展或是发生改变。
    47 回复  |  直到 2019-12-11 14:49:27 +08:00
    missdeer
        1
    missdeer   61 天前
    js 表示不服
    另外 Go 从技术上也没问题
    ybw
        2
    ybw   61 天前   ♥ 1
    @missdeer 你是说 Electron 吗, 使用这个框架的程序, 已经被 Apple 禁止上架了。
    hkitdog
        3
    hkitdog   61 天前 via iPhone
    Rust 也可以
    JunoNin
        4
    JunoNin   61 天前
    Rust 可以试试
    tomczhen
        5
    tomczhen   61 天前 via Android
    pwa : doge:
    hehheh
        6
    hehheh   61 天前
    小客户端还行,如果稍微大点的程序,不如 ios 和 macos 用 swift 其他平台用 java。
    一是 c++本身学习成本太高,找一队能 hold 住的人有点难。
    二是 c++的跨平台也没那么容易实现,光是 Linux 和 win 就需要在 header 和函数的使用上下点功夫。
    还有 c++本身有不少坑,就是不同的平台对一样的代码的解释可能会不太一样,这个和编译器有关。有的时候有的平台的编译器实现了优化,你的代码就行,有的平台的编译器没有优化,这个就很麻烦。。。
    ArthurRen
        7
    ArthurRen   61 天前
    pyqt
    hhx
        8
    hhx   61 天前 via Android
    @hehheh 请教下。目前国内的 C++开发是否要求掌握某个平台的开发库,例如 linux 提供的 C 接口等。我有 C 语言基础,也有一定的 linux 开发经验,想要从事 Cpp 开发的话,是否需要花时间学习 Cpp 相关的内容,例如 Cpp 标准库以及 boost 等准标准库。谢谢。
    mmdsun
        9
    mmdsun   61 天前 via Android   ♥ 1
    Xamarin 开发跨平台 App, 国外用的人也不少
    hehheh
        10
    hehheh   61 天前
    @hhx 大兄弟你真的问错人了,我没有在国内工作过。。。不过如果你单纯想问你懂 c 能不能直接上 c++的话,我只能告诉你这真的是两门语言。区别比一般人想象的大得多
    iceheart
        11
    iceheart   61 天前 via Android
    你自己写,可以上 C++。
    多人合作,建议上 golang。
    C++给别人擦屁股最难受了。
    zeroDev
        12
    zeroDev   61 天前 via Android
    可以尝试写个网页?
    xiubin
        13
    xiubin   61 天前 via iPhone
    flutter 它不香吗?
    hkitdog
        14
    hkitdog   61 天前 via iPhone
    @xiubin 话法太他妈恶心
    vipcc
        15
    vipcc   61 天前 via Android
    把各个平台不同的底层进行封装。
    然后进行业务逻辑开发。
    qt 已经帮你做好了。

    然而我不认同。
    HuHui
        16
    HuHui   61 天前
    目前在用 go + qt
    https://github.com/therecipe/qt
    dosmlp
        17
    dosmlp   61 天前
    c++似乎是唯一跨平台的了
    feelapi
        18
    feelapi   61 天前
    看你客户端的规模了。cpp 是可以的,核心逻辑也就是非界面部分用 cpp,可以做到所有系统一份代码。界面部分可以自己想办法。比如 qt,这个可以做到所有平台。这个也是 cpp。
    对开发人员要求很高,没有十年经验的人坐镇,你就不要想了,太多的坑经验少的人填不上的。
    xiangyuecn
        19
    xiangyuecn   61 天前
    html+css 做界面,js 搞逻辑吧,门槛超低,培训一个月就能上岗,真正的跨平台😂 这玩意你知道的能运行,你不知道的也能运行。不仅现在的平台能运行,过气的也能运行,甚至未来会诞生的都能运行😂😂😂

    当然要出产品请临时工肯定不行。
    across
        20
    across   61 天前 via iPhone
    是。
    假如不考虑部分原生 c 教派的话...
    rust 怕是比 c++更难找人。
    MasterMonkey
        21
    MasterMonkey   61 天前 via iPhone
    Cordova 怎么样?
    另外 EletronJS 怎么样?
    qazwsxkevin
        22
    qazwsxkevin   61 天前
    @feelapi 请教,如果业务的具体逻辑实现用 cpp 开发,在 win 的平台下(不使用 WEB 的方式,WEB 在人力的成本投入其实不低吧?)用什么做 UI,衔接最好,成本最低,人也容易上手?
    neoblackcap
        23
    neoblackcap   61 天前
    @dosmlp 只要能编译成对应目标平台的,其实都可以。虽然很多人没有说 Java,但是我的确也看过不少基于 JVM 平台开发的软件,虽然那个不太能算自己跨平台。
    如果对性能,交互要求很高的,的确是用 C++开发的比较多。可能还有其他用 Rust 啊,D-lang 啊。不过的确是用 C++的成功事例比较多。
    neoblackcap
        24
    neoblackcap   61 天前
    @across 其实写 rust 的,认同 rust 的,大多数也就是写 C++的那批人。rust 是可以说是 better c++了。
    feelapi
        25
    feelapi   61 天前
    @qazwsxkevin QT, WPF,MFC, 看你能找到什么样的人。
    mfc 很古老,但是发布简单,开发比较慢,不好找人。
    wpf 可以做的很漂亮,发布要注意一下。找人还好,可以做的很漂亮。
    qt 比较简单,上手快,但是有坑不好填。主要是有熟练工还好。
    heiheidewo
        26
    heiheidewo   61 天前
    别问,问就是 C++
    rome7054
        27
    rome7054   61 天前
    不是,前面楼层连 golang 这种对 UI 支持不友好的有人提出来,js 没用过不评论,python 和 golang 用着还行,然鹅对 Android/iOS 支持那还是算了,既然复用同一份底层逻辑代码,且包含移动平台,说实话 C#其实是更好选择,Windows/Mac/ Linux 直接使用 dotnet core 用的很舒服,安卓 /iOS 可以用 Xamarin,配合隔壁热帖宇宙第一 IDE VS,而且比起 C++,C#写起来不能再舒服
    Cbdy
        28
    Cbdy   61 天前 via Android
    @ybw 最可行的确实是 js,另外下架的原因是部分 app 用了私有的 API,并非所有 electron 应用都下架
    shuangya
        29
    shuangya   61 天前
    可以是可以,但是 C++后续维护难度……特别是稍微复杂点的应用,涉及到多端兼容……够你喝一壶的
    beginor
        30
    beginor   61 天前 via Android
    可能 Xamarin + C# 才是最佳方案
    lzihua
        31
    lzihua   61 天前
    持续关注下
    kwanzaa
        32
    kwanzaa   61 天前
    Golang 它不香嗎?
    yukinotech
        33
    yukinotech   61 天前
    @ybw 为什么?因为风控和合规的原因吗?
    momocraft
        34
    momocraft   61 天前
    什么叫底层逻辑, io 意义上还是 ddd 意义上
    trait
        35
    trait   61 天前 via iPhone
    @kwanzaa go 的主战场是服务端,别啥都无脑推,跨平台这种带尿瓶的就是弟弟
    Ahri
        36
    Ahri   61 天前
    TypeScript + React Native
    xuanbg
        37
    xuanbg   61 天前
    WebApp 也是客户端呢
    MonoLogueChi
        38
    MonoLogueChi   61 天前 via Android
    关键是你是否需要 UI 界面,如果不需要 gui,选择很多
    kwanzaa
        39
    kwanzaa   61 天前
    @trait 我觉得你不打算好好说话。
    mingl0280
        40
    mingl0280   61 天前 via Android
    是唯一选项。
    如果功能较多的软件,做 webapp 的性能调优能把你做到怀疑人生,c 艹起码在有良好的编码规范的情况下不会太坑爹。
    changdy
        41
    changdy   61 天前
    那么问题来了 为什么也 要复用一份逻辑代码... 尤其是 跨越 移动端 桌面端
    服用代码并不能减少 开发时间. 甚至后期坑更多
    jason94
        42
    jason94   60 天前   ♥ 2
    @ybw 大多数人都只是看了一下标题,就以为 electron 应用被禁止上架,然后以讹传讹。

    原文是在这里 https://david.dev/you-cannot-submit-an-electron-6-or-7-app-to-the-apple-store

    被禁止上架的原因是他使用了一些非公开的 api,有个 issue 也讨论了这个问题 https://github.com/electron/electron/issues/20027

    而且这也不止是在 electron,在 futter/rn 中使用非公开的 api 也是会被禁止上架的~~
    jason94
        43
    jason94   60 天前
    如果没有追求极致的性能,推荐桌面端 electron + react,移动端用 react-native,可以复用不少逻辑。
    mxT52CRuqR6o5
        44
    mxT52CRuqR6o5   60 天前 via Android
    rn(rn-web 配合 electron 能做桌面端),flutter,kivy,qt
    duanxianze
        45
    duanxianze   60 天前
    只有纯 web 能满足你的需求 大不了自带一个 chrome 嘛
    loginbygoogle
        46
    loginbygoogle   60 天前 via iPhone
    抱歉,flutter 无敌。
    GM
        47
    GM   43 天前
    挖个坟,Gluon Mobile 貌似还不错。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1660 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 02:24 · PVG 10:24 · LAX 18:24 · JFK 21:24
    ♥ Do have faith in what you're doing.