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

react native 还有前途嘛

  •  
  •   luffy · 2022-06-10 09:17:27 +08:00 · 10632 次点击
    这是一个创建于 931 天前的主题,其中的信息可能已经有所发展或是发生改变。

    flutter 最近一直很火啊。

    React native 还有什么优势嘛?

    第 1 条附言  ·  2022-06-10 11:36:46 +08:00
    react native 跟 flutter 的关系, 会不会像是 atom 跟 vscode 的关系那样?
    47 条回复    2022-06-16 17:34:51 +08:00
    bojy360
        1
    bojy360  
       2022-06-10 09:25:34 +08:00
    没什么很大的必要。还是用原生吧。用哪个都有维护成本。
    pengtdyd
        2
    pengtdyd  
       2022-06-10 09:25:50 +08:00
    flutter 最近很火???依稀记得 4 年前招聘前端 flutter 就已经是一些公司的必会项了。
    murmur
        3
    murmur  
       2022-06-10 09:28:36 +08:00   ❤️ 1
    flutter 火,国内用的多的也是小程序啊,而且现在还有新 app 的需求么,现在是减量年代了
    dcsuibian
        4
    dcsuibian  
       2022-06-10 09:35:46 +08:00
    最新版本号是 0.68.2 ,还没出正式版。感觉已经不用说了。

    这俩我都没怎么接触过,但从原理上来说,我感觉 RN 是 Java 的 AWT ,而 Flutter 是 Swing 。
    DingJZ
        5
    DingJZ  
       2022-06-10 09:36:01 +08:00
    当然有前途,存量放在那,各厂的上一代 app 大部分都是 rn 的,面向内部的,面向 B 端的,生态都很完善。来个新人一天就上手,没有放弃的理由。
    dudubaba
        6
    dudubaba  
       2022-06-10 09:41:53 +08:00
    还是很看好的,这没多年还是更新着不容易
    meteor957
        7
    meteor957  
       2022-06-10 09:48:40 +08:00   ❤️ 2
    flutter 4 年前 必会??
    johnwood
        8
    johnwood  
       2022-06-10 09:52:45 +08:00 via iPhone
    RN 可以用 React 和 js 生态,另外 rn 的 web 方案更成熟
    9ki
        9
    9ki  
       2022-06-10 10:08:10 +08:00   ❤️ 8
    Flutter 和 React Native 都写过, Flutter 写过一个几十个页面的 App, RN 写过八九个 App.

    结论就是有前途, 这两年加密货币相关生态很火, 可以看看 github 有多少初创(欧美)公司选择 RN 有多少选择 Flutter.

    至于楼上的版本号问题, 还有什么我用都没用过但我就是要评价的人, 这种一看就没同时用过 RN 和 Flutter, 还要好为人师.

    你说 Flutter 一个一个版本, 发了多少个版本了, 它正式过吗, Flutter For Web 十几兆的 Bundle 能用吗? 人家 Web 也是可以说的, 我平时开屏 3M 体积都要被领导吊, 你这十几兆的 Bundle 也好意思说是正式版(狗头).

    不玩梗了, Flutter 产出的 app 确实性能很强, 包体积很小(相对 RN), 但是开发体验确实糟心, 相当于你写习惯了 Kotlin 去写 Jav.
    Y29tL2gwd2Fy
        10
    Y29tL2gwd2Fy  
       2022-06-10 10:39:34 +08:00 via Android
    咸鱼 app 不也是 flutter 做的
    无论 flutter 上游怎么优化,做出来的东西还是代谢产物
    jielong
        11
    jielong  
       2022-06-10 10:59:08 +08:00   ❤️ 1
    建议 twitter 上多 follow 几位开发者,开源的框架只要有热情的开发者参与都不会太糟糕。推荐之前用 rn 时一直在看的 YouTube @wcandillon ,对各种 UI 动效挑战都很有热情,最近在推 react-native-skia 感觉也很棒。
    zhuangzhuang1988
        12
    zhuangzhuang1988  
       2022-06-10 11:03:19 +08:00
    没.
    ChrisFreeMan
        13
    ChrisFreeMan  
       2022-06-10 11:04:55 +08:00
    那我顺便问一下微软 fork 的 react-native-macOS 怎么样,如果能够 js 搞定一切似乎挺有吸引力的
    mxT52CRuqR6o5
        14
    mxT52CRuqR6o5  
       2022-06-10 11:09:08 +08:00 via Android
    使用 expo 的 Managed workflow 可以只需要 node 环境配合手机,不用装安卓 ios 开发环境就能开发 app ,这点比 flutter 体验好
    darknoll
        15
    darknoll  
       2022-06-10 11:10:47 +08:00
    要不然你都学吧
    ychost
        16
    ychost  
       2022-06-10 11:14:47 +08:00
    巨硬 maui 也 GA 了,还有 谷歌的 Flutter ,
    Pastsong
        17
    Pastsong  
       2022-06-10 11:21:54 +08:00   ❤️ 1
    做简单交互的 app ,两个都可以做,flutter 性能更好。需要原生集成的,rn 生态更全。需要 app 为主,多端 UI 共用的,react-native-web 体验要比 flutter-web 好。
    kangyan
        18
    kangyan  
       2022-06-10 11:29:57 +08:00
    rn 新架构实装了,性能和 flutter 拉不开了
    seth19960929
        19
    seth19960929  
       2022-06-10 11:44:15 +08:00
    react-native 和 flutter 都用过. 现在用 flutter,
    说实话用 react-native 有点难受, 过段时间不写了编译给你报错. 很多库没 flutter 完善.
    如果你会原生的话当我上面没说. 如果不会我建议 flutter 更好一点.
    simonh8
        20
    simonh8  
       2022-06-10 12:00:10 +08:00
    前端🐶都不做,全是🌶️
    nwu2Cv8OZ2MZMg39
        21
    nwu2Cv8OZ2MZMg39  
       2022-06-10 12:06:24 +08:00
    觉得会把 flutter 干趴下
    songdezu
        22
    songdezu  
       2022-06-10 13:07:38 +08:00 via iPhone
    flutter 吹的火,正在干活的人用什么你就知道了
    ericgui
        23
    ericgui  
       2022-06-10 13:22:28 +08:00
    @kangyan react-native on windows 用过没?效果咋样?
    shiganwuguo
        24
    shiganwuguo  
       2022-06-10 13:32:54 +08:00
    必须有啊 能用 js 做的都会用 js

    什么 java flutter maui 都是垃圾

    js 做界面有天生的优势和巨量的社区和库 这是不容置疑的
    ysc3839
        25
    ysc3839  
       2022-06-10 13:37:44 +08:00 via Android
    事先声明,我没搞过移动端开发,主要是在搞 Windows 开发。Flutter 仅仅是简单了解过一些资料。自己尝试用过 React Native for Windows 。

    就我个人理解,Flutter 是自己实现了个界面库,内容都是自己渲染的,好处是很容易跨平台,对系统没什么要求(比如可以支持 Win7),坏处可能是会增大体积(我不确定移动端情况如何,楼上有人提到包体积很小,但是从经验上看这种自己渲染的都会增大体积),以及没法使用平台原生的主题风格。
    React Native 则是把平台提供的界面库封装了一层,坏处是对系统有要求,比如 React Native for Windows 使用的是 WinUI ,需要 Win10 才能用。
    yaocai321
        26
    yaocai321  
       2022-06-10 13:37:56 +08:00
    楼上好大的口气~
    kangyan
        27
    kangyan  
       2022-06-10 14:21:33 +08:00
    @ericgui 不靠谱, 桌面端推荐用 electron ,需要体积小推荐 tauri
    kytrun
        28
    kytrun  
       2022-06-10 14:28:25 +08:00
    React Native 的优势,个人见解,不一定对:

    1. 编码形式源于 Web ,从目前来看 Web 技术应该是会走的比较长远、广泛的,不必担心学完过几年没用了;
    2. “声明式 UI”的先驱,影响了很多后来的 UI 编写模式;
    3. 即使目前的实现方式被淘汰,但底层渲染引擎、通信逻辑等更换对上层应用构建影响较少;

    既然要学那就倾向于学更通用、可持续的,React 暂时淘汰不了,如果 React Native 0.X 死了,或许不久后的某一天又秽土转生了。

    现在的 Flutter 、Swift UI 、Compose ……都趋同地在对旧的 UI 编码形式进行革新,不知道下个造成思维方式转变的改革在什么时候,真到那一天,今天这些界面技术也都差不多该淘汰了
    ckfear
        29
    ckfear  
       2022-06-10 15:11:09 +08:00   ❤️ 1
    react-native 平台 ui 不一致很烦人。flutter 的生态略差,很多库的水准都很一般,比如 webview_flutter 对比
    react-native-webview ,flutter 的 webview 基本是个半残。最主要的问题还是 flutter 不支持热更新,这个很影响 app 的升级。不过未来来看,flutter 的未来会更好,不过移动开发并不会更好,都被小程序这种干没了。
    MEIyiyi
        30
    MEIyiyi  
       2022-06-10 16:39:05 +08:00
    rn 还算能用,当前前提也得学原生
    nicevar
        31
    nicevar  
       2022-06-10 17:18:56 +08:00
    RN 和 Flutter 都是半斤八两,移动客户端不是电脑客户端,原生才是王道,JS 在移动端都吹了快 20 年了,从塞班时代就开始搞什么 wgt ,到如今手机这么强性能了,还是个边缘打辅助的,移动客户端的特点就是 JS 相关的技术用的越多 APP 就卡。
    IGJacklove
        32
    IGJacklove  
       2022-06-10 18:03:21 +08:00 via iPhone
    优势还是有的,热更新,js 技术栈。不会玩技术不能固步自封,都去了解体验一下,相信你会有更直观的感受
    gogogo1203
        33
    gogogo1203  
       2022-06-10 18:13:24 +08:00
    谁不知道原生是王道, 哪个小团队有精力 web 一套代码,安卓一套代码,ios 一套代码,win 一套代码,mac 再来一套代码. 没等你撸明白各个端,公司都死了. 抛开业务讲性能的公司还获得好吗?
    FaiChou
        34
    FaiChou  
       2022-06-10 22:08:17 +08:00   ❤️ 1
    去 upwork 上找一下兼职, RN 的一大堆, flutter 的远没 RN 的多.
    我正在用 RN 写一个 app, 就是在 upwork 上找的项目.
    nekota
        35
    nekota  
       2022-06-11 02:23:35 +08:00 via iPhone
    玩玩:Flutter
    商业:React Native
    laogui
        36
    laogui  
       2022-06-11 09:00:32 +08:00 via Android
    Flutter 真的是在国内火,和 CentOS 当初在国内火在国外没几个人用一样。
    zoharSoul
        37
    zoharSoul  
       2022-06-11 10:23:29 +08:00
    @murmur #3 你们老是说用小程序, 但是就我观察, 不管大厂还是小公司, 都还是 app 为主啊.
    小程序完全没流量, 而且用完及走的特性也不适合产生用户粘性...

    好奇问下, 这个国内用的多的是小程序是几线城市的特点呢?
    mysunshinedreams
        38
    mysunshinedreams  
       2022-06-12 04:22:59 +08:00
    @zoharSoul 个别小程序还是比较火的,比如电影票,猫眼各渠道的份额,除了美团 app ,其次就是微信小程序了,淘票票大份额均来自支付宝的小程序。
    zoharSoul
        39
    zoharSoul  
       2022-06-12 11:59:56 +08:00
    @mysunshinedreams #38 是的, 我感觉就这种线下扫码打开小程序的还比较合适,
    但是正常的 c 端应用的小程序根本活不起来...还是做传统的 app 靠谱.
    palxie
        40
    palxie  
       2022-06-12 15:39:07 +08:00
    @FaiChou #33 rn 搜索出来很多会是 react 的吧
    murmur
        41
    murmur  
       2022-06-13 07:55:24 +08:00
    @zoharSoul app 为主是因为现在是减量年代,减量业务是老人的天下,跟新人没关系啊,各大厂核心业务都是 native ,b 别人有的是 native 工程师,也没什么要维护的
    toacnme
        42
    toacnme  
       2022-06-13 11:54:42 +08:00   ❤️ 3
    我常活跃于 RN 社区,也为 RN 贡献+开源了不少代码,算有点发言权。
    我们目前做的 web3 社交网络 App-Showtime ,目前的前端架构是 React Native + Next.js, 一套代码构建三端,前几天我们负责人刚在 app.js conf 上开源了我们的 Monorepo ,同事也开源了我们的 design-system ,基本上每个组件都是 Native+Web 的最佳实践,RN 库或者生态都是社区的最前沿。可供参考: https://github.com/showtime-xyz/showtime-frontend

    如果你问前途的话,我的意见是看你在哪发展,如果你只考虑在国内公司发展,那 RN 确实不太火,前途有限,无非以下几点:
    1 、国内客户端人才多,招聘容易,你招个 1 ~ 3 年的,能干活的,价格也不是很高。
    2 、国内 RN 掉队太严重,按我之前在国内公司面试的几个简历上看着还不错的 RN 开发者,不知 Reanimated/GestureHandler/JSI/Fabric 为何物,当你招人或者跑路时,短时间内难以寻找替代者。
    3 、之前 RN 的性能确实有很大问题,所以导致大部分人和帖子、文章等对 RN 认知停留的阶段还是 0.4x ,0.5x 。
    4 、国内本身做 App 公司就不多,大量投入人力财力做 App 无非就那些常见的中大厂,很多公司的需求用小程序就能替代了,而且更便宜更方便快捷,这点相比于国外,刚好相反。
    ...

    但如果你想去国外公司,不想在国内卷,擅长 RN 对你来说是绝对的优势,尤其是币圈、web3 。
    luffy
        43
    luffy  
    OP
       2022-06-14 09:04:22 +08:00
    @toacnme 我喜欢你们这个代码风格 https://github.com/showtime-xyz/showtime-frontend/blob/staging/packages/app/components/footer/links-footer.web.tsx

    import 库时有特意加个空行区分不同类别。
    同时按库的特性,按顺序加载,最基础的 react , 其次是第三方,
    luffy
        44
    luffy  
    OP
       2022-06-14 09:05:59 +08:00
    @toacnme 所以 RN 现在的性能提升很大? 跟原生之间的差距大幅缩小了?
    toacnme
        45
    toacnme  
       2022-06-16 13:44:50 +08:00
    @luffy

    >import 库时有特意加个空行区分不同类别。

    这个也是用格式化插件做的。

    >所以 RN 现在的性能提升很大? 跟原生之间的差距大幅缩小了?
    随着设备性能的提升,架构的改进,差距肯定是越来越小,主要还是看你的业务需求和公司资源情况。
    对我而言,RN 的体验完全 ok 。
    对我目前做的领域来说,做的还不错的有:rainbow.me, metamusk, coinbase, MEW wallet, 都可以下载体验下。
    luffy
        46
    luffy  
    OP
       2022-06-16 16:32:32 +08:00
    @toacnme 贵司招人嘛
    toacnme
        47
    toacnme  
       2022-06-16 17:34:51 +08:00
    @luffy 暂时没有,如果你熟悉 RN+web, 口语良好, 可以留意 rainbow.me 的岗位,他们正在招聘
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 06:23 · PVG 14:23 · LAX 22:23 · JFK 01:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.