React Native快速入门:构建你的第一个APP —— 一个天通苑奶爸的深夜折腾实录

朱伟~
2025-12-15 12:19
阅读 533

作者:两个娃的爹,坐标北京天通苑,月薪从15k摸爬滚打到22k,房租3500(合租次卧),晚上十点后才敢打开电脑


上周五晚上11点23分,我终于把大宝哄睡——小家伙今天发烧,哭闹到九点半,中间还吐了一次,床单换了两回。老婆瘫在沙发上刷短视频,眼神空洞,像被抽干了灵魂。我轻手轻脚关上儿童房门,蹑手蹑脚走到客厅角落那张二手宜家书桌前,打开MacBook Air,风扇嗡的一声,仿佛在替我叹气。

“今晚必须跑通这个React Native Demo。”我对自己说。

这不是中年危机,这是生存焦虑


一、为什么是React Native?而不是Flutter、uni-app,甚至……区块链?

去年十月,我还在一家传统To B软件公司写Java后端,每天和Oracle数据库、WebService、SOAP协议打交道。日子稳定,但工资卡在15k动弹不得。有天HR找我聊:“公司今年不涨薪,明年看情况。”我笑了笑,心里却凉了半截。

回家路上,地铁13号线挤得像沙丁鱼罐头。我刷着脉脉,看到一条帖子:《React Native工程师,22k起,急招》。底下评论区炸了:“RN不是快死了吗?”“现在都搞Flutter了!”“这岗位怕不是外包吧?”

我点进去看了JD,要求不高:熟悉Javascript,有移动端经验优先。最关键的是——接受转岗

当晚,我和老婆在厨房洗碗(对,我们家没洗碗机,省下的钱给娃报早教班了),我说:“我想学React Native,试试跳槽。”

她擦着盘子,头也不抬:“行啊,反正你晚上也没觉睡。”

这句话听着扎心,但现实就是这么骨感。在北京,一个35岁、有两个娃、住天通苑的程序员,不往前跑,就是往后退

于是,我开始横向对比几个跨端方案:

  • Flutter:Dart语言,性能强,UI自绘,但学习曲线陡,社区中文资料少,而且……我真不想再学一门新语言了。Javascript我都还没完全搞明白呢。

  • uni-app:国内HBuilder系,写Vue就能出App,上手快。但生态封闭,打包体积大,而且一旦HBuilder政策变动,项目就可能被“绑架”。

  • 原生Android/iOS:别闹了,我连Xcode都没装过,Kotlin和Swift?等我学会,大宝都上小学了。

  • 区块链?哈!有朋友去年All in Web3,现在还在送外卖。虽然技术很酷,但落地场景少得可怜,公司招人也多是画饼。技术可以前沿,饭碗不能冒险

最后选了React Native。原因很简单:

  1. 我会Javascript(至少自认为会);
  2. Facebook背书(虽然后来Meta重心转移,但社区还在);
  3. 大厂还在用——字节、美团、携程都有RN项目;
  4. 最关键:能用现有Web技能快速切入移动端

二、第一个APP:从“Hello World”到“崩溃重启”

我给自己定的目标很朴素:两周内,做出一个能跑在手机上的APP

工具链安装那天,我熬到凌晨两点。Node.js、npm、Xcode Command Line Tools、Android Studio……每装一个,Mac风扇就狂转一次。最崩溃的是Android模拟器,启动要3分钟,内存占8G,我这8G内存的老爷机差点蓝屏(哦不对,Mac没有蓝屏,是白苹果)。

终于,在某个周三晚上,我敲下了这段代码:

import React from 'react';
import { View, Text, StyleSheet } from 'react-native';

const App = () => {
  return (
    <View style={styles.container}>
      <Text>我是天通苑奶爸,我在学RN!</Assistant>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#f0f0f0',
  },
});

export default App;

npx react-native run-android —— 回车。

模拟器黑屏。

重试,报错:Metro Bundler can't listen on port 8081

查Stack Overflow,发现是端口被占。杀进程、清缓存、重装node_modules……折腾到凌晨一点半,大宝突然哭醒。我赶紧冲进房间,抱起来拍背,嘴里还念叨着:“Metro……Metro……”

老婆在门口冷笑:“你管这叫学习?我看你是想把自己学进ICU。”

那一刻,我真的想放弃。

但第二天晚上,我又坐回了书桌前。成年人的坚持,往往不是因为热爱,而是因为别无选择

终于,在第四天深夜,屏幕上出现了那行字:“我是天通苑奶爸,我在学RN!”

我截图发朋友圈,配文:“第一个RN App,献给熬夜的自己。”
没人点赞。只有老婆评论:“电费又超了。”


三、Javascript:我的老朋友,也是新敌人

很多人说RN就是“用Javascript写App”,听起来很简单。但当你深入之后,才发现Javascript的灵活性,恰恰是坑最多的地方

比如状态管理。我一开始用useState,结果父子组件传值传得头晕。后来听说Redux太重,就试了Zustand,结果又遇到异步更新问题。最离谱的是,有一次我改了个变量名,整个App白屏,debug两小时才发现是拼写错误——Javascript不会报错,它只是默默返回undefined。

还有ES6的箭头函数、解构赋值、Promise……这些在学校里学过的东西,在真实项目里全变了味。尤其是在处理网络请求时,async/await和fetch混用,一不小心就内存泄漏。

有天晚上,我盯着一段代码发呆:

useEffect(() => {
  const fetchData = async () => {
    const res = await fetch('https://api.example.com/data');
    const data = await res.json();
    setData(data);
  };
  fetchData();
}, []);

老婆路过,瞥了一眼:“这不就是调个接口吗?怎么写了这么多行?”

我苦笑:“这已经是最简版了。要是加错误处理、loading状态、缓存逻辑……能写一页纸。”

Javascript看似简单,实则深不见底。而React Native,就是在这片深水区里划船


四、区块链?别扯了,先让App跑起来

有次面试,HR问我:“你对区块链有了解吗?我们有个Web3项目在孵化。”

我心里咯噔一下。说实话,我去年跟风看过Solidity教程,还部署过一个ERC-20代币(在Ropsten测试网)。但我知道,那玩意儿离生产环境差十万八千里。

我老实回答:“了解概念,但没实战经验。不过我可以学。”

对方笑了笑:“我们更看重工程能力。RN项目急需人手。”

那一刻我明白了:在大多数公司眼里,区块链是PPT,React Native才是KPI

技术圈总爱吹嘘“颠覆性创新”,但现实是——老板要的是能上线、能赚钱、能维护的产品。你跟他说去中心化,他问你DAU多少;你讲智能合约,他问你能不能明天修复那个闪退bug。

所以,别被风口带偏。先掌握能让你吃饭的技术,再去仰望星空


五、从学习到求职:22k是怎么来的

坚持了一个月,我做出了三个小Demo:

  • 一个天气查询App(用免费API)
  • 一个Todo List(带本地存储)
  • 一个仿抖音的视频流(用FlatList + react-native-video)

简历上写着:“熟悉React Native开发,掌握Javascript/ES6,了解移动端性能优化”。

投了20多家,面了8家,挂了5家。有家公司让我现场写一个列表下拉刷新,我手抖写错了keyExtractor,直接被pass。

但也有转机。一家做教育SaaS的公司看中了我的学习能力和项目完整性。终面时,CTO问我:“为什么选RN?”

我说:“因为我白天要带娃,晚上只能学Javascript。RN让我用现有技能切入移动端,性价比最高。”

他笑了:“真实。下周来试岗吧,月薪22k。”

回家路上,我给老婆发微信:“成了。”
她回:“房租交了吗?”


六、给同样处境的你:几点真心话

如果你也像我一样:

  • 年龄30+,
  • 有家庭负担,
  • 技术栈老旧,
  • 晚上才有时间学习,

那么我的建议是:

  1. 别追求“最新”,追求“最稳”。Flutter很酷,但RN生态更成熟,岗位更多。别为了技术洁癖耽误饭碗。

  2. Javascript是你的杠杆。别小看它,它是前端世界的通用货币。把JS基础打牢,比盲目学框架更重要。

  3. 做能展示的项目。哪怕只是个Todo List,只要能跑在真机上,就比100篇教程有用。

  4. 接受“不完美学习”。你不可能把所有文档看完再动手。边做边学,错了就改,这才是成年人的学习方式。

  5. 别碰区块链当主业。除非你有矿或者能拿融资,否则它救不了你的房贷。


结语:深夜的光,照在代码上

现在,我每天晚上依然十点后才开电脑。大宝最近好些了,小宝也开始睡整觉。书桌上多了个保温杯,泡着枸杞菊花茶——程序员最后的倔强。

React Native不是银弹,但它给了我一个重新谈判薪资的筹码。在这个城市,尊严有时候不是喊出来的,是用一行行代码挣来的。

技术会过时,框架会淘汰,但解决问题的能力,永远稀缺

所以,别问“RN还值得学吗?”
问自己:“我还有多少个深夜可以浪费?”

如果答案是“不多了”,那就现在,打开终端,敲下:

npx react-native init MyFirstApp

然后,等待Metro Bundler启动的那几分钟里,想想你的孩子、房租、和明天的早餐。

我们不是为了成为大神,只是为了在风暴中,稳稳地站在甲板上

—— 一个住在天通苑、正在学React Native的奶爸,于2024年夏夜

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝