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

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

  •  
  •   dabinDev · 3 天前 · 2329 次点击

    背景与痛点

    我们是小团队(只有 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 扛下三端吗?求心理按摩(或劝跑路)……
      • 或分享你们的跨平台尸山血河经验 💬

    dabinDev
        1
    dabinDev  
    OP
       3 天前
    内容 ai 排版后复制重复了 大家见谅看把 求指导
    MacsedProtoss
        2
    MacsedProtoss  
       2 天前 via iPhone   ❤️ 9
    干掉鸿蒙即可 这个玩意没有用户量
    如果你的老板执意要做,不如直接跑路
    wen704
        3
    wen704  
       2 天前 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  
       2 天前   ❤️ 1
    Harmony 单独开发
    BBBOND
        5
    BBBOND  
       2 天前   ❤️ 2
    干脆 Android/iOS 用 flutter ,鸿蒙用浏览器套 flutter 打包出来的 web
    lisongeee
        6
    lisongeee  
       2 天前   ❤️ 1
    最跨平台的看起来只有 web 了
    weichunsheng3611
        7
    weichunsheng3611  
       2 天前
    必然是 Flutter , 安卓 iOS 就不说了,鸿蒙里面大厂用 flutter 的也很多,阿里,微信等等,flutter 虽然是社区,华为官方人一直维护,并持续迭代
    justsoup
        8
    justsoup  
       2 天前   ❤️ 1
    RN ,强交互不行,要结合原生,你们没有这个资源,PASS
    Uniapp ,快速出原型是可以的,当然如果资源有限也可选择
    Flutter ,我觉得是最适合的,性能接近原生,生态完善
    Kuikly ,生态还没起来,PASS

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

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

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

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

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

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