如何成为一名iOS开发高手

倾然丶 夕夏残阳落幕 提交于 2020-08-10 19:55:00

“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”

作为当前两大主流移动操作系统之一,iOS伴随着iPhone的风靡而走向了全球。当前的移动App种类繁多,足以让人眼花缭乱。因此,不管大家从事何种产品的开发,都应该或多或少地了解一些iOS开发相关的知识。那么,iOS开发的知识体系是怎样的?如何进阶成为一位iOS开发的高手?带着这种种的疑问,我学习了极客时间 App 上的《iOS开发高手课》专栏。本专栏作者戴铭老师是前滴滴出行技术专家,有着丰富的iOS开发和实践经验。

通过对本专栏的学习,我对iOS开发有了全面的了解(虽然还不足以成为一位高手)。在这篇文章中,我分享一下自己的学习总结,供各位想成为iOS开发高手的朋友参考。

 

专栏主要内容

作者在开篇词中提到,在2008年7月的WWDC苹果全球开发者大会上,苹果宣布App Store正式对外开放,这也意味着属于开发者的移动互联网时代真正开始了。从技术角度看,这些年来移动开发领域相继诞生了组件化、热修复、动态化、大前端、Flutter、小程序等热门技术,推动着iOS开发者不断地学习新技术,同时也让App开发变得越来越容易。作者认为,任何一个领域其实都和移动领域一样,从小型到大型,从个人到团队,从低效到高效,从凑合够用到高要求。

本专栏的主要内容分为四个部分,分别是:基础篇、应用开发篇、原理篇、原生与前端共舞

我用下面这张思维导图来概括本专栏的主要内容。

iOS开发基础

在学习任何一门技术之前,需要先建立起一套较为完整的知识体系,学习iOS开发也不例外。作者提到,学习iOS开发这件事儿,不要一开始就求多,而要求精、求深。iOS的知识体系包括了基础、原理、应用开发、原生与前端四大模块,具体到专栏内容,作者的安排如下:

第一,基础模块中介绍的内容涉及到开发阶段、调试测试阶段、发布阶段和上线阶段;

第二,应用开发模块涉及到需要关注的一些经典库;

第三,原理模块涉及到系统内核 XNU、AOP、内存管理和编译的知识;

第四,原生与前端模块中分析了隐藏在这些时髦技术背后的解释器和渲染技术。

作者还在基础知识部分给出了iOS开发的最佳学习路径,作者为刚跨入iOS领域的开发者推荐了一些入门的书籍和网站,同时为有一定iOS实际开发经验的朋友们提供了三点建议:不贪基础知识、在实践中积累、深挖知识。

作者在基础知识部分介绍的内容非常的多,大家可以订阅专栏学习,或者是阅读我在本文最后提供的思维导图。

 

iOS应用开发

在应用开发篇,作者介绍的内容包括:GUI框架、响应式框架、动画效果、A/B测试、事件总线、JSON解析、Flexbox、富文本、面向测试驱动开发和面向行为驱动开发。

在这一部分,作者还介绍了如何制定一套适合自己团队的iOS编码规范。作者认为,好的代码规范需要从如下方面入手:常量、变量、属性、条件语句、循环语句、函数、类、分类等。

此外,作者还强调了Code Review的重要性,他认为要利用好Code Review这个卡点,先使用静态检查工具对提交的代码进行一次全面检查。需要对代码进行人工检查的原因是,通过团队成员之间互相检查代码的方式,能够达到相互沟通交流,甚至相互学习的效果。Code Review的过程也能够对代码规范进行迭代改进,最后形成一份能体现出团队整体智慧的代码规范。

 

iOS原理

在原理篇中,作者介绍的内容包括:系统内核XNU、Runtime Method Swizzling、libffi、内存管理、Clang插件编写。

在这部分中,作者介绍了iOS系统架构,它是基于ARM架构的,大致可以分为四层:最上层是用户体验层,主要是提供用户界面;第二层是应用框架层,是开发者会用到的;第三层是核心框架层,是系统核心功能的框架层;第四层是Darwin层,是操作系统的核心,属于操作系统的内核态。

作者还提到,移动端的内存管理技术,主要有GC(Garbage Collection,垃圾回收)的标记清除算法和苹果公司使用的引用计数方法。作者分别从虚拟内存、分段和分页三个方面来介绍了iOS的内存管理。

 

总结

在本专栏的最后一部分,作者介绍了原生与前端的相关知识,包括:JavaScriptCore、React Native和Flutter等跨端方案、渲染技术、动态化和热更新方案。这些都是一位iOS开发高手所必须要掌握的知识。

在结束语,针对很多人抱怨说工作太忙,学习的时间不够的问题,作者提到,关于技术学习的时间分配,实践是最好的学习,我们需要识别出当前所做事情是不是重要而紧急的。另外,关于团队合作,作者认为最重要的就是达成对技术方向与工作重心的共识,懂得取舍才是团队的核心。

本专栏介绍的内容比较深入,适合正在进阶到iOS开发高手的朋友们阅读。如果大家对专栏的内容感兴趣,可以订阅学习,也可以阅读我绘制的思维导图。下载链接如下,希望对大家的iOS开发进阶之路有所帮助。

链接:https://pan.baidu.com/s/1ZGaFruM3ow1mQ6q8erZXFA 

提取码:9fty

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!