我叫岑陆,一名在一线城市打拼第六年的ios开发者。
这几年,身边的人换了一拨又一拨:有转产品的,有去做运营的,也有人直接离开互联网。留下来的这一小撮人里,不少和我有一样的焦虑——明明是大家眼里“高薪”的行业,自己却过着一边被需求追着跑、一边刷招聘网站的日子。
如果你点进这篇文章,多半也在纠结类似的问题:

我不会和你讲励志故事,只把这几年踩过的坑、看过的数据、听过的真话,拆开给你看。你可以对号入座,也可以直接拿来当行动清单。
那天公司领导开会,我顺手看了一眼人事发错的薪资表。震惊倒不是因为谁拿得多,而是另一个事实:同岗位 iOS,薪资差距能拉到两倍以上。
而这些人,坐在同一排,写着看起来差不多的页面。
那一刻,我有点明白网上那些讨论为什么“ios开发者不再香了”的帖子里,说的“卷”的含义。
一些我后来特意去验证的现实:
- 很多招聘网站显示,中高级 iOS 岗位的需求依然存在,只是总量不再疯狂扩张
- 一线城市里,5 年经验的 iOS 薪资区间,从年包 20w 到 60w 都有人
- 我问过三家不同公司的技术负责人,他们不约而同地提到一句话:“能写代码的不愁招,能解决问题的不好找。”
这句话对我冲击很大。如果你只是一个“把需求翻译成页面”的ios开发者,确实随时可能被替代。但如果你是那个能搞定疑难 bug、能和产品一起做方案取舍、能把崩溃率压到极低的人,你在招聘表里的位置,就完全不一样。
从这天开始,我不再纠结“行业是不是在下滑”,而是盯着一个更现实的事:同样是 ios开发者,我到底属于哪一档?
有一阵子,我也陷入过比较内耗的阶段:刷技术公众号,看架构文章,收藏很多,却不知道要学到什么程度才算“有用”。
后来我逼自己只做一件事:凡是学习,必须和我手头的钱、职位、选择挂钩。
我把自己拆成三个能力维度,每个维度只做几件能立刻见效的事。
1.代码能力:不追新名词,只盯住“把一个 App 搞稳”
我删掉了收藏夹里一堆只看标题就热血澎湃的文章,换成几个很现实的目标:
让崩溃率真正下去我先从公司的崩溃统计平台里,把所有崩溃按出现频率排序,从头往后解决。很多问题其实不是高精尖,而是:
- 线程不安全
- 强引用循环
- 对 nil 判断不严谨每解决一个,把原因和处理方式写进自己的笔记,逼着自己下次遇到类似问题可以快速定位。半年之后,产品那边开会时点名提到一句:“iOS 的稳定性这一年提升得很明显。”这种直接被业务方认可,远比写个炫技的动画值钱。
把性能调优玩明白到能对外解释我挑了我们 App 里最卡的一两个页面,当成“试验田”,用 Instruments 跑性能分析,对比前后数据。后来在面试中说这段经历,对面会很认真听,因为这是他们每天的痛点。比起念技术名词,面试官更在意你遇到的是真实问题。
2.沟通能力:不做只会说“我尽力了”的程序员
我之前也习惯在产品排期紧的时候说:“这个需求做不完。”然后就等着对方改需求,或者加班熬。
后来我换了一种做法:
用“成本语言”而不是“情绪语言”交流例如:
- “这一版如果加动效,预计多 3 天,风险是兼容老机型可能花更多时间排查。”
- “如果不做动效,留个基础版本,先能上线,下次版本再补。”产品在意的从来不是你辛不辛苦,而是:时间、风险、影响。当你用这种方式表达时,对方会发现,你不是在推脱,而是在一起做决策。
在需求评审时提前发声过去我习惯评审会里沉默,然后会后在工位嘀咕:“这玩意根本做不完。”现在只要我判断某个点有技术风险,就会当场说:
- 有没有更简单的实现方式
- 是否可以拆成两期你会惊讶地发现,很多“离谱需求”,其实产品自己也心虚,只是没人提更好的方案。你一开口,你的“存在感”和话语权就不一样。
3.职业规划:不把“转方向”挂嘴边,只规划清楚路线图
很多ios开发者想转服务端、转前端、甚至转产品。我也认真考虑过,但最后我给自己定了一个原则:转,是为了更强,而不是为了逃。
我给自己画了三条可行路线,供你参考:
深耕客户端路线目标是往“客户端技术负责人”这类角色走。要补的短板是:多端协作能力、整体架构视角、对业务指标的敏感度。这条路的回报,是在技术线继续抬高天花板。
偏业务的技术管理路线不是变成只开会的“PPT 人”,而是把技术用在推动业务指标上。你能通过优化 App 首屏打开时间,提升留存,这会直接反映在业务报表上。这条路适合喜欢和人打交道、对数字敏感的人。
交叉技能路线比如 iOS + 小程序 + Web 小工具,变成一个能快速产出 MVP 的“全链路开发者”。在一些中小公司,这类人反而更抢手,因为“一个人顶半个团队”。
我当时是把这三条路线写下来,分别列出未来 2 年我能做的三件事,然后选了一条最适合当下公司的,用一年的时间验证。焦虑感会明显下降。
很多人问我:“要不要学 SwiftUI?”要不要搞 Flutter?要不要学后端?这些问题我都问过自己,而且问到有点麻木。
我后来用了一个很简单的判断方式:技术选型只看两件事:能不能帮我赚钱,或者能不能帮我省时间。
坑一:为了“看起来高级”,疯狂堆技术名词有段时间,朋友圈里充斥着各种“XX 架构实战”“组件化 + 模块化 + 插件化一把梭”。那时候我也有点心动,想把项目里的所有结构都来一遍升级。
好在我们架构师拦住了我,他说了一句话:“你要学会区分‘建设工程’和‘装修工程’。”
- 如果你的项目还在频繁变动需求,业务方向没稳定,你去推一堆复杂架构,就是在地基还没打牢的时候装吊灯
- 真正该上的复杂方案,是你已经被重复的问题困扰了很久,简单处理方式已经不够用了
对我这种普通ios开发者来说,更实在的做法反而是:
- 把常用组件封装好,让自己做同类需求能更快
- 搞清楚当前项目的整体架构,不需要自己设计,但必须看得懂
- 至少完整走一遍从需求评审到上架的全流程,对每个环节都心中有数
你会发现,当你不再一有时间就去追热点技术,用来打磨这些基础能力时,你的效率和稳定性会悄悄抬起来。
坑二:学一堆跨平台,结果一个都不精跨平台方案这几年一波一波:React Native、Flutter、Kotlin Multiplatform、各种混合框架。很多人一激动,什么都想学一点,简历上写得花里胡哨,真正让他独立扛一个项目,却又心虚。
我自己的做法是:
先把 iOS 原生这一块打牢能搞清楚 UIView、CALayer 渲染链路、App 启动流程、常见多线程问题。当你真的理解这些原理,再看 Flutter 和其他跨平台方案,其实会更容易看穿它们的优缺点。
然后选一个跨平台做“加分项”,而不是“主项”我选的是 Flutter,因为公司有项目试水,我能在真正的业务场景下用它。学习方式也很简单:
- 不刷一堆基础教程
- 直接拿现有业务功能,用 Flutter 做一个可以上线的版本中间遇到的坑全部记下来,这些内容在面试中是非常真实的“战场经验”。
我见过一位跳槽很成功的同事,他面试时没有大谈“掌握多种跨平台技术”,只讲了一个项目:如何从原生 iOS 平滑迁移部分业务到 Flutter,过程中如何控制包体积、启动速度、崩溃率。这就足够了。
技术广度可以慢慢铺,深度一定要有落点。
写到这里,如果你也在迷茫,不清楚该学什么、不知道怎么评估自己值不值钱,我想给你一份非常具体、可以从今天就开始的清单。
不用全做完,只要挑出其中三条坚持三个月,你的状态就会变得完全不同。
行动1:把“隐性价值”变成看得见的成果
- 去你们现有 App 的崩溃统计平台,挑出现频率最高的 TOP 10 崩溃,逐个解决
- 每解决一个,写一份简短的记录:原因、排查过程、修复方案
- 定期在组内、或者在内部 wiki 发一篇“问题复盘”过一段时间,你再看这堆记录,会发现你已经成了团队里最懂这块的人。而在绩效和跳槽时,这些内容都可以变成非常有说服力的“成果”。
行动2:为自己设计一场“高质量面试”
即使你暂时不打算跳槽,也可以提前把“面试”这件事用在优化自己身上。
- 找 3 家你真正想去的公司,研究他们的 JD看他们对“ios开发者”的要求写了什么,从中拿到一份“行业期待清单”
- 把这份清单和自己匹配一下:哪些你已经有、哪些你完全没接触
- 对于没接触的部分,不是马上去啃厚书,而是找一个小目标:比如“写一个简单的多线程安全的网络图片缓存”“做一个可以复用的表单组件”,让自己有一个能展示的作品
这样做的好处是:你不会被网上杂七杂八的学习路线牵着走,而是根据真实招聘需求来调整自己。
行动3:练习有边界感的说“不”
这点很现实,也很重要。
- 遇到时间不合理的需求,不是简单回一句“做不完”,而是给出两个替代方案和一个权衡
- 在加班文化浓厚的环境里,为自己设置一个底线:比如每周至少有两晚不带电脑回家,把学习和休息都看成工作的一部分
- 和直属上级做一次坦诚沟通:把你愿意承担的职责、希望发展的方向说清楚,看能不能争取到更合适的项目或机会
你会发现,当你开始有边界,反而会更被尊重。那些永远一句“我都行”的人,很容易被当成无限可压榨的资源。
行动4:给未来两年的自己写一份“使用说明书”
这听起来有点玄,但对我帮助很大。
找个安静的晚上,写一封“给未来自己的说明书”,包括:
- 你希望两年后,别人介绍你时怎么说这位ios开发者比如:“他是我们这边最懂客户端性能优化的那个人”,“她是做业务落地超级靠谱的 iOS 负责人”等
- 你不想再做的事情比如只写没有任何成长的堆页面需求,长期超负荷无意义加班
- 你准备用什么具体行为来靠近那个两年后的自己可以写得模糊一点,但一定要落地,比如“一年内做两次对外分享”“参与一个从 0 到 1 的新项目”等
这份“说明书”不需要写给别人看,只是帮你在混乱的信息流里,帮自己定一个小小的方向。
写这篇文章的时候,我还是那个在工位上对着 Xcode 的ios开发者,也还是偶尔会焦虑会迷茫的普通人。
区别只是,我不再用“行业不行了”这句话,把所有问题都甩给大环境。我更愿意承认——在“市场”和“公司”之外,我手里还有一块可以掌控的东西:我自己这台小小的“生产力机器”到底能输出什么。
如果你看到这里,可能你也不想只是被动等风口。那不如,从下一个需求开始,从下一个崩溃排查开始,从下一个和产品的对话开始,试着把“一个写代码的 ios开发者”,变成“一个能解决问题的合作伙伴”。
路不一定轻松,但每一步,都算数。