这可能是最详细的iOS学习入门指南(含书目/文档/学习资料)

零基础小白如何进行iOS系统学习?入门后如何进阶,进而成为资深的iOS专家?iOS开发者的能力图谱是怎么样的?想要走向专家级别,需要怎样的知识体系?网易阿里等互联网公司需要怎样的iOS人才?……
这些问题恐怕是想要入行iOS或者初入行1-3年的开发同学经常碰到的,今天我们邀请到了网易移动技术团队负责人张平,从这五个问题的角度来为大家答疑解惑。

张平 | 网易移动技术团队负责人 多年浏览器内核、JavaScript解释器研发经验;负责过多款APP和一些基础SDK的研发;热爱优秀的编程语言。
1 零基础小白如何进行iOS系统学习首先,学习目标要明确;其次,有了目标,要培养兴趣,经常给自己一些正面的反馈,比如对自己的进步进行鼓励,在前期小步快走;再次,学技术最重要的一点就是多动手。
推荐书目:《Objective-C基础教程 》《iOS编程》 《iOS开发指南》推荐两个开源的APP:SegmentFault、懒人笔记
2 基础入门后,如何进行高级进阶 2.1 原理和基础:掌握扎实的原理和基础是进阶的必要条件
首先是语言。 入门时候可能只要对语言看得懂,会写即可。但是在进阶阶段,看懂会写是远远不够的。
这个时候,编码规范就很重要,我们不能随心所欲的写,推荐书目《Effective Objective_C2.0》。
除此之外,我们还需熟练掌握Objective-C Runtime。我推荐的素材有http://opensource.apple.com/source/objc4/,这门语言比较好的是它开源,所以我们可以去看它的源码。第二是苹果的这篇文档Objective-C Runtime Programming Guide,我们可以仔细去阅读。从我自身经历来看,对Objc_msgSend实现细节的理解程度很大程度上反映了我们对 Objective-C Runtime的掌握程度。再推荐大家一篇文档 The Swift Programming Language,苹果官方的文档,大家可以反反复复去看。
2.2 iOS GUI学习
我听到有些人说GUI学习太简单了,我随便看看能刷几个页面就可。还会有这样一种说法,GUI的代码太难看了。
我个人十分重视GUI,我认为这是真正挑战的地方,因为这能真正反映我们的熟练程度,是否真正懂得其背后的设计原理。 
APP Guide:l  View Programming guidel  View Controller Programming Guidel  Event Handling Guidel  Drawing and Printing Guidel  Core Animation Programming Guide
2.3 Xcode学习
工欲善其事,必先利其器。在我看来,Xcode就是这个器,因此需要十分重视。
Apple Guide:| Xcode Overview| Xcode Project Management Guide 关于Xcode的流程,我们需要清晰的知道Xcode编译、链接、打包的流程,配置和Xcodeconfig的操作。另外,还需知道Xcode管理多工程、多Target. 还需熟练使用cocoapods、plugin。当然,IIvm调试工具也是必不可少的。
2.4 网络
理解NSUPLConnection、NSURLSession、NSURLProtocol
Apple Guide:| URL Loading System Programming Guide| Introduction to CFNetwork Programming Guide
2.5 多线程
推荐书目《Objective_C高级编程ios与OS X多线程和内存管理》,这本书的特点是透彻,全面。
Apple Guide:| Concurrency Programming Guide| Threading Programming Guide
2.6 逆向安全(了解层面)
《iOS应用逆向工程》对我们去了解逆向这些事情和应用的保护是很有帮助的。
Apple Guide:| Keychain Services Programming Guide
2.7 学习资源
| WWDC Session| Objc.io此外,优秀的开源库也值得我们学习,如:| SDWebImage| AFNetworking/Restkit| Facebook的三个库:AsyncDisplayKit/pop/ReactNativeReactiveCocoa
3 iOS能力清单 3.1 GUI自定义UI、熟悉UI渲染机制掌握基本排版机制,掌握AutoLayout熟悉事件传递机制,自定义手势掌握基本动画,动画原理
3.2 Controller熟悉基本ViewController使用、transition熟悉MVC等设计模式
3.3 熟悉常见网络库使用熟悉NSURLConnection, NSURLSession, NSURLProtocol, AFNetworking, 熟悉Cache, cookie管理
3.4 熟悉Sqlite使用,熟悉常见ORM系统设计和实现,熟悉系统常用本地存储机制熟悉CoreData, sqlite, UserDefault
3.5 熟悉多线程消息传递,同步机制,线程池设计和实现掌握NSOperation  GCD  Runloop 机制和实现
3.6 熟悉音频、视频基本概念,熟悉相关系统接口熟悉拍照、录像等相关接口

3.7 编程语言熟悉C/C++、Objective-C、Swift
3.8 性能优调熟悉移动端常见性能问题和解决方案:主线程CPU密集操作,主线程IO操作,排版、渲染耗时网络性能分析和调优(《Web性能权威指南》)熟练使用Instrument进行性能调优
3.9 安全熟悉常见iOS应用安全机制(keychain,codesign),熟悉常见应用数据保护机制熟悉常见加解密算法熟悉iOS逆向与安全
4 走向专家的知识体系
内功而非招式,更看重基础的掌握。 所以,我们需要加强自身实际的能力,主要包括:l  数学基础l  操作系统l  程序的编译上,链接与加载,推荐《程序员的自我修养》l  ARM体系架构,推荐ARM体系结构与编程》l  学习多范式的编程语言l  设计模式l  计算机网络l  数据库
5 企业需要怎样的iOS人才
| 大公司更看重基础,成长性| 技术热情| 系统学习的能力| 听说能力| 敢于承担、敢于挑战

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值