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

跨平台技术哪家强?

  •  
  •   James369 · 2021-02-03 09:36:11 +08:00 · 6818 次点击
    这是一个创建于 1391 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在关注了一些跨平台技术,不知道用哪个好,比如:

    Qt,老牌桌面跨平台方案,免费,但也支持移动端。Qt6 增加了不少新性,支持 3D 统一层,动画更酷炫等。
    Flutter,谷哥出口新鲜劲旅,移动端高性能方案,但也宣称支持 Web 、桌面和嵌入式平台。
    Unity3D,主要针对 3D 应用的跨平台,但我一直看好它,因为它支持很多的平台,而且可以 Gpu 加速。一直希望它能增加 2D 支持来统一天下。
    Html,真正的跨平台界面标准,真正的一统天下,我最看好它,主要缺点:对原生硬件支撑弱。


    问题是:
    你心中的最理想的跨平台方案是什么,看好哪个?
    如果要快速大范围铺出产品(应用消费型,纯软件),应该选用哪个方案?
    34 条回复    2021-02-04 18:12:56 +08:00
    murmur
        1
    murmur  
       2021-02-03 09:38:49 +08:00   ❤️ 1
    目前来说国内 html 一骑绝尘,对,我说的就是微信小程序,真的大规模商用、大厂背书、而且海量日活的技术
    murmur
        2
    murmur  
       2021-02-03 09:39:17 +08:00
    html 的 native 支持弱得看谁,微信这个级别的手机测试还没哪个第三方社区框架可以叫板
    Acccc
        3
    Acccc  
       2021-02-03 09:39:18 +08:00
    uni-aa
    encro
        4
    encro  
       2021-02-03 09:43:33 +08:00
    缺少两个主流:
    .net 5
    java
    James369
        5
    James369  
    OP
       2021-02-03 09:46:01 +08:00
    @encro .net 和 java 更多是后端服务吧
    silencelixing
        6
    silencelixing  
       2021-02-03 09:50:10 +08:00
    跟硬件相关的,还是用 QT 吧
    cjh1095358798
        7
    cjh1095358798  
       2021-02-03 09:56:52 +08:00
    普通应用还得是 h5
    tanranran
        8
    tanranran  
       2021-02-03 10:02:43 +08:00   ❤️ 1
    Html,你说得硬件可以用各种套壳来解决

    PC:electron
    Android/iOS/H5/各个平台小程序 :uni-app
    James369
        9
    James369  
    OP
       2021-02-03 10:07:09 +08:00
    @tanranran 对 flutter 怎么看,号称也支持 web 和嵌入式
    tanranran
        10
    tanranran  
       2021-02-03 10:19:25 +08:00
    @James369 #9 flutter 现在 web 和 PC,性能不行还是测试版不成熟,移动端还行
    wanguorui123
        11
    wanguorui123  
       2021-02-03 10:23:06 +08:00
    绕了一大圈,最后还是 HTML,香!
    wxw752
        12
    wxw752  
       2021-02-03 10:24:09 +08:00   ❤️ 2
    很不巧,我们公司都有涉及...目前是 pc 端 qt,安卓 ios 端 flutter,3 维展示 u3d 。不过我是后端,也仅仅是知道没有哪个在我们公司通吃。
    XIVN1987
        13
    XIVN1987  
       2021-02-03 10:40:01 +08:00
    现在好多工具软件用 electron 开发,,

    Qt 挺好,,就是 C++比较难,,PyQt/PySide 更易用些
    encro
        14
    encro  
       2021-02-03 10:43:52 +08:00
    @encro

    .net 5,java 有很多 PC 端和移动端的跨平台框架啊。
    注意是.net 5 。
    loshine1992
        15
    loshine1992  
       2021-02-03 10:46:44 +08:00
    Flutter 现在只有移动端能打,桌面和 Web 都不行
    crackhopper
        16
    crackhopper  
       2021-02-03 10:54:54 +08:00   ❤️ 2
    都用过。我觉得 MVP 阶段能 H5 就 H5,更快一点,后续再说(移动端 RN,桌面 electron,Web 就随意选择了)。u3d 不可能往应用方面做,特效和性能还是主要的,估计主要瞄准 ue4 来搞了; qt 说实话写起来挺重的,毕竟 c++,但对性能敏感的场合能更好点。未来的跨平台,我会看好 flutter 一点;用的不多,目前支持也不够,不过整体从跨平台 app 角度设计语言的方式,我觉得还是更有前景的。
    ericgui
        17
    ericgui  
       2021-02-03 11:15:52 +08:00
    @loshine1992 而且还只是安卓,iOS 肯定还是 Swift
    gdrk
        18
    gdrk  
       2021-02-03 11:30:24 +08:00
    H5 套各个平台的壳,一个 hello world 就几十 m 的那种
    xinxing260
        19
    xinxing260  
       2021-02-03 11:54:52 +08:00
    根据产品类型和目标用户进行技术选型
    Sapp
        20
    Sapp  
       2021-02-03 12:05:32 +08:00
    现在普通应用还是 electron 用的多
    huqi
        21
    huqi  
       2021-02-03 13:25:40 +08:00
    回归原生
    lower
        22
    lower  
       2021-02-03 13:48:46 +08:00
    没有银弹,按需技术混合着搞也许是较为合理的办法
    DoctorCat
        23
    DoctorCat  
       2021-02-03 13:53:50 +08:00
    对性能要求的话,Qt 体验不错。
    对开发成本有要求的话,H5 可以满足。
    KeyboardManAnAn
        24
    KeyboardManAnAn  
       2021-02-03 14:29:19 +08:00
    微软的 MAUI 跨平台也正在开发中,未来或许可以一战
    sc3263
        25
    sc3263  
       2021-02-03 14:40:45 +08:00   ❤️ 1
    主要做桌面端。用过 Qt5 、PyQt5 、Electron 、原生,调研过 Flutter 。

    Qt5 性能接近原生,上手后开发速度其实很快的。QML 其实很不错,但是学的人用的人都太少,很多坑只能自己填。对各平台下的特性支持的一般,需要自己封装。如果用到了 Qt Web Engine,可能会遇到显卡兼容性相关的问题。
    PyQt5 开发速度极快,但 PyInstaller 打包时不时的会出点幺儿子。以及 Python 本身的性能瓶颈,同样的动画效果,C++实现好不费力,Python 实现能跑满单个核心。
    Electron 开发速度快,各平台下的特性支持全,开发到打包到分发到异常收集,都有完善的解决方案。社区活跃度很高,有啥需求 /bug,很快就能处理。唯一的缺点大概就是体积占用大,运行效率稍微低一点了。
    Flutter 桌面端目前还是玩具,不建议自己去踩坑。

    心中最理想的跨平台方案:核心业务逻辑用 C/C++实现。在各平台下用原生语言去实现界面交互和使用系统特性。但绝大部分场景下,不需要这么重的方案。
    确定下公司当下是否真的需要跨平台方案,是否真的需要移动端和桌面端使用同一套方案。目前并没有哪套框架能够完美通吃桌面端和移动端。各个框架依然需要针对各个端进行适配开发。实际工作量并不比单独维护要小,甚至难度会更高。
    快速出产品的话,桌面端除非有历史经验 /包袱,否则建议无脑 Electron 。移动端没有上线的项目,没有发言权。
    maxxfire
        26
    maxxfire  
       2021-02-03 21:41:42 +08:00
    跨平台都有坑,还是原生是王道
    byaiu
        27
    byaiu  
       2021-02-04 00:13:46 +08:00 via iPhone
    qt6 根本下不下来,吃相太难看了
    pecopeco
        28
    pecopeco  
       2021-02-04 08:15:15 +08:00 via iPhone
    小程序的性能和包大小限制就注定了它走的不是和 app 正面竞争的道路,有自己的生态和适用范围,将来是不可能全面取代并竞争过其他跨平台技术的
    MakHoCheung
        29
    MakHoCheung  
       2021-02-04 09:10:19 +08:00
    跨平台肯定 swiftui,说的就是跨苹果多设备,哈哈哈
    CismonX
        30
    CismonX  
       2021-02-04 09:17:39 +08:00
    如果是交互形式比较简单的 GUI 应用,Tk 也是一个不错的选择
    psklf
        31
    psklf  
       2021-02-04 10:07:18 +08:00
    底层 C++ 上层各写各的。
    hatsuyuki
        32
    hatsuyuki  
       2021-02-04 15:12:00 +08:00
    飞书团队用 Rust 写跨平台客户端的非 UI 部分 https://www.bilibili.com/video/BV1jv411t77Z/
    AaronLee01
        33
    AaronLee01  
       2021-02-04 18:00:56 +08:00
    React native 就这么被淡忘了么,其实开发体验还可以啊
    2021kaixin
        34
    2021kaixin  
       2021-02-04 18:12:56 +08:00
    都是垃圾,都是打包
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:15 · PVG 15:15 · LAX 23:15 · JFK 02:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.