V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Asuler
V2EX  ›  程序员

求问 2025 年技术栈选择, RN 还是 flutter

  •  2
     
  •   Asuler · 1 天前 · 2980 次点击
    我是一个 6 年前端开发,熟悉 react 相关技术栈,也会 nodejs 这一块

    现在想要学习 app 开发,我的想法如下

    1. 我是出于个人兴趣爱好而学,想要做个自己的 app ,打算花个一年左右用空闲时间慢慢做

    2. 我认为应该学习 flutter ,这样 ios 和安卓 UI 层是不是能统一不用额外处理? 但是现在国内公司好像都是以 RN 为主?

    3. 如果我学习 RN 的话,我得处理一堆及其恶心的兼容问题吧,但是不选 RN 的话会少了很多工作机会?现在的前端市场行情好像很差,要求也越来越高

    4. 目前两个对比下来,性能问题应该都不用担心了。我主要不想处理兼容问题,但又不想缺失职业竞争力,这两个想法是不是看着很矛盾?

    5. 我曾经尝试跑过 github 上的 RN 的一些项目,一跑就报错,完全跑不起来,相比之下 flutter 项目好像一下子就跑起来了,项目搭建也简单

    求问 2025 年了我该怎么选择,感激不尽
    45 条回复    2025-05-02 01:42:26 +08:00
    jamesjammy061
        1
    jamesjammy061  
       1 天前
    感觉都挺恶心,准备写三套代码。用 Capacitor by Ionic 好点
    murmur
        2
    murmur  
       1 天前   ❤️ 1
    如果是外包项目,无脑 uniapp ,别管为什么,想雕花可以学 flutter ,这玩意做个待办,记账,是挺好的,就是没啥用
    nuonuojump
        3
    nuonuojump  
       1 天前
    现在好像无脑 uni ,会 vue 就能干。我之前搞过 flutter ,感觉写起来也很恶心。rn 没搞过,问过搞过的 也是恶心的不行。主要现在 ios 少了,跨端还不如做学学 android 原生了。
    roundgis
        4
    roundgis  
       1 天前 via Android
    如果要大量使用原生接口

    不如用原生+webview

    如果是隨便寫來玩那就 rn 吧
    lifeaslingex
        5
    lifeaslingex  
       1 天前
    我也是前端 react 技术栈,我个人偏向用 RN (自身写习惯 React 了考虑到时间成本),建议不要陷入"我该学习什么技术",能解决问题的技术就是好技术
    hwdq0012
        6
    hwdq0012  
       1 天前
    79 官方在 jsx 中直接调 c++了, 作为一个 qml + c++写桌面,嵌入式 mvvm 的人, 我很想把我的 c++反射用到 rn 上玩一玩
    angrylid
        7
    angrylid  
       1 天前
    “生产力”和“图一乐”才是你最大的矛盾。

    如果你是在国内混饭吃,其实最好就业的跨端技术应该是小程序,最近两年可能所谓鸿蒙开发能开出一些岗位,另外就是听说一些车机开始上 Flutter 。

    反之你要是出于什么兴趣爱好,就不要执着于跨端了。用苹果手机就学 SwiftUI 反之 Jetpack Compose ,反正你又不想处理平台兼容性问题。
    musi
        8
    musi  
       1 天前 via iPhone
    1 自己项目做着玩那就无所谓
    2 flutter 走的是自绘引擎,你可以理解为所有组件都是在 canvas 上画出来的,所以所有平台上都长一个样,RN 走的是转译,就是将 react 语法转成对应平台的原生组件,所以每个平台都是自己的样子
    3 不管是 flutter 还是 rn 你只要涉及到对应平台的 api 都会有一定问题,跨平台没有银弹
    4 这俩其实都不太能增加职业竞争力,现在 AI 这么强了,写一些通用的业务逻辑问题不大
    5 RN 生态比 flutter 多的多,但是质量不好说,没准用的一个包啥时候就不维护了,flutter 稍微好一点
    mogutouer
        9
    mogutouer  
       1 天前
    AI 最熟悉哪个就用哪个
    Jafee
        10
    Jafee  
       1 天前
    好像没人提到 KMP ,借楼问下 2025 有人用 KMP 吗?
    laogui
        11
    laogui  
       1 天前 via Android
    AI 时代,RN 又胜一筹
    kid1412621
        12
    kid1412621  
       1 天前 via iPhone
    rn 现在不是流行 expo 吗?不过有 youtuber 拔 meta 自己的 app ,也没几个是完全用 rn 的
    myoula
        13
    myoula  
       1 天前 via Android
    我用 rn 和 flutter 都做过项目,rn 写 ui 比 flutter 更舒服一点,flutter 的嵌套过于让人眼花缭乱了,但是如果要接入第三方库 flutter 更好一点,rn 很多第三方库都停止更新了,比如微信 qq 登录这些,我都自己 fork 了好几个去适配官方最新的 sdk ,国内很多平台的 sdk 在 flutter 上明显支持比 rn 好很多。
    AItsuki
        14
    AItsuki  
       23 小时 5 分钟前
    长话短说:都学一遍就对了,rn 和 flutter 都很简单。

    rn 和 flutter 我都用,相对来说 flutter 遇到的疑难杂症要少一些,项目配置更简单一些,并且不需要依赖太多额外的第三方库。flutter 本质上是个 “游戏引擎”,编译出来的 ios 和 android 的 ui 组件高度一致。

    rn 的优势是除了前端生态以外,还有一个很重要优势是成熟的热补丁方案,而 flutter 的热补丁才起来没多久。

    ps:rn 确实有你说的一堆恶心的兼容问题,甚至离谱到无法用 windows 编译。比如 rn 现在最热门的 expo 框架并不完全兼容 windows 开发环境,写原生插件要用 linux 或 mac 。
    sn0wdr1am
        15
    sn0wdr1am  
       21 小时 28 分钟前
    都学,都用。
    哪个合适用哪个。

    小马过河,自己试试。
    crackidz
        16
    crackidz  
       20 小时 55 分钟前
    技术选型的问题都不如跑个 DeepResearch ,人容易有刻板偏见,本质输出的是个人爱好
    jaydenhu8077
        17
    jaydenhu8077  
       20 小时 26 分钟前
    @AItsuki 我最近也在写 flutter ,你说的这个 flutter 的热补丁现在有啥方案能实现
    iv8d
        18
    iv8d  
       20 小时 24 分钟前 via Android
    问来问去的,多大人了自己写个小 demo 对比一下心中有数
    justsoup
        19
    justsoup  
       19 小时 13 分钟前
    https://tech.meituan.com/2019/12/19/meituan-mrn-practice.html
    看下这篇文章,里面有清楚描述 RN 的能力范围

    重点:RN 适合中低频交互页面,Flutter 适合高频交互

    Flutter 自绘 UI 是优势(特别是完成图表功能),但是还是免不了要对接原生模块

    如果想做到生产级别的,RN 需要掌握技术栈:RN ( Javascript )+Kotlin+Objective-C (为什么是 Objective-C ,因为 App 要兼容旧机型,Objective-C 是更好的选择),这个也是我目前的技术栈

    Flutter 的话,可以少了 Kotlin ,需要掌握的技术栈:Flutter ( Dart )+Objective-C

    RN 目前 122K star ,Flutter 目前 170K star ,看好 Flutter 的人数更多
    Lockroach
        20
    Lockroach  
       18 小时 42 分钟前
    你熟悉 react 就用 rn ,不熟悉就直接用 ft
    cheman
        21
    cheman  
       18 小时 23 分钟前
    flutter 写起来会简洁舒适
    chiaf
        22
    chiaf  
       18 小时 12 分钟前
    如果自己玩就用原生,iOS 就 swiftUI ,android 就 JC (其实还得看看 UIKit 和传统 android 的东西),但是 android 现在不管国内国外,上架是个麻烦的事。

    目前看招聘市场,flutter 好像比 RN 多一点。经常看到要 flutter 的,RN 的招聘看到的不多,当然也许跟城市有关系。
    okakuyang
        23
    okakuyang  
       17 小时 46 分钟前
    两个都半斤八两,现在 Compose 也可以编译成 iOS App ,swiftUI 也可以编译成安卓 App ,没什么界限。
    cabudon
        24
    cabudon  
       17 小时 40 分钟前
    @nuonuojump 如果是个人开发的工具呢? python 的 flet 怎么样?现在也支持自定义 ui 了
    nuonuojump
        25
    nuonuojump  
       16 小时 37 分钟前
    @cabudon 个人玩 还是玩 flutter 吧 虽然嵌套的恶心,还需你去学点 android 端的 java /kotlin ios 的 oc/swift 。我现在是等 compose 跨端了
    tootfsg
        26
    tootfsg  
       16 小时 24 分钟前 via Android
    flutter 对 非 ui 前端相关 程序员很友好,默认 material ui 组件足够舒适了,自己主要做结构设计和组件组合。

    嵌套写多了也就无感了。dart 也简单高效,几乎不需要学,看一半天文档之类的就能开发 app 了。
    cabudon
        27
    cabudon  
       15 小时 59 分钟前
    @nuonuojump flet 就是 python 语言上的 flutter ,不过还是早点上船 dart 的 flutter 吧
    nuonuojump
        28
    nuonuojump  
       15 小时 33 分钟前
    @cabudon #27 没用过,我那会是用来跨 ios 和 android 的 ,dart 写的我龇牙咧嘴。
    fox0001
        29
    fox0001  
       15 小时 1 分钟前 via Android
    用过 Flutter 开发项目,配合 provider 之类的框架,挺好用
    magic3584
        30
    magic3584  
       13 小时 50 分钟前
    语言和框架,用过 OC & Swift & SwfitUI ,RN ,flutter ,java & kotlin & jecpack compose 。
    只要跨端,总避免不了处理兼容问题以及编写原生的桥接代码,升级的时候会影响很多库一起升。
    RN 对比 flutter 多了个热更,其它的感觉没差
    bboring
        31
    bboring  
       13 小时 36 分钟前
    年初我也在纠结,现在用 RN 开发的 APP 已经快到尾声了~
    duanxianze
        32
    duanxianze  
       13 小时 15 分钟前
    无脑 Uniapp ,也就是类似把小程序功能独立出来打包,比如阿里的 mpass ,微信的多端应用
    MRlaopeng
        33
    MRlaopeng  
       12 小时 36 分钟前
    @bboring 为什么不 flutter
    murmurkerman
        34
    murmurkerman  
       11 小时 51 分钟前 via iPhone
    兼容性问题都有的,只要你要处理原生特性,比如相机,分享,存储,录音,多多少少要写平台特性代码。

    两个社区都很大,现在很多公司使用 flutter 写鸿蒙应用,妄图三端复用,但是鸿蒙的 flutter 是一个残废的 flutter ,华为的维护程度远低于官方社区,鸿蒙会拖累其他端。

    你可以两个都试试,flutter 不是特别难,一个星期足以入门。写一些自己的想法,验证下。
    skiy
        35
    skiy  
       11 小时 18 分钟前
    @murmurkerman 华为压根没搞 flutter ,他们在搞 Cangjie 。那个 flutter 是第三方兴趣组搞的。
    roundgis
        36
    roundgis  
       11 小时 16 分钟前 via Android
    @nuonuojump compose ios 現在是 beta 還是 alpha ? 遙遙無期的感覺
    momoguo
        37
    momoguo  
       10 小时 57 分钟前 via Android
    rn 万一找工作用得上呢 又不耽误做 app
    nuonuojump
        38
    nuonuojump  
       9 小时 57 分钟前
    @roundgis #36 我看好像进度到 beta 了
    nuonuojump
        39
    nuonuojump  
       9 小时 54 分钟前
    @roundgis #36 腾讯开源了 Kuikly ,但是我怕是个 kpi 的玩具..
    roundgis
        40
    roundgis  
       9 小时 4 分钟前 via Android
    @nuonuojump 乐观一点 今年第四季度有机会 GA
    nuonuojump
        41
    nuonuojump  
       9 小时 1 分钟前
    @roundgis #40 期待吧,哈哈哈,反正我对 compose 还是好感度较高的。现在能先跨了 IOS 就行。后期别的慢慢跨。
    jlkm2010
        42
    jlkm2010  
       8 小时 56 分钟前
    别犹豫,直接选 RN
    AvilCore
        43
    AvilCore  
       6 小时 13 分钟前 via Android
    会 react 的不用考虑 flutter ,反之就上,不要学太多框架增加心智负担

    其他跨端 (如字节的 lynx )要造一堆轮子。都跨端了还造轮子不如直接原生

    rn 越来越像一个黑箱。为了讨好 webdev expo 的 wrapper 一层接着一层,逼着你用他们的工作流

    新架构搞坏一大坨三方库不说,ui 性能比 flutter 还差一截;竟然还有人吹 rn 能接 jsi 直接跑 c 所以快的, 我他妈要是会 c 我还写个只因 rn

    rn 用 win 编译倒是 ok ,只是某些库的 package. json 脚本 用的 unix bash 。看起来编译不上,实际上 yarn 那一步就不行

    但是 rn 是高贵的 js ,门槛低啊
    slert
        44
    slert  
       4 小时 24 分钟前
    在 ai 辅助下都没有门槛 完全可以两个都去熟悉一下 何必二选一 然后感觉喜欢哪个就用哪个继续开发
    9ki
        45
    9ki  
       4 小时 14 分钟前
    RN ( expo )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:56 · PVG 05:56 · LAX 14:56 · JFK 17:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.