我是一个 6 年前端开发,熟悉 react 相关技术栈,也会 nodejs 这一块

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

  1. 我是出于个人兴趣爱好而学,想要做个自己的 app ,打算花个一年左右用空闲时间慢慢做
  2. 我认为应该学习 flutter ,这样 ios 和安卓 UI 层是不是能统一不用额外处理? 但是现在国内公司好像都是以 RN 为主?
  3. 如果我学习 RN 的话,我得处理一堆及其恶心的兼容问题吧,但是不选 RN 的话会少了很多工作机会?现在的前端市场行情好像很差,要求也越来越高
  4. 目前两个对比下来,性能问题应该都不用担心了。我主要不想处理兼容问题,但又不想缺失职业竞争力,这两个想法是不是看着很矛盾?
  5. 我曾经尝试跑过 github 上的 RN 的一些项目,一跑就报错,完全跑不起来,相比之下 flutter 项目好像一下子就跑起来了,项目搭建也简单

求问 2025 年了我该怎么选择,感激不尽

感觉都挺恶心,准备写三套代码。用 Capacitor by Ionic 好点

如果是外包项目,无脑 uniapp ,别管为什么,想雕花可以学 flutter ,这玩意做个待办,记账,是挺好的,就是没啥用

现在好像无脑 uni ,会 vue 就能干。我之前搞过 flutter ,感觉写起来也很恶心。rn 没搞过,问过搞过的 也是恶心的不行。主要现在 ios 少了,跨端还不如做学学 android 原生了。

如果要大量使用原生接口

不如用原生+webview

如果是隨便寫來玩那就 rn 吧

我也是前端 react 技术栈,我个人偏向用 RN (自身写习惯 React 了考虑到时间成本),建议不要陷入"我该学习什么技术",能解决问题的技术就是好技术

79 官方在 jsx 中直接调 c++了, 作为一个 qml + c++写桌面,嵌入式 mvvm 的人, 我很想把我的 c++反射用到 rn 上玩一玩

“生产力”和“图一乐”才是你最大的矛盾。

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

反之你要是出于什么兴趣爱好,就不要执着于跨端了。用苹果手机就学 SwiftUI 反之 Jetpack Compose ,反正你又不想处理平台兼容性问题。

1 自己项目做着玩那就无所谓
2 flutter 走的是自绘引擎,你可以理解为所有组件都是在 canvas 上画出来的,所以所有平台上都长一个样,RN 走的是转译,就是将 react 语法转成对应平台的原生组件,所以每个平台都是自己的样子
3 不管是 flutter 还是 rn 你只要涉及到对应平台的 api 都会有一定问题,跨平台没有银弹
4 这俩其实都不太能增加职业竞争力,现在 AI 这么强了,写一些通用的业务逻辑问题不大
5 RN 生态比 flutter 多的多,但是质量不好说,没准用的一个包啥时候就不维护了,flutter 稍微好一点

AI 最熟悉哪个就用哪个

好像没人提到 KMP ,借楼问下 2025 有人用 KMP 吗?

AI 时代,RN 又胜一筹

rn 现在不是流行 expo 吗?不过有 youtuber 拔 meta 自己的 app ,也没几个是完全用 rn 的

我用 rn 和 flutter 都做过项目,rn 写 ui 比 flutter 更舒服一点,flutter 的嵌套过于让人眼花缭乱了,但是如果要接入第三方库 flutter 更好一点,rn 很多第三方库都停止更新了,比如微信 qq 登录这些,我都自己 fork 了好几个去适配官方最新的 sdk ,国内很多平台的 sdk 在 flutter 上明显支持比 rn 好很多。

长话短说:都学一遍就对了,rn 和 flutter 都很简单。

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

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

ps:rn 确实有你说的一堆恶心的兼容问题,甚至离谱到无法用 windows 编译。比如 rn 现在最热门的 expo 框架并不完全兼容 windows 开发环境,写原生插件要用 linux 或 mac 。

都学,都用。
哪个合适用哪个。

小马过河,自己试试。

技术选型的问题都不如跑个 DeepResearch ,人容易有刻板偏见,本质输出的是个人爱好

我最近也在写 flutter ,你说的这个 flutter 的热补丁现在有啥方案能实现

问来问去的,多大人了自己写个小 demo 对比一下心中有数

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 的人数更多

你熟悉 react 就用 rn ,不熟悉就直接用 ft

flutter 写起来会简洁舒适

如果自己玩就用原生,iOS 就 swiftUI ,android 就 JC (其实还得看看 UIKit 和传统 android 的东西),但是 android 现在不管国内国外,上架是个麻烦的事。

目前看招聘市场,flutter 好像比 RN 多一点。经常看到要 flutter 的,RN 的招聘看到的不多,当然也许跟城市有关系。