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

求移动端大佬指教:完美的一码三端方案存在吗? Android/iOS/Harmony Next,或求 ArkUI-X 开发救场经验

  •  
  •   dabinDev · 50 天前 · 3734 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景与痛点

    我们是小团队(只有 2 人),要开发 4 款跨平台 App ,需兼容 Android 、iOS 、Harmony Next。人手吃紧,希望能找到一套 "一码三端" 方案减负。但折腾了一圈,发现选型都是坑,尤其华为的 ArkUI-X 差点把我们整崩……求大佬们给点建议或避坑指南 🙏

    需求简单说

    • 目标:一套代码搞定三端( Harmony Next 是必选项),尽量减少桥接和平台差异处理。
    • 理想方案:生态成熟、文档完善、有现成轮子(比如像 Flutter Pub ),不然 debug 成本太高。
    • 备选:如果完美方案不存在,求 ArkUI-X 的实操经验或最小 Demo (能调系统功能那种就行)。

    技术选型踩坑实录

    方案 经验/优点 硬伤(尤其 Harmony Next )
    RN 没用过;社区活跃 官方不支持 Harmony Next ,仅靠社区版,稳定性存疑
    UniApp/UTS JS/UTS 写代码编译到原生 一套代码出三端 bug ,调试地狱; Harmony Next 兼容性模糊
    Flutter Android/iOS 很熟,Web 也稳 Harmony Next 全靠社区(这个);实测过轮子,但是配置繁琐,没不知道是否完美支持 harmony
    腾讯 Kuikly 文档看着比华为强,官网有完整范例 非官方、插件市场空荡荡
    华为 ArkUI-X 已用 ArkTS 开发原生 App ,语法接近 TS 生态灾难级!团队快被劝退,重点吐槽👇

    ArkUI-X 劝退八宗罪(求解决方案)

    我们押宝 ArkUI-X ,但开发过程全是泪。简单说:

    1. 生态荒漠:无插件市场(没有类似 pub.dev 的轮子池),连读取通讯录都得手撸桥接 😭
      示例:官方组件缺位,我们被迫用 import(harName).then(...) 搞动态加载,但静态编译报错(harInit not found)。
    2. 社区鬼城:开发者论坛提问无人答(浏览量几千回复 0 ),官方 Issue 没人管(GitCode 链接),工单踢皮球(只有回复回机器人)。
    3. 文档天坑:全托管在 GitCode ,无官网!语法模糊(声称 TS 扩展,但砍了 any/unknown),连 CodeDenie (官方 AI )都答非所问。
    4. 版本分裂:跨平台 ArkUI-X 和原生 ArkUI ( Harmony )是两套代码!组件不通用( e.g.,系统功能包跨平台直接报错)。
    5. Demo 匮乏:GitCode 示例全是 UI 花架子(按钮/列表),零底层调用 Demo (网络、存储、硬件 API )。
    6. AI 胡诌:豆包/GPT/Gemini 全不认识 ArkUI-X ,生成代码全瞎编(试过让 claude 写通讯录桥接,结果调了不存在的 API )。
    7. 工具链抽风:环境配置玄学(toolchains:-1 错误频出)。
    8. 维护存疑:项目更新缓慢,论坛提问积压半年……这玩意真有人用? 🤔

    求大佬指点的核心问题

    1. 完美方案存在吗?

      • 是否有 真正成熟 的一码三端方案(支持 Harmony Next )?或组合方案( e.g., Flutter + 社区轮子稳定版)?
      • 如果必须选 ArkUI-X ,怎么解决生态问题?有无非官方轮子仓库最小 Demo 参考(不涉业务逻辑,只展示通讯录/网络/存储调用)?
    2. 替代路线求评估

      • Kuikly 值得赌吗?有生产环境案例吗?
      • Flutter 社区轮子(如 flutter_fluuter)有无长期维护项目?
      • 是否该放弃 "一码",转 三端原生 + 共享逻辑层(比如 Kotlin Multiplatform )?但人手完全不够 💥
    3. 情感诉求(小声)

      • 真有团队用 ArkUI-X 扛下三端吗?求解决方案……
      • 或分享你们的跨平台尸山血河经验 💬

    ---## 背景与痛点 我们是小团队(只有 2 人),要开发 4 款跨平台 App ,需兼容 Android 、iOS 、Harmony Next。人手吃紧,希望能找到一套 "一码三端" 方案减负。但折腾了一圈,发现选型都是坑,尤其华为的 ArkUI-X 差点把我们整崩……求大佬们给点建议或避坑指南 🙏

    需求简单说

    • 目标:一套代码搞定三端( Harmony Next 是必选项),尽量减少桥接和平台差异处理。
    • 理想方案:生态成熟、文档完善、有现成轮子(比如像 Flutter Pub ),不然 debug 成本太高。
    • 备选:如果完美方案不存在,求 ArkUI-X 的实操经验或最小 Demo (能调系统功能那种就行)。

    技术选型踩坑实录

    方案 经验/优点 硬伤(尤其 Harmony Next )
    RN 没用过;社区活跃 官方不支持 Harmony Next ,仅靠社区版,稳定性存疑
    UniApp/UTS JS/UTS 写代码编译到原生 一套代码出三端 bug ,调试地狱; Harmony Next 兼容性模糊
    Flutter Android/iOS 很熟,Web 也稳 Harmony Next 全靠社区轮子(类似这个,但没官方人维护)
    腾讯 Kuikly 文档看着比华为强,官网有完整范例 非官方、插件市场空荡荡,更新日志玄学(去年 10 月后没动静)
    华为 ArkUI-X 已用 ArkTS 开发原生 App ,语法接近 TS 生态灾难级!团队快被劝退,重点吐槽👇

    ArkUI-X 劝退八宗罪(求解决方案)

    我们押宝 ArkUI-X ,但开发过程全是泪。简单说:

    1. 生态荒漠:无插件市场(没有类似 pub.dev 的轮子池),连读取通讯录都得手撸桥接 😭
      示例:官方组件缺位,我们被迫用 import(harName).then(...) 搞动态加载,但静态编译报错(harInit not found)。
    2. 社区鬼城:开发者论坛提问无人答(浏览量几千回复 0 ),官方 Issue 没人管(GitCode 链接),工单踢皮球(只回机器人)。
    3. 文档天坑:全托管在 GitCode ,无官网!语法模糊(声称 TS 扩展,但砍了 any/unknown),连 CodeDenie (官方 AI )都答非所问。
    4. 版本分裂:跨平台 ArkUI-X 和原生 ArkUI ( Harmony )是两套代码!组件不通用( e.g.,系统功能包跨平台直接报错)。
    5. Demo 匮乏:GitCode 示例全是 UI 花架子(按钮/列表),零底层调用 Demo (网络、存储、硬件 API )。
    6. AI 胡诌:豆包/GPT/Gemini 全不认识 ArkUI-X ,生成代码全瞎编(试过让 GPT 写通讯录桥接,结果调了不存在的 API )。
    7. 工具链抽风:环境配置玄学(toolchains:-1 错误频出),连 SDK 下载都得切代理(国内镜像?不存在的)。
    8. 维护存疑:项目更新缓慢,论坛提问积压半年……这玩意真有人用? 🤔

    求大佬指点的核心问题

    1. 完美方案存在吗?

      • 是否有 真正成熟 的一码三端方案(支持 Harmony Next )?或组合方案( e.g., Flutter + 社区轮子稳定版)?
      • 如果必须选 ArkUI-X ,怎么解决生态问题?有无非官方轮子仓库最小 Demo 参考(不涉业务逻辑,只展示通讯录/网络/存储调用)?
    2. 替代路线求评估

      • Kuikly 值得赌吗?有生产环境案例吗?
      • Flutter 社区轮子(如 harmony_next_bridge)有无长期维护项目?
      • 是否该放弃 "一码",转 三端原生 + 共享逻辑层(比如 Kotlin Multiplatform )?但怕人手不够 💥
    3. 情感诉求(小声)

      • 真有团队用 ArkUI-X 扛下三端吗?求心理按摩(或劝跑路)……
      • 或分享你们的跨平台尸山血河经验 💬

    64 条回复    2025-07-14 22:37:07 +08:00
    dabinDev
        1
    dabinDev  
    OP
       50 天前
    内容 ai 排版后复制重复了 大家见谅看把 求指导
    MacsedProtoss
        2
    MacsedProtoss  
       50 天前 via iPhone   ❤️ 10
    干掉鸿蒙即可 这个玩意没有用户量
    如果你的老板执意要做,不如直接跑路
    wen704
        3
    wen704  
       50 天前 via iPhone   ❤️ 1
    目前用 flutter 已经上线部分业务功能,鸿蒙端,以前安卓和 iOS 就有部分业务是 flutter 做的,鸿蒙端也直接上了,用的 3.7.12 的版本,还没升级到 3.22.0 。
    另外这个 flutter 引擎没适配 mac x86 模拟器,真的是拉,arm 和 win x86 模拟器都支持运行
    rn 的跨平台我也看了,目前社区适配版本好像还可以,没具体体验过,以前也开发过好几个 rn 项目,不过都是纯 rn 项目,不是现在 flutter 这种混合开发的模式。
    arkx 不考虑…仓颉之前鸿蒙端也写过,真的是折磨人,文档确实捞的一批,不过仓颉写的没上线也没用,也不支持跨端,问了华为的人,说是他们仓颉有自己的运行时。至此直接拉到,不用了
    iOCZS
        4
    iOCZS  
       50 天前   ❤️ 1
    Harmony 单独开发
    BBBOND
        5
    BBBOND  
       50 天前   ❤️ 2
    干脆 Android/iOS 用 flutter ,鸿蒙用浏览器套 flutter 打包出来的 web
    lisongeee
        6
    lisongeee  
       50 天前   ❤️ 1
    最跨平台的看起来只有 web 了
    weichunsheng3611
        7
    weichunsheng3611  
       50 天前
    必然是 Flutter , 安卓 iOS 就不说了,鸿蒙里面大厂用 flutter 的也很多,阿里,微信等等,flutter 虽然是社区,华为官方人一直维护,并持续迭代
    justsoup
        8
    justsoup  
       50 天前   ❤️ 1
    RN ,强交互不行,要结合原生,你们没有这个资源,PASS
    Uniapp ,快速出原型是可以的,当然如果资源有限也可选择
    Flutter ,我觉得是最适合的,性能接近原生,生态完善
    Kuikly ,生态还没起来,PASS

    所以其实很简单了,有强交互需求(动画、复杂手势、页面联动)就选 Flutter ,快速原型 / 资源有限 / 需求不复杂就选 Uniapp
    zzzmode
        9
    zzzmode  
       50 天前 via iPhone   ❤️ 1
    ios/android 用 flutter ,鸿蒙用原生 arkts 写,两个人的项目也不会很复杂,用不成熟的技术反而容易给自己挖坑
    chihiro2014
        10
    chihiro2014  
       50 天前
    这鸿蒙是非开发不可吗
    irrigate2554
        11
    irrigate2554  
       50 天前
    ios/android 用 flutter ,鸿蒙建议客户用卓易通,实在不行试试 flutter 鸿蒙支持,实在实在不行再单独开发鸿蒙
    9ki
        12
    9ki  
       50 天前   ❤️ 2
    还是 web 吧

    Android / iOS 用: RN + webview ,得益于 RN 生态,大多数原生需求都有优秀的社区插件,Expo 开发体验非常棒

    OHOS 就一点一点踩坑,反正用 webview 套壳随时都能更新。

    同理 capacitor 也可以,但是社区环境不如 RN ,插件质量差很多。

    你们可以一个人开发项目,另一个接入原生开发,千万不要想着直接上手鸿蒙原生,别人大厂有鸿蒙派人过来做旁边开发,你们进度这么赶还只没有专门客服,现阶段玩不动的
    han3sui
        13
    han3sui  
       50 天前 via Android
    感觉还是套壳稳一点,原生功能用 jsbridge 调用,页面用 web 撸
    Helsing
        14
    Helsing  
       50 天前 via iPhone   ❤️ 2
    ovCompose 可以看看,Compose 跨平台,腾讯适配了鸿蒙平台,已经实现腾讯视频的三端一码
    broken123
        15
    broken123  
       50 天前   ❤️ 1
    你要强行配置就只能走那种小程序的技术方案 前端用 h5 语法写 然后用 web 套壳渲染 只能这样 不过鸿蒙坑太多 要求后期性能你们 还是老实用 flutter 鸿蒙用 flutter 打包的 web 版本套
    piku
        16
    piku  
       50 天前 via Android
    最稳的方案当然还是 web 啦,搞个 angular 之类的单页面,交互也方便。原生的话我会选 flutter ,方案成熟稳定
    yrom
        17
    yrom  
       50 天前
    Cordova,认真的
    fadaixiaohai
        18
    fadaixiaohai  
       50 天前 via iPhone   ❤️ 1
    首选估计是 flutter ,鸿蒙的 flutter 就是华为的人在维护。但是你只有 2 个人的话,肯定是 web 套壳啊。flutter 光是系统兼容就不是 2 个人的团队能适配的。
    esee
        19
    esee  
       50 天前   ❤️ 1
    web 套壳,没有别的选项了。你们只有 2 个人,别太难为自己了。
    bloomy8
        20
    bloomy8  
       50 天前
    就 2 人老老实实用 h5 hybrid
    jackOff
        21
    jackOff  
       50 天前
    啥项目这么坑爹,能给个模糊的业务描述吗? web 还是本地单机?是嵌入式应用吗?
    jackOff
        22
    jackOff  
       50 天前
    web 的话好像 uniapp 就能全梭哈,其他情况要避雷鸿蒙
    AvilCore
        23
    AvilCore  
       50 天前 via Android
    uniapp/h5 +1,鸿蒙的跨端架构依托答辩,都是华为自己在维护还都是弄了个架子就跑路了。rn 社区更新尤其快的跟野狗一样鸿蒙跟不上

    有原生功能需求就向上管理把那些需求去了
    dabinDev
        24
    dabinDev  
    OP
       49 天前
    @wen704 谢谢回答的很好 我们确实有些动摇了 昨天下班忘记看过了
    dabinDev
        25
    dabinDev  
    OP
       49 天前
    @Helsing 谢谢腾讯的我还在研究 这个方案确实看起来比华为官方的好一些
    dabinDev
        26
    dabinDev  
    OP
       49 天前
    @justsoup 谢谢 我可以截图给老板看看了
    dabinDev
        27
    dabinDev  
    OP
       49 天前
    @esee 哈哈
    xzg1993
        28
    xzg1993  
       49 天前
    现在看他们的更新速度,我发现 flutter-flutter 昨天还在更新,估计华为内部也押宝 flutter 了。鬼有时间去踩坑鸿蒙
    retrocode
        29
    retrocode  
       49 天前
    我是推荐 uni-app-x , uni-app 开发起来其实还好, 主要是前期团队需要花 1 周左右熟悉平台差异, 主要是 css 样式兼容性, 你按纯原生渲染开发, 汇总一套 css 后基本也没差, 没有太重原生插件需求的情况下, 可以优先考虑
    dabinDev
        30
    dabinDev  
    OP
       49 天前
    @retrocode 项目确实有不少原生组件依赖我们是 toB 项目 很多都是内购买付费的 sdk
    xinyu391
        31
    xinyu391  
       49 天前
    可以试试 Qt , 哈哈
    retrocode
        32
    retrocode  
       49 天前
    @dabinDev #30 这种都还好, uts 对接这种原生 sdk 还是蛮方便的, 单函数热重载, 支付 SDK 一般是单函数调用, 问题不是很大.
    dannisYj
        33
    dannisYj  
       49 天前
    我们这边是底层封装的 C++库,上层 ios android 鸿蒙都是在此基础上封装了一遍,不过底层团队比较强大一点。鸿蒙确实适配难度大一点,接口很多没有,或者仍在迭代中,就这还是临时抽调了 3 个人专门做鸿蒙封装,踩坑比较多。
    justtokankan
        34
    justtokankan  
       49 天前 via iPhone
    目前就只有 flutter
    hwdq0012
        35
    hwdq0012  
       49 天前
    @weichunsheng3611 #7 flutter 不支持 ios 26, rn 可以
    LokiSharp
        36
    LokiSharp  
       49 天前
    放弃支持鸿蒙就行了
    betty00
        37
    betty00  
       49 天前
    webview 套原生的壳吧,Android/iOS 用 Flutter 套,鸿蒙就原生的套,开发成本最低
    zy0829
        38
    zy0829  
       49 天前
    一直在用 uniapp ,但是推荐 RN 哈哈
    ggzhyipeng
        39
    ggzhyipeng  
       49 天前
    来个邪教:用游戏引擎做
    dabinDev
        40
    dabinDev  
    OP
       49 天前
    @dannisYj 小公司技术实力不够呀
    dabinDev
        41
    dabinDev  
    OP
       49 天前
    @xinyu391 老掉牙了
    dabinDev
        42
    dabinDev  
    OP
       49 天前
    @justtokankan 确实是呀 移动开发者真难
    dabinDev
        43
    dabinDev  
    OP
       49 天前
    @LokiSharp 哈哈 没有决策权
    dabinDev
        44
    dabinDev  
    OP
       49 天前
    @zy0829 不会 rn fluuter 会一点点
    quantum00549
        45
    quantum00549  
       49 天前
    鸿蒙不是有卓易通吗,先保证功能,再讲体验
    kepenj
        46
    kepenj  
       49 天前
    2 人 4 平台开发,走 H5 套壳较为现实。
    dabinDev
        47
    dabinDev  
    OP
       49 天前
    @chihiro2014 哈哈哈
    bluearc
        48
    bluearc  
       49 天前   ❤️ 2
    就两个人,开发 4 个跨平台 app ,这不用浏览器套壳等什么呢,老板给多少钱才能招来这种核动力牛马
    dabinDev
        49
    dabinDev  
    OP
       49 天前
    回答好多 下沉了 怕被老板看到了 我已经得到了我的答案了 谢谢此贴所有的 V 友出谋划策
    dabinDev
        50
    dabinDev  
    OP
       49 天前
    @bluearc 哈哈哈 憋不住了兄弟
    ybz
        51
    ybz  
       49 天前
    Flutter ,iOS/Android 直接编译原生,鸿蒙编译成 wasm 的 web , 然后 webview 套壳,Flutter 编译 wasm web 体验和原生差别不大,等鸿蒙对 Flutter 的支持稳定了就可以编译鸿蒙原生了。
    baozijun
        52
    baozijun  
       49 天前
    flutter 官方一直在维护
    dcdlove
        53
    dcdlove  
       49 天前
    @bluearc 年轻人干劲足,什么时候公司也给我招两个这样的就好了
    dapaoge
        54
    dapaoge  
       49 天前
    web 套壳才是最优解
    shuimuyian
        55
    shuimuyian  
       49 天前
    码一下。
    kehuduanbuxing
        56
    kehuduanbuxing  
       49 天前
    看看我的 ID ,做鸿蒙的公司建议直接跑路
    dabinDev
        57
    dabinDev  
    OP
       49 天前
    @kehuduanbuxing 我都干 3 年了 让我跑路
    top
        58
    top  
       48 天前
    如果你们两个都是客户端的话,我觉得可以只写一个端的代码,然后用 AI 转换成另外几个端的代码,我个人预感 RN Flutter 这种跨端技术后面会被 AI 取代
    kongcc
        59
    kongcc  
       46 天前
    有人说一下 lynx 么? 我看字节都全面去 flutter ,转自研的 lynx 了。



    还有个问题,我个人觉得不写框架脱离业务能搞好么?比如 uniapp 的团队有自研的大型 app 么?
    kongcc
        60
    kongcc  
       46 天前
    @dabinDev #49 什么结论啊 老哥
    我现在也遇到类似的问题了
    IanHo
        61
    IanHo  
       46 天前
    为什么一定要鸿蒙?🥲
    dabinDev
        62
    dabinDev  
    OP
       46 天前
    @kongcc #59 腾讯的 quickly 也很火 但是目前生态最好的只有 flutter
    dabinDev
        63
    dabinDev  
    OP
       46 天前
    @kongcc #60 直接上 flutter arkui-x 极其不稳定 和成熟 直接砍了
    社区的提问根本没有任何人回复,你愿意踩坑那就感谢了
    kongcc
        64
    kongcc  
       46 天前
    @dabinDev #62 kuikly 吧 这个我在调研中也看到了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:30 · PVG 03:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.