iOS学习过程回顾
从2013年12月至今,差不多做了1年半iOS开发,回顾一下学习的过程
学习iOS开发的几个阶段
首先我觉得,学习一门语言,需要5个步骤:
1、了解语言本身。比如首先需要了解objective-c的特性,以及各种相关的东西。从基础的变量类型、语法,到语言的高级特性如block、反射等等
2、了解平台。如UIView的类层次结构,UIViewController的生命周期,app的生命周期,KVO,常见的模式比如target-action,delegate,datasource等
3、熟悉平台的各种常用不常用API。比如UIKit,Core Graphics,Core Animation,Core Data,APNS等
4、了解业界的标准方案,第三方库。比如缓存、网络、数据库操作、界面刷新、数据同步、duang duang的特效等,基本上所有的场景都有对应的解决方案和开源库,比自己造轮子要好得多,但是如果基础比较扎实,就可以很容易理解开源库的实现,还可以提交pr帮忙改进
5、更底层的东西。比如用纯C来实现objective-c无法做到的事
主要的学习方法
1、官方资料,包括苹果develop中心的各种guide和reference,还有WWDC每年的视频。这是最权威和最新的资料,是必须熟悉和跟进的。如果在所有学习方法里只能选一种,那么这是唯一不能舍弃的
2、纸质书和电子书。好的出版物,可读性和系统性通常都很不错,比官方文档更好。这一年半我也看了很多iOS开发相关的书,印象中觉得帮助比较大的主要是fundamentals,pushing the limit,EOC,programing等几本。是的,英文的书质量明显碾压中文版,即使是国内的一些iOS资深开发者,虽然开发水平不错,但是出的书的质量都一般
3、开源项目的源码。比如AFNetworking,SDWebImage,FMDB等业界知名开源库,其源码都值得一读
4、优质的博客、微博、公众号。这类信息都比较碎片化,深度也比较浅,但是好处是及时性最强,更多的是可以起到引导阅读的作用。比如前几天facebook刚开源的react native,业界就炒的很热,那么从微博上知道了这个信息,就可以自己进一步去找资料更深入地学习
5、最核心的,多写
个人的学习经历
之前我对后端和web非常熟悉,也有一点android的经验,但是iOS是全新接触。最后大约3个月的时间完成了第一个iOS项目,是基于iPad的。因为是从零到一的过程,所以自己觉得进步很明显,每天都接触新的东西,工作也觉得非常开心。那个阶段主要是打基础,objective-c语言本身和iOS平台的特性基本都接触了,各种第三方库也用得七七八八,尤其是FMDB和cordova,因为踩了不少坑,所以也掌握得特别清楚
后来开始做第二个APP,主要是在做的过程中,把原理和基础知识又梳理了一遍,另外为了绘制报表,不光是使用UIKit,还把Core Graphics那套API也玩了一遍,最后把几种常用的报表图(饼图,柱状图,折线图等)抽取出来,做了个控件库放到了github上
最近又在做一个新的APP,这次就觉得挑战比较小了,基本上没有太新的东西。但是现在iPhone有4种尺寸了,宽高比也不统一,所以以前不用太在意的屏幕适配问题变得比较突出。我们的UI是纯手写的,不用storyboard和xib,所以用了masonry来做约束,感觉还不错