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

马上 2025 年了,还有多少人在用 React Native ?

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

    鄙人主 Java 开发,对前端技术了解不多,在之前 RN 火热🔥时期,由于会一点前端,上手相对简单,在移动端技术选型时选择了 RN,但是这几年慢慢的发现很多 RN 组件库都没人维护了,各大技术博客平台有关 RN 的帖子都停留在 3 ~ 5 年前。

    想请教下移动端的大佬们,给点意见:

    1 、如果继续使用 RN 开发,没有合适的组件库时,应该学 Objective-C ,还是 Swift ?

    2 、推荐一个学习成本较低的框架( uniapp 就算了~~)

    108 条回复    2024-12-25 14:23:49 +08:00
    1  2  
    xiexiping
        1
    xiexiping  
       32 天前
    flutter 起来之后,RN 存在的意义就不大了,坑又多性能又不怎么样
    neel
        2
    neel  
       32 天前   ❤️ 7
    @xiexiping 起来了吗
    oliveira
        3
    oliveira  
       32 天前   ❤️ 9
    如果你在纠结选择 React Native 还是 Flutter ,我建议选择 RN ,JS 的生态还是要比 Dart 繁荣的多。
    现在 RN 的组件库已经很完善了,基本上可以覆盖绝大部分开发场景,不需要单独去学习原生开发。
    https://imgur.com/XYjK1N3
    gxm44
        4
    gxm44  
       32 天前
    果断 RN ,RN 是越来越好了,Flutter 倒是没有像预期那样起来
    muyin1206
        5
    muyin1206  
       32 天前
    无脑选 rn ,用 expo 框架
    bkmi
        6
    bkmi  
       32 天前 via Android   ❤️ 1
    @xiexiping 张口就来,flutter 是好,但是根本起不来
    Kolento
        7
    Kolento  
       32 天前
    flutter 也有很多库停更的
    ryougifujino
        8
    ryougifujino  
       32 天前
    @xiexiping 恰恰相反,现在 RN 是越来越好了,相反 Flutter 显得有些力不从心了
    nevergotit
        9
    nevergotit  
       32 天前
    我选择的是 RN ,现在前端团队的小伙伴都可以维护。
    我现在纠结的是怎么适配鸿蒙
    MRG0
        10
    MRG0  
       32 天前
    我咋感觉 rn 上手不简单呢,比如说我想找一个选择日期时间的组件,找半天没找能用的
    LokiSharp
        11
    LokiSharp  
       32 天前
    无脑选 JS/TS
    ixcode
        12
    ixcode  
       32 天前   ❤️ 1
    打败 RN 的不是 flutter ,而是 Cursor 。
    Cursor 把学习一门新语言的门槛降低了非常多,而且还是基于实践的学习。
    当前其他的 AI Coding 也有很棒的,作用上差不多。
    nevergotit
        13
    nevergotit  
       32 天前
    ant-design-mobile-rn
    nevergotit
        14
    nevergotit  
       32 天前
    @nevergotit 手滑发出去了,RN 组件库可以试试这个,相对比较好用
    oliveira
        15
    oliveira  
       32 天前
    FaiChou
        16
    FaiChou  
       32 天前
    之前写过 RN ,好几年没写了,之前写的 RN 都是裸写,现在官方都是推 expo ,用 expo 创建管理项目以及很多 UI 组件。现在要再来学一遍 expo ,稍微看了下,之前用的 navigation 现在被 expo 的 router 代替了,之前用 redux 等状态管理工具来控制 navigation 兼职是噩梦,不知道现在的 router 是否更好用了没。
    而且现在还多了个 EAS ,用来走编译打包发布这一套流程。expo 的文档内容有点多,又要学 react ,又要学 RN ,还要学 expo ,然后深入点就要写一下原生组件。如果这些都不熟悉,使用 AI 协助编程也会遇到很多问题,到时候再一个个补充知识,这样的学习路线感觉会更折磨。

    所以我觉得,个人开发,自底向上比较正规并且路会越走越顺,把基础打牢实了,再用 AI 辅助会很舒服。但如果对一个开发栈了解得少,直接用 AI 来创作,这种自顶向下的开发路线,坑会越来越多。

    对于 op 第一个问题,建议学 swift 。OC 太老了,比如代理模式写起来费劲,新手不适合学这种内容。除非有丰富的 c 语言功底。
    ixixi
        17
    ixixi  
       32 天前   ❤️ 1
    买了 mac mini 要独立开发了吗 ?
    lait123
        18
    lait123  
       32 天前
    如果是国内.可以看看 uniapp.不管是不是屎.现在这种行情世道.这玩意在国内是真的火. 没办法 太方便了 一个开发 n 平台
    joyoyao
        19
    joyoyao  
       32 天前   ❤️ 6
    后端就别学 React Native 了。前端的那一套东西变化快,一大堆东西要学,今天学的东西,明天就过时了。
    flutter 则要学的东西很少,推荐用 flutter ,实在搞不的地方就原生搞。我自己开发过 flutter app 和 react 项目。flutter 一周上手,就是还要懂点原生。react 项目想抄别人的代码都麻烦,因为每个项目 css 写法都不一样,抄过来还要改。
    justdoit123
        20
    justdoit123  
       32 天前
    埋点关注。

    我的实践经验感觉 RN 深入后,不会 Native 就很被动。
    a2956853935
        21
    a2956853935  
       32 天前
    JS 生态才是 rn 最大优势,前端人员直接覆盖,学习成本低,性价比高,对于企业来说,招个前端会 rn 的肯定比只会 flutter 的来的划算
    gujuji
        22
    gujuji  
       32 天前 via iPhone   ❤️ 1
    @neel 已经阳痿了,
    imba97
        23
    imba97  
       32 天前
    用了一年多 Capactior 还不错,多端打包( Electron 桌面端、Android 、iOS )
    通过插件跟原生系统通信,官方提供了大部分基本插件,第三方也有。但其实还是比较少,不过可以自己写插件
    snarkprayer
        24
    snarkprayer  
       32 天前
    RN + expo 比裸写 RN 简单很多
    expo 官方维护的包质量也可以,真遇到复杂的需求,跨平台方案都一样不好做
    xingheng
        25
    xingheng  
       32 天前
    借了楼问一下:你们有多少个人开发者用跨平台框架的同时真的适配了安卓和 iOS 的?有多少人同时会写安卓和 iOS 原生开发的?
    nicholasxuu
        26
    nicholasxuu  
       32 天前
    还有什么选择?
    flutter 的组被 google 开了大半,剩下的人手面对堆积如山的 issue 。
    还有什么?
    jingrui
        27
    jingrui  
       31 天前
    react native + 1
    现在用 expo 框架,还是蛮香的; RN 包管理确实是个问题,毕竟 RN+EXPO 基本半年一个大版本,社区包跟不上也正常。
    xiexiping
        28
    xiexiping  
       31 天前
    反正我接触的移动开发者圈子没什么人用 RN 了,招聘也没什么人提了,除非是用的还是五六年前的招聘文案,当然你要是高兴,可以说你身边都是用 RN 的,那我也没什么话好说
    shui14
        29
    shui14  
       31 天前
    到今天还有人在吹 flutter
    好几年前我说过,flutter 再强,它会变成 rn 的一种实现
    去年 webgpu 一发布就有人移植了 skia 接口,这种生态拿什么打,它名字带一个 web 但是不是只能跑在 web ,dawn 这些是 native 优先
    就现状来说,flutter 还在还有几家,除了嘴硬的,实际 app 稀烂,中小厂是上了车没法换。rn 阵营说它不好,人家也是投资搞原生团队,国内当下降本增笑的大前提,原生开发没前景,另一个各家迭代频率和热更新都是刚需
    如果需要一个 app 凑数,webview 套壳;如果需要各个渠道,第三方那些多端框架;如果要做一个正经 app ,在原生与效率成本间平衡,rn 依然是最优解
    daysv
        30
    daysv  
       31 天前
    一直看好 RN ,不需要太多人力, 只需要把最耗精力的业务渲染层做好复用即可。
    flutter 做到最后不就是做成一个浏览器罢了,谷歌真有那么多人投入维护吗?
    而且就这两家后台的战略投入来看,谷歌更多是玩票
    wanguorui123
        31
    wanguorui123  
       31 天前
    还是用 WebView 套壳吧
    fsq
        32
    fsq  
       31 天前
    Java 才是最好的语言! Python 才是最好的语言!(如何让一群程序员吵起来)
    wh469012917
        33
    wh469012917  
       31 天前   ❤️ 2
    用了好几年 RN ,感觉还是 flutter 更合适吧。移动端的相关组件库 flutter 支持的还是比较好,RN 虽然库很多,但是很多都是不维护了,到最后得自己维护,苦不堪言
    wh469012917
        34
    wh469012917  
       31 天前
    @wh469012917 目前我们自己维护的有:高德地图 SDK 、微信 SDK 、umeng 推送/统计、rn-video-controls ,除非就是你不用国内厂商的服务,不然后期的维护很恶心
    angryfish
        35
    angryfish  
       31 天前   ❤️ 1
    我的建议是不要入坑移动端开发。
    Jaosn
        36
    Jaosn  
       31 天前
    @wh469012917 #33 被你这么一说还是 uni-app weex 更香了,这些都不需要操行 🌚
    wow0o
        37
    wow0o  
       31 天前
    一般都会从内核层面换成自己的方案了。。
    FreshOldMan
        38
    FreshOldMan  
       31 天前
    expo 维护的还行啊
    springz
        39
    springz  
       31 天前
    Flutter 不太行了,Google 裁员新闻看看。
    springz
        40
    springz  
       31 天前
    Swift 吧,oc 现在都块被列入即将淘汰了。
    DIMOJANG
        41
    DIMOJANG  
       31 天前
    windows 11 的开始菜单就是 RN 吧
    szdev
        42
    szdev  
       31 天前
    虽然跨平台很火,但是个人感觉趋势还是得 swiftui swift, swiftui 打出来的包真的小的可怜,资源少的 app 基本都在 10m 以下
    ltq918
        43
    ltq918  
       31 天前 via Android
    Flutter 更新还可以啊,很多第三方插件更新也很频繁,Android15 、iOS18 和 Xcode16 相关问题处理也很及时,如果第三方插件没有处理,解决方案也很容易找到
    googxh
        44
    googxh  
       31 天前
    我们 app,pad 的 Android/iOS 双端都是用的 RN 开发的,原生库的维护确实是个问题,不过原生基本上也不会动
    SaiyZhao
        45
    SaiyZhao  
       31 天前
    flutter rn 都在用,并没有什么问题,该有的功能都能实现
    meteor957
        46
    meteor957  
       31 天前 via Android
    RN 1.0 遥遥无期,expo 还得再套一层。
    yuxian
        47
    yuxian  
       31 天前   ❤️ 1
    RN 和 Flutter ,我都深入学习过,并开发过实际的产品。相比之下,个人更喜欢 RN ,主要是 Dart 的语法,实在难以忍受,每次开发 Flutter 都捏着鼻子进行下去,为了避免层级太深了,需要不断不断的去抽离新组件。
    RN 是基于 TS ,完全没有这个问题。配合前后端的都用 TS ,毫无违和感。关于开源社区的组件问题,其实一直都在迭代,那些许久没有更新的,一般都可以找到代替品。如果一定要用,配合现在的 cursor ,fork 下来魔改也毫无压力。线上的产品实践下来,还有个特别点是,喜欢 RN 的热更新,这个只有发布过产品的人才能理解其重要性。flutter 虽然有,但难度太大,改动的内容也太多。
    但我要推荐的是,题主想要自由开发的话,还是优先选择一个好的产品方向。那种技术都影响不大。如果是单纯的学习,那就更无所谓了。两个都看看吧。选择喜欢的
    FreeGuy
        48
    FreeGuy  
       31 天前
    我就等着 Javascript ahead-of-time 出来再用...
    aolianna
        49
    aolianna  
       31 天前
    swift+swiftUI 嘎嘎快。 不过真需要开发原生组件吗?
    qq2511296
        50
    qq2511296  
       31 天前
    不是 web js 开发者 选择 Flutter 会好很多,原生当然是 Swift 了 OC 不用去学了
    如果之前是 web 开发者 选择 RN 会好

    说实话 Flutter 选择 dart 这个语言很失败,又重新造轮子,选 kt 或者 Swift 或者 js 感觉都比 dart 好
    tairan2006
        51
    tairan2006  
       31 天前
    Java 后端,那肯定是学 compose multiplatform 了
    SingeeKing
        52
    SingeeKing  
       31 天前
    @MRG0 因为根本不需要第三方组件?直接用原生的就好 https://docs.expo.dev/versions/latest/sdk/date-time-picker/
    keppelfei
        53
    keppelfei  
       31 天前
    别信那些瞎勾 8 胡诌的人断言,你直接看招聘信息,哪个岗位多你就学哪个,那些全凭个人喜好发言的可以忽略
    dnL
        54
    dnL  
       31 天前
    又到前端无脑黑 Flutter 环节,多大仇
    shilianmlxg
        55
    shilianmlxg  
       31 天前
    @xiexiping #1 expo 起来了,flutter 架构部都裁员了,哥哥。
    rocmax
        56
    rocmax  
       31 天前 via Android   ❤️ 2
    flutter 爱好者总是自我感觉良好,你问他有啥优秀 app 是 flutter 开发的,一个都举不出来。
    rocmax
        57
    rocmax  
       31 天前 via Android
    kotlin multiplatform 或许是一个新秀,java 也好转
    laogui
        58
    laogui  
       31 天前 via Android
    还是 RN 靠谱,等着 flutter 被废弃的那一天。google 自己的主要 App 都不用,只有 google one ,google 统计这些 App 在用。相反,Facebook ,Instagram 都在用 RN 。RN 这几年变化挺大,嫌弃 RN 组件库不更新那是你没用 flutter ,很多库只有第一版,生态还是差很多。
    djs
        59
    djs  
       31 天前
    最近 shopify 转移到 rn 了
    DeWjjj
        60
    DeWjjj  
       31 天前 via Android
    vue 党已投敌 react 。
    rn 很好。
    likai
        61
    likai  
       31 天前 via Android
    我选 rauri.想 vue 就 vue,想 rn 就 rn.
    likai
        62
    likai  
       31 天前 via Android
    @likai tauri
    l4ever
        63
    l4ever  
       31 天前   ❤️ 3
    你发到 react 分区, 当然大家都支持 rn
    你试试发到 flutter 分区看看,

    rn 太卡了
    MRG0
        64
    MRG0  
       31 天前
    @SingeeKing #52 还真是
    xiexiping
        65
    xiexiping  
       31 天前
    @shilianmlxg 你那意思谷歌裁个员我还得用回百度呗
    wizChen
        66
    wizChen  
       31 天前
    可以参考一下大公司的使用率吧,毕竟如果有坑都会被填,资料也多一点,小众赛道花时间在踩坑上很容易打断开发节奏和灵感
    Helsing
        67
    Helsing  
       31 天前 via iPhone   ❤️ 2
    别的不说,据我了解,鸿蒙版微信用了 Flutter ,小米车机用了 Flutter ,钱迹是用 Flutter 开发的,LocalSend 也是用 Flutter 开发的,并不是某些人说的没有优秀 app 用 Flutter
    duanxianze
        68
    duanxianze  
       31 天前
    半斤八两吧,不过移动端开发很难再有大的突破了,不维护貌似也不是很影响
    molika
        69
    molika  
       31 天前
    无脑上了 flutter app 已经发布很久了
    inoridream
        70
    inoridream  
       31 天前
    不大的项目上 react 加 typescript 纯粹是恶心自己,我选 uniapp
    jamev5
        71
    jamev5  
       31 天前
    就我使用经验来说最主要的是写出来的页面在 iOS 和 Android 上不一样,为了兼容还要额外做一些工作,甚至可以说是不胜其烦。不知道现在好点没,但是 Flutter 不存在这个问题。
    liqingyou2093
        72
    liqingyou2093  
       31 天前
    持续关注,大佬们如果自己独立开发,选哪个比较好
    rocmax
        73
    rocmax  
       31 天前
    @Helsing 鸿蒙微信和小米车机需要跨平台吗?用 flutter 的意义在哪里?再说前一个还没影的事,后一个靠 Unity 渲染 3D 效果,flutter 就拿来做个菜单。再后面俩 app 听都没听说过,这些没啥说服力啊。
    不过稍有进步,没有拎 flutter 之耻咸鱼出来了。
    mowen1992
        74
    mowen1992  
       31 天前
    @inoridream 最近在用 uniapp 做音乐播放软件,讲道理,uniapp 属实太卡,然后换 uniappx ,确实流畅很多,但基础功能没实现了,想做一个耳机控制上一曲下一曲播放暂停的功能,插件市场没插件,ai 编程没安卓基础开发起来确实一头雾水。。。
    rocmax
        75
    rocmax  
       31 天前
    @jamev5 没办法,这是 rn 和 flutter 根本分歧。rn 调原生组件,原生组件本来就不一致。
    mistsobscure
        76
    mistsobscure  
       31 天前
    传奇开源项目 bluesky social 全盘使用 expo(rn)作为主技术栈
    PTLin
        77
    PTLin  
       31 天前
    @likai tauri 开发移动现在还是算了把。
    我有个 rust 写的小程序想跑在安卓上,我第一个想到的就是 tauri v2 ,折腾了半天发现连权限请求和文件选取的插件都没有,最后还是用的 flutter ,纯展示类的还能凑合用用,剩下的现在还是算了吧。
    rocmax
        79
    rocmax  
       31 天前 via Android   ❤️ 3
    @debuggerx app 在哪呢?
    比 showcase 是把 https://reactnative.dev/showcase
    faimin
        80
    faimin  
       31 天前
    大厂偏爱 RN ,小厂偏爱 flutter
    shixinzhang2016
        81
    shixinzhang2016  
       31 天前
    @nevergotit 鸿蒙 RN 适配起来很简单的,只需要在以前 Android iOS 特殊处理的地方加上鸿蒙的判断就行了,大部分组件和接口鸿蒙都支持
    shixinzhang2016
        82
    shixinzhang2016  
       31 天前
    @debuggerx 字节之前有个 Flutter 架构组,几十人,现在基本都解散了
    laogui
        83
    laogui  
       31 天前 via Android
    托 RN 的福,这次鸿蒙 next 上 RN 功能无缝迁移,鸿蒙 next 这次对 RN 的兼容超出了我的预期。
    Helsing
        84
    Helsing  
       31 天前 via iPhone
    @rocmax #73

    你这脑回路也是神奇

    1. 正是因为跨平台所以鸿蒙微信才用 Flutter ,而不是反过来

    2. 小米车机用 Flutter != 小米车机桌面用 Flutter ,小米车机还有很多其他 app ,例如小米商城、米家

    3. 没举例你说没有,举了例子你说没听说过,你没听说过不代表人家不优秀
    FleetingSound
        86
    FleetingSound  
       30 天前
    Expo
    gray19950103
        87
    gray19950103  
       30 天前
    比起 showcase 来了,说真的 flutter 做的 mybmw 真的很难用
    inoridream
        88
    inoridream  
       30 天前
    @mowen1992 这玩意得熟悉 Android 的 api 了
    MRG0
        89
    MRG0  
       30 天前
    @FleetingSound #85 不过这个非常的“原生”,有更现代化的那种吗
    daysv
        90
    daysv  
       30 天前
    @Helsing 我至今觉得鸿蒙用 flutter ,IOS 和安卓不用就很奇怪,如果都不切换的话就是 KPI 项目了
    Jinyang7
        91
    Jinyang7  
       30 天前
    我知道的大厂和待过的就没有不用 rn 的
    murmur
        92
    murmur  
       30 天前
    RN 弃坑了,回归 capacitor(cordova/phonegap)的怀抱了,这 nm rn 的样式真就是 native ,ios 和安卓俩属性
    murmur
        93
    murmur  
       30 天前
    我们本来也想用 rn ,顺便迁鸿蒙,但是我们 h5 部分太重了,接近四五十个大模块,重新写适配层的话 rn 那套新插件语法折腾死人
    maxmax4max
        94
    maxmax4max  
       30 天前   ❤️ 1
    flutter 适合原生上手,rn 适合前端上手。rn 部分组件双端效果有差异,flutter 一致性高; rn 热更方案更加成熟,flutter 上限更高做出来的产品可以很丝滑和原生差别不大。市面上主流 APP 使用率对半吧。
    zoharSoul
        95
    zoharSoul  
       30 天前
    @neel #2 起来了
    zoharSoul
        96
    zoharSoul  
       30 天前
    @daysv #30 我一直没搞懂 rn 是怎么映射到原生动画的
    组件映射我能理解..
    GeekGao
        97
    GeekGao  
       30 天前
    你去找平台搜一下,看看用哪种技术的岗位更多。 岗位多意味着从业者会多起来,也意味着你的项目成本更低 或 工作机会更多
    wh469012917
        98
    wh469012917  
       30 天前
    @laogui RN 项目迁移鸿蒙,要把用到的第三方库都切换到支持鸿蒙的吗
    meteor957
        99
    meteor957  
       30 天前 via Android
    @laogui 是不是因为鸿蒙对 js 生态支持的好
    easynote
        100
    easynote  
       29 天前
    @meteor957 是因为大厂都在用 RN 。鸿蒙 Next 需要这些头部 App 的支持,给他们的诉求就是得出个鸿蒙的 RN 。
    很多都在驻场来帮忙解决问题的,前期也是一堆问题。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4495 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 05:35 · PVG 13:35 · LAX 21:35 · JFK 00:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.