V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NewYear
V2EX  ›  问与答

据说 NTQQ 桌面版是 Electron,那移动版是什么开发的呢?

  •  
  •   NewYear · 4 天前 · 1668 次点击
    很多软件的桌面端都使用 Electron ,但我搜了很久,却几乎没人提到他们的手机端是用什么开发的。Electron 是基于 Chromium 和 node.js 的,这俩玩意至少也能在安卓运行,为何却不支持手机端呢。

    例如 NTQQ 号称大一统,我估摸着意思应该是开放环境是统一的?或者当中用到的类、库是统一的?或者干脆就是一个项目?

    翻阅了很久,网页技术跨平台基本上都推荐 Electron ,好吧我也认同毕竟用的软件太多了,但是!移动端都用什么呢?毕竟主流软件都是有桌面端和手机端的,但大家似乎都闭口不言了(就像有什么隐秘,大家默契的选择了不告诉别人)。

    我想问的是,桌面端跨平台用 Electron 已经够了,但桌面已经写了一套,没理由不把各种代码共享给手机端吧,这样手机端开发起来就不会有什么差异了(逻辑、数据)。

    所以如何在有了 Electron 桌面端项目,尽可能用这套代码去开发手机端(移动端)呢?国内这么多软件,大家普遍采用什么方案呢?

    这里不聊全平台跨平台(已经看到了大部分人会推荐 Flutter),这里只聊 Electron 的移动端解决方案。
    16 条回复    2024-09-17 12:54:07 +08:00
    sugarkeek
        1
    sugarkeek  
       4 天前   ❤️ 1
    留点岗位给移动端吧🥹
    fgt1t5y
        2
    fgt1t5y  
       4 天前   ❤️ 1
    手机版还是原生的吧,当然也有挺多 H5 的部分。
    dreamk
        3
    dreamk  
       4 天前   ❤️ 1
    ios 限制使用除自家外的浏览器内核吧,所以 electron 不能发布到 ios 上。如果是 react 写的,可以迁移到 rn ,逻辑全部复用就行了
    但 js[桥接原生模块]( https://github.com/redbadger/crux)会有性能问题
    fuzzsh
        4
    fuzzsh  
       4 天前 via Android   ❤️ 2
    腾讯有文章透露过 QQNT 的技术框架,搜看下

    iOS Android 还是用原生来着,就 windows macOS linux 用了 electron 做渲染
    NewYear
        5
    NewYear  
    OP
       3 天前
    @sugarkeek
    哈哈,不至于,Flutter 已经出来了几年了,原生跨平台桌面端+移动端+Web 端。

    @fgt1t5y
    H5 一般用什么解决方案呢,目前知道的 uniapp 之类的听说 bug 多多

    @dreamk
    RN 用的普遍吗,好像现在能跨平台手机+桌面的都不怎么好,bug 多。。。。2024 年目前各种都是推荐 Flutter 了
    NewYear
        6
    NewYear  
    OP
       3 天前
    @fuzzsh

    原来如此,一直期待着简单点,让我等也玩一玩,哈哈,原生的难搞难搞。看来 Flutter 才是真的做到了比较高的程度,现在普遍都推这个。
    jim9606
        7
    jim9606  
       3 天前   ❤️ 1
    QQNT 的大一统是为了桌面平台的大一统,可以方便支持各种国产 linux 和 WoA ,老 QQ 原本深度耦合 MFC ,后逐步迁移到自研 Hummer 框架,跨平台不那么容易。
    至于手机桌面统一路线那就不见得很有必要了,毕竟交互 UI 啥的本来就要写两套的,强行统一并不能减少维护量还要付不小的迁移代价。
    这跟生于移动端的平台不一样,后有桌面端的应用会选择尽量沿用移动端的路线,一是从零开始不存在迁移成本之说,而且沿用路线可以直接调原有的人力和流程去做,不用费劲重新组团队。
    实际上 QQNT 相比老版的好处还没体现出来,虽然我个人偏好这个新架构客户端,但不否认其性能和功能在短期内都不会超过老版,我也没少听人嫌弃这个新版。
    Donaldo
        8
    Donaldo  
       3 天前
    根据我用着的手感,我估计也不是原生的。。就和微信比一比就知道了,qq 的操作总感觉比触摸慢半拍。
    NewYear
        9
    NewYear  
    OP
       3 天前
    @jim9606

    我也讨厌这个新版,手机版已经打算退回 8.9.X 了,原因是 9.0 开始每天会把各种图标标记上红点(未读),必须每天全部点一遍才能消失,逼死强迫症,强迫“点广告”。
    电脑版不兼容旧版,管理消息也没有以前那么完整的功能。。。。(比如备份聊天记录成文件并可以恢复)

    可能是受限于 KPI 、盈利的压力,但这些负面特性基本上是赶人走了……(如果继续这样,毫不意外我会彻底不用 QQ ,目前我还是 QQ VIP )

    架构上的优秀倒没有体验,毕竟直接放弃了,只是作为开发兴趣想了解一下。。这样自己也能偷懒开发点有趣的东西。。。我所认为的跨平台是有的逻辑只要开发一次就可以了,不用写 2 次代码,也避免了逻辑上的差异/bug 。


    @Donaldo
    也不知道是什么开发的,目前没找到资料确认是什么开发的。。。打开 APK 看了下,也没看懂,好像是原生的。
    jim9606
        10
    jim9606  
       3 天前   ❤️ 1
    @NewYear
    好写代码可以是指人好招好培训,你觉得招个 c++客户端程序和 web 前端程序哪个更容易。
    真要偷懒只写一遍那就把移动版的界面拉长硬搬到桌面上,我们一般称这种为暴力移植。
    你说的那些新版的问题就是迁移成本。
    自己小打小闹肯定考虑开源方案做基础吧,反正你也不可能有精力自己写一套 UI 轮子,就算有,大概率不如现成的好用。这跟 QQ 当年的行业情况不一样,那时自造轮子算是基础需求。
    ysc3839
        11
    ysc3839  
       3 天前 via Android   ❤️ 1
    @jim9606 没记错的话,QQ 使用 MFC 已经是 2008 年之前的事了,从 QQ 2009 开始改用全新研发的“TXGuiFoundation”,应该已经不依赖 MFC 了。
    现在换掉 TXGuiFoundation ,应该是因为懂 Windows 开发的人越来越少,维护成本过高,且 TXGuiFoundation 似乎一直不支持 GPU 加速,界面复杂度提升上去后性能越来越差。
    ysc3839
        12
    ysc3839  
       3 天前 via Android
    Electron 不支持移动端可能是因为进程模型等不一样?
    Electron 是先启动 Node.js ,执行入口 js 脚本,然后 js 脚本中可以选择创建 Chromium 窗口。
    但是 Android 是启动应用中的一个 Activity ,不好对接 Electron 原本的那种流程。
    jeesk
        13
    jeesk  
       3 天前 via Android
    手机 qq 是原生加 h5 。 比如个人资料,扫描后就是跳转 就是 h5 页面。
    NewYear
        14
    NewYear  
    OP
       2 天前
    @ysc3839

    Chromium 有移动版啊,理论上不应该有问题的。
    ysc3839
        15
    ysc3839  
       2 天前 via Android
    @NewYear 移动版和桌面版差异过大,不好移植。Chromium Android 至今没法避免网页把整个浏览器卡住,而这个特性在桌面版上大概 16 年前的 2008 年就有了。
    NewYear
        16
    NewYear  
    OP
       2 天前
    @ysc3839

    好吧,不过我仍然是觉得有比没有好。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2367 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:01 · PVG 00:01 · LAX 09:01 · JFK 12:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.