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

应该选择哪种跨平台方案

  •  
  •   cokey · 15 天前 · 3995 次点击

    准备开发一个新软件,覆盖的平台包括:Android 、iOS 、鸿蒙 Next 、Windows

    是 Flutter 、RN 、KMP+Compose ,还是其他方案。

    之前倾向于 Flutter 但是感觉 Google 越来越不重视 Flutter ,未来的前途存疑,所以现在倾向于 RN

    32 条回复    2024-11-01 22:47:11 +08:00
    angrylid
        1
    angrylid  
       15 天前
    也是月经贴了。
    首先,很多应用是可以套 Web 的,且建议优先考虑。不要矫情不要有技术洁癖,现在的用户有百兆光纤和 2T 硬盘真不差你那点。然后,复杂的交互没办法跨端的,有些在桌面上常见的操作,移动端是没有的,反之亦然,如果涉及到这方面建议桌面端单开。一定要在这三个挑就 RN ,相比另外两个也算是身经百战了。
    uqf0663
        2
    uqf0663  
       15 天前
    虽然 V2 不待见 uniapp ,但是如果是我,果断选择 uniappx ,直接全支持了移动端,插件市场有插件来实现 PC 端。
    AvilCore
        3
    AvilCore  
       15 天前 via Android
    其实就是你会什么就用什么
    所有系的 web+mobile 都是依托答辩,flutter
    web rnweb 都是臭狗屎,最好就是分开做或者全部 h5 套壳
    你不厌恶 js 那就是 react 系列最好 可以学 dart 就 flutter
    AoEiuV020JP
        4
    AoEiuV020JP  
       15 天前
    我选择 flutter ,
    主要是厌恶 js 系,
    kotlin 那个,总觉得还差几年,
    twig
        5
    twig  
       15 天前 via iPhone
    刚隔壁楼看到一个东西叫 avalonia ui ,看起来挺不错
    DOLLOR
        6
    DOLLOR  
       15 天前
    我是用户,我希望别用跨平台框架,每个平台都用各自的 native 工具链造轮子,性能最好。
    我是开发者,我希望 H5 webview 一把梭,早收工早下班,用户体验哪有我头皮重要?
    GeekGao
        7
    GeekGao  
       15 天前
    在于你个人对特定技术栈的好恶了。我是希望 RN 开发者社群更加大,哈哈哈,因为我喜欢 React
    XCFOX
        8
    XCFOX  
       15 天前   ❤️ 5
    React 的思路和 Flutter 非常不一样。
    React 有一层虚拟 DOM ,目前 React 的虚拟 DOM 适配了 web(react-dom)、iOS | Android (React Native)、windows (react-native-windows) 还有社区维护的 tvOS 、Skia ,甚至 React 还能直接渲染到视频 ( https://www.remotion.dev/) 。按理说要是 Flutter 的 Impeller 性能出色的话,React 再适配到 Impeller 也完全可行。
    而 Flutter 想做的是跨平台的图形界面的渲染引擎。Flutter 的界面是完全自绘的,这意味着放着完善的 ios/android 生态不用,全部都另起炉灶。这当然是值得鼓励的,但是谷歌给到 Flutter 的支持显然不如 Apple 给到 iOS 的,也不如谷歌自己给到 Android 的,于是 Flutter 在体验上始终与原生 APP 存在差距,尤其是高帧率逐渐普及之后,Flutter 不得不放弃 Skia 自研 Impeller 。

    新出炉的 React Native 0.76 默认启用了新架构,性能大幅提升,再加上 hermes 引擎,js 的执行速度早就不是瓶颈。

    而 Flutter 好像越来越不受 Google 重视了( https://www.v2ex.com/t/1084590 ) ,之前提到的全新 Impeller 引擎还没有完成 ( https://github.com/orgs/flutter/projects/21 ) ,期待 Impeller 能够拉近 Flutter 与原生的差距。

    我个人体验下来 React Native 的流畅度是显著好于 Flutter 的,React Native 在动画表现上确实 Native 。Flutter 写的页面一滑动就知道是 Flutter 写的(看惯了 120 hz 再看 60hz 肉眼可见掉帧)。

    可以体验一下 V2EX 的 Flutter 客户端和 React Native 客户端,Flutter 版本滑动、翻页的时候存在明显卡顿,RN 的体验明显好得多。
    https://github.com/guozhigq/flutter_v2ex
    https://github.com/liaoliao666/v2ex
    Danmen123
        9
    Danmen123  
       15 天前
    看你自己的技术栈,哪个做起来快就用哪个。
    musi
        10
    musi  
       15 天前 via iPhone
    统一 webview 套壳就行了
    也别上 RN 了,RN 可以不维护,webview 一定会始终存在的
    cowcomic
        11
    cowcomic  
       15 天前
    就我们的项目经验
    H5 和 Flutter 都挺好
    大部分场景 H5 都能搞定,对于一些跟手体验要求很严格的场景,可以用 Flutter
    wobuhuicode
        12
    wobuhuicode  
       15 天前
    react native 要优化好是可以的。后期招多两个原生来做原生组件给 RN 用。
    但是 Flutter 的话就要招会底层图形渲染的高手来优化了
    debuggerx
        13
    debuggerx  
       15 天前
    未来是指多远的未来?
    我去年就说过,哪怕 Flutter 立即失去所有支持停止开发维护,其优势地位也至少能保持 5 年左右。
    如果是刚入行(坑)的新人,可以多对比对比自己判断,否则大概率职业生涯结束了 flutter 也还活着。
    RightHand
        14
    RightHand  
       15 天前 via Android
    还是那句话,对自己的,有追求的就原生、flutter 。如果是给别人,快速实现那就 web 、uniapp
    youngce
        15
    youngce  
       15 天前
    项目快到 deadline:uniapp 真香。
    infun
        16
    infun  
       15 天前
    反正别用微软的轮子,会不幸
    mtjgu
        17
    mtjgu  
       15 天前
    Flutter 和 React Native 都可以。React Native 的心智负担较低,因为 js 帮你兜底。而 Flutter 在某些情况下需要额外的优化,但它的上限我觉的更高。ps:强烈建议不要使用 uni-app 进行跨端开发(个人观点 叠甲),这个框架存在许多问题。我曾经维护过一个 uni-app 项目,维护起来很吃力。例如,HBuilder 更新后可能导致打包出错,常常需要回退到之前的版本。
    chenxuuu
        18
    chenxuuu  
       15 天前
    @twig 桌面端可以用,移动端它靠的还是 xamarin 那套,我测下来挺卡的
    另外它不可能兼容鸿蒙 next
    dford
        19
    dford  
       15 天前
    Qt 支持你说的 4 种平台
    Parva
        20
    Parva  
       15 天前
    Tauri
    NewTab12138
        21
    NewTab12138  
       15 天前
    你要支持鸿蒙,那就只能 uniapp
    NewTab12138
        22
    NewTab12138  
       15 天前
    以为国外的平台不可能支持鸿蒙
    abc1310054026
        23
    abc1310054026  
       15 天前
    别的没用过,uniapp 我真用过。

    依赖得去插件市场找能不能找到你想要的只能看运气,插件并不是官方维护的,所以接口是否统一,使用方式是否一致也得看运气。文档缺这缺那,HBuilder 只能当启动器。

    uniapp 就像是粪海中的一朵小白花,花上写着跨平台,除此之外的东西都在海里。无数程序员被这朵花吸引,却失足掉进海里,满脸满口被糊上大粪。

    为什么文档上有这么多东西,但我却什么都找不到?千言万语说不出,呜呜呜呜 呜呜呜。
    Kieran
        24
    Kieran  
       15 天前
    我来推荐个 capacitorjs ,目前用了两年多了,使用良好,App 在各个应用商店都上架了,主流功能都能支持,开发成本等。
    TheBlind
        25
    TheBlind  
       15 天前   ❤️ 1
    tauri 2 ,我觉的不错。用的 webview ,比较简单。现在 tauri 2 支持安卓了。

    我用 tauri 写了终端工具,https://www.tshell.online/
    jeesk
        26
    jeesk  
       15 天前
    首先肯定是 flutter , 官方都放弃了,
    jeesk
        27
    jeesk  
       15 天前
    @Kieran 这个和 uniapp 是一个路子呢.
    SmiteChow
        28
    SmiteChow  
       15 天前
    你别管,老板说哪个就是哪个,老板如果让你自己定,说明老板想快速看到成效,那就 RNJS 一把梭。
    Kieran
        29
    Kieran  
       15 天前
    @jeesk #27 不太一样,这个套壳 h5 ,配合一些插件实现一些原生功能,插件比较丰富,也不局限在 vue ,可以用 react
    shebaoting
        30
    shebaoting  
       14 天前 via iPhone
    @XCFOX 第二个链接,我看里面说的是原生开发哈。我用手机浏览的 github ,可能也是我没看清楚?
    sir283
        31
    sir283  
       14 天前
    自己做,随便用哪个。
    公司做,看公司性质,如果是小公司赶进度,你又恰好只会前端跟部分 Java ,用 react native 就行了。如果不赶进度,还要求你要在低配置设备上跑,用原生最好,然后就是 qt 、c#这种。
    cokey
        32
    cokey  
    OP
       14 天前
    @NewTab12138 flutter 和 rn 现在都支持鸿蒙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:33 · PVG 16:33 · LAX 00:33 · JFK 03:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.