当下移动开发唱衰,iOS开发者如何才能涅槃重生?

2007年1月9日,乔布斯发布了第一代iPhone手机,他从新定义了人们对于手机的认知,那一天,也是移动互联网时代的开端。前端

次年7月,在 WWDC 苹果全球开发者大会上,苹果宣布 App Store 正式对外开放,这也意味着属于开发者的移动互联网时代真正开始,iOS 开发应运而生。一转眼,十多年过去了,移动 App 基本成为了大众互联网产品的标配。移动技术的飞速发展,成就了一批人,但红利期事后,必然遇到挑战,有人说 iOS 市场不行了,有人说不须要原生技术了,有人说很差找工做了。程序员

事实果然如此吗?面试

有些人工做年限很长,仍是被淘汰掉了,我发现他们身上都有这样的共性:算法

一、作iOS开发多年,基本都在作着重复性的工做,忙于应付各类业务需求的讨论、开发、测试、发布、维护升级,有新的需求继续迭代开发。编程

二、经过频繁跳槽积累项目经验和工资,但真正经历大公司严谨的技术面试后才发现本身的基础知识没打好,不多研究Objective-C 和 Swift 的底层原理。小程序

三、开发技能零散,没有深刻研究过第三方源码,学习技术的自驱力太差。有业务须要用到哪里的知识,就去谷歌一下拿来用,实现完功能就完了。安全

更有甚者,工做5年,连基本的内存管理问题都答不上来,对指针懵懵懂懂,对系统内核一窍不通。随着移动领域的成熟和发展,iOS 开发者势必是从小型团队到大型,从草台班子到专业团队。性能优化

实际上,在这个互联网时代,几乎每一家公司都拥有本身的APP,每一家互联网公司都须要本身的iOS开发人员。在真实的市场环境中,iOS 中高级开发工程师的就业形势是很是可观的。数据结构

这些年移动开发领域相继诞生了组件化热修复动态化大前端小程序等热门技术,大多数开发人员,一般是上一个热点技术没搞懂,又有新的技术流行,好比React NativeWeex 还没用热乎,又开始流行Flutter 了。其实这些技术看似“纷繁杂乱”,实则是异曲同工,它们背后都是一些通用的底层技术和创新的设计思想架构

再好比,热修复动态化大前端的底层技术,都是 JavaScriptCore 这样的 JavaScript 虚拟机技术;再好比,大前端Flutter 的渲染,使用的都是 WebCore 中 Skai 这样的渲染引擎。

归根究底,与其关心下一个热点是什么,还不如静下心来好好消化掉这几年浪潮留下的关键技术,理解编程的本质,创建完备的知识体系,在这个基础上再去理解各类“新技术”,必然会得心应手。

所以,我给你们推荐几个学习晋升的方向:

1:底层探索能力

不少人会讽刺:面试造航母,上班拧螺丝! 其实否则,面试的高要求对于一家优秀的iOS需求单位来讲是必须的!

  • iOS开发实现的确有不少的方式,可是一个真正懂得原理的开发人员在往后的开发工做中是很是重要。我见过一些开发人员:遇到BUG都是直接面向百度,不知道为何直接 command + c/command + V OK,解决了,打版走人,下次又遇到了仍是要面向百度,其中浪费的时间和小伙伴之间的沟通成本可想而知!
  • 底层原理只是你在工做开发中偷懒而逃避选择使用而已(或者全然不太了解)
  • 技术不断更新,底层原理是永恒根基
  • 底层原理是很是重要的,只有真正掌握原理才能迎接将来无限可能。

下面是我推荐你们学习的内容:

OC 底层探索篇也是你们熟悉而又陌生的地方,平时到处用,就是不知道为何!

2.性能优化以及架构能力

只要你面试要求 20-30K 必然要求性能优化能力!

  • 怎么优化启动速度,应用包的瘦身!
  • 界面优化(卡顿检测以及分析解决)
  • 内存管理方面也是面试以及平时开发的重灾区!
  • 架构并不属于性能优化,可是我要求每个 3以上开发 都要有必定的架构思惟!

3.数据结构算法

数据结构算法应该是每个程序员必备的根据。我记得个人导师跟我说过:一个程序员须要两样东西:智商和勤奋

  • 英文能力陪衬你的勤奋度
  • 数据结构算法反馈你的智商等级

数据结构与算法并不仅是抽象的概念,掌握好的话能够写出更高效、运行得更快的代码,这对于现在盛行的网页和移动应用开发来讲尤其重要。若是你最近一次使用算法是在大学课堂上或求职面试时,那你应该还没见识到它的真正威力!

这个主题的大多数资料都有一种通病——晦涩难懂。满纸的数学术语,我以为一种有趣的学习方式也是很是重要的!

跨平台能力

跨平台的方案有不少:

如上表所示,RNWeex采用的技术方案大致相同,它们都使用JavaScript做为编程语言,而后经过中间层转换为原生的组件后再利用Native 渲染引擎执行渲染操做。而 Flutter 直接使用 skia 来渲染视图,而Flutter Widget则使用现代响应式框架来构建,和平台没有直接的关系。

从性能方面来讲,Flutter 的性能理论上是最好的,RNWeex次之,而且都好于传统的 WebView方案

而从社群和社区的活跃来看,RN和Flutter无疑是最活跃的

总结:我我的针对如今的行情比较推荐你们学习:Flutter

  • 同时如今不少人也开始着手学习了
  • 如何陪衬你的优点,我我的还要推荐在平时入门到项目的过程,不妨花点时间探索了一下背后的原理:渲染的流程,Flutter和原生的共存通信优化
  • 下面这张思惟导图你们能够参考学习

加分项

如今的iOS开发为何会遇到瓶颈是由于:前面储备过少,坐吃山空! 技术不断更新的时代,我但愿你沉下心来与时俱进,不断储备技能为本身加分

其实这里并无很是具体的推荐学习方向,总的以下几点!

5G时代,小视屏/直播技术都是如今当红,而且掌握人群很是少的技术,OpenGL ES、Metal、FFmpeg等等!

而应用逆向安全,是大部分大厂都一直重视的,只是在小公司突显不出来,若是对于大厂有想法的,能够尝试学习!
固然除了跟iOS有关系的,好比被炒火的Python,谣传比iOS好找工做的前端等等都是能够学习的!
技术储备和亮点,这些都得根据我的兴趣或者公司需求来进行学习,固然越多的储备就会使你后面的路走的越容易!

后记

如今不少大公司招人已经明确限制须要 2十一、985 的学历,而对于咱们大多人这种双非二本学历,连敲门砖都木有。可是,可否拿到 offer,除了真的很幸运,也和自己的努力分不开。

持续更新--请iOS的小伙伴关注! 喜欢的话给一个赞吧!

推荐👇:

做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:789143298 ,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!

申请即送:

  • BAT大厂面试题、独家面试工具包,
  • 资料免费领取,包括 数据结构、底层进阶、图形视觉、音视频、架构设计、逆向安防、RxSwift、flutter,

相关文章
相关标签/搜索