从我做【iOS开发栈】这个公众号以来就时不时有同学通过关注公众号添加了我的微信,其中有一些刚入行的同学对iOS开发前景表现出担忧。作为一个从15年开始从事iOS开发的老猿,我觉着有必要写一篇文章来说一下这个问题。

这篇文章主要包括下面几个方面的内容:

  1. iOS开发的潮起潮落
  2. iOS开发的前景
  3. iOS开发的方向

让我们开始吧~ 从我做【iOS开发栈】这个公众号以来就时不时有同学通过关注公众号添加了我的微信,其中有一些刚入行的同学对iOS开发前景表现出担忧。作为一个从15年开始从事iOS开发的老猿,我觉着有必要写一篇文章来说一下这个问题。

这篇文章主要包括下面几个方面的内容:

  1. iOS开发的潮起潮落
  2. iOS开发的前景
  3. iOS开发的方向

让我们开始吧~

以下内容谨代表我的个人观点,不对任何人的决策构成实质性建议。如果对你产生任何不良影响,本人概不负责。

到公众号【iOS开发栈】学习更多Swift、SwiftUI、iOS开发相关内容。

iOS开发的潮起潮落

据我所知,iOS开发这个职位大概是在2012年在国内出现,然后随着移动互联网的迅猛极速发展,出现了人人都要做App的现象。也就造成了iOS开发需求迅速扩大,在15年以前真的是一人难求。也就出现了很多培训机构通过短时间集中培训向社会输出大量iOS开发,以及之前做其他方面开发的程序员改行从事iOS开发。

在那几年你只要在面试的时候能说出几个Api,会简单的搭建页面就能获得甚高的工资,这个现象又大力推动了培训和转行的热情。

培训的现象虽然有很多的问题,但是它的贡献也是不可磨灭的。没有培训社会上不可能在短期出现这么多能够干活的人,这个产业也就得不到这么快的发展。所以,希望大家能够对培训有一个客观的认识。

一个行业不可能永远都能维持低门槛高工资,更何况是在从业者迅速增长的行业中。

16年后随着移动互联网热潮的退却和大量iOS开发迅速涌入市场,以及早期从业者的迅速学习成长,iOS开发的招聘要求开始快速提升。

招聘要求的提升影响最大的是短期培训的新人和没有快速成长的早起从业者。通过培训的同学发现找工作越来越难、工资也越来越低,而那些技术没有得到相应提升的从业者要面对被裁员和很难找到下一份工作的现实。

网上也就出现了“iOS开发没人要”的传闻。

iOS开发的前景

我本人是在14年接受的iOS开发培训(细节在这里省略),然后14年底找到了第一份工作。从我参加工作iOS开发应该说是一直在慢慢走下坡路,不过我本人有幸能够一直在这个岗位上谋生。在我认识的一起培训的同学中有一些还和我一样在从事着iOS开发,而有一些转到了其他岗位,也有的不在从事互联网的工作。

在17年左右应该是iOS开发最黑暗的一段时间,那时候网上关于iOS开发找不到工作、被裁员的消息真的是到处都是。现在网上很多文章其实都是那个时期的同学写的。

对于现在即将从事这个行业或者还没有摆脱困惑的同学,其实大多数都是思维没有转变过来。在这里简单跟大家讨论一下几个点:

  1. iOS开发这个技术工种和其他的工种没有任何区别,但是这个工种好像却获得了更多的关注。个人认为主要是因为iOS开发是为苹果服务的,而大家对苹果好像就会投入更多的关注——毕竟是全世界市值最高的公司,这就导致大家对iOS的期待更高。
  2. 任何一个行业都不可能一直维持低门槛高收益。在iOS开发行业初期的那个现象本来就是暂时的,随着行业红利的过去必然会有一个急转直下的过程,也许现在这种节奏才是正常的,只是大家还没有转变过来。
  3. iOS开发市场需求最大的锚点是苹果公司,更直接的说是iPhone的销量。只要iPhone的销量有保障,用户数有保障,就需要不断的有App需要被开发出来,那就一定需要有iOS开发者来做这个工作。
  4. iOS开发的天花板可能并不像你想的那么低。这个在下面详述。
  5. 混合开发永远不可能取代原生。这个问题也很复杂,在这里只说一下基本的逻辑。大家考虑这个问题的时候只需要类比一下就可以,OpenGL跨平台但是Windows和MacOS都有针对自己平台的图形系统;苹果最近的M1芯片能够吊打英特尔不也是因为单平台吗。
  6. 一个人如果在行业里混不下去那大概率不是行业的原因,一个行业的失业率对你个人来说没有任何实质意义。

不管你现在处于哪个阶段,只要每天都在踏踏实实的进步,行业不会亏待任何人。

iOS开发的方向

iOS开发在招聘市场上大体上分为初级、中级、高级三个层次。这三个层次从事的工作重点各有不同,大体上来说:初级主要从事简单的界面开发和业务逻辑处理,需要掌握常用的系统API和第三方库,初级开发一般都需要在更高级开发的带领下完成日常工作;中级开发会做一些复杂的业务逻辑处理和App优化方面的工作,需要掌握大多数开发遇到的问题处理方式和第三方的实现原理,中级开发是可以独立完成日常需求的;高级开发需要根据掌握的计算机基础知识来应用到项目中,比如说网络、编译等,他们的工作大多数需要较长的时间才能看到成果,但是成果是跨跃性的。

由于大家普遍关系iOS开发的天花板,所以对初级和中级开发这里就不细说了。而对高级开发可能存在的方向,我个人总结有3点:编译器、安全、音视频(应该是不仅有这3点,只是目前我还没看到)。

编译器方面的工作主要分为两个方向:提升App的性能和检查优化代码。提升App性能方面包括启动速度的优化和计算速度的优化,这方面的工作苹果开发团队一直在做,国外和国内的某些大厂也投入了大量人力在做;编译器可以深入汇编层面发现代码的bug,通过对编译器的增强可以找出一些难以通过直接阅读发现的问题。

安全方面主要是防止App被破解和网络传输过程中被劫持。虽然iOS App在防护方面要比其他平台好很多,但是就像警察和小偷一样,攻防的话题将会是永恒的。

音视频主要是来对声音和图像进行后期的处理。计算机音视频的协议非常多,也各有优劣,并且是在不断推陈出新的,针对自己的需求选择/开发合适的工具是永不停歇的。这个方面的需求目前来看也应该是最多的。

我本人水平有限,目前还没有深入到上面的任何一个方向,希望将来可以。

到公众号【iOS开发栈】学习更多Swift、SwiftUI、iOS开发相关内容。

总结

这篇文章说了很多,或许能够为还在困惑的你提供一些帮助,不过前进的路总是崎岖不平,甚至没有方向的。路是靠自己走出来的,在迷茫的时候再坚持一下,也许黎明的曙光就会到来。

与君共勉。