iOS学习⼊门指南
1 零基础⼩⽩如何进⾏ iOS 系统学习
⾸先,学习⽬标要明确;
其次,有了⽬标,要培养兴趣,经常给⾃⼰⼀些正⾯的反馈,⽐如对⾃⼰的进步进⾏⿎励,在前期⼩步快⾛;
再次,学技术最重要的⼀点就是多动⼿。
推荐书⽬:
《Objective-C 教程(第 2 版) 》
《Objective-C 基础教程 》
《iOS 编程(第四版)》
《iOS 编程(第五版)》
《iOS 开发指南》
2 基础⼊门后,如何进⾏⾼级进阶
2.1 原理和基础:掌握扎实的原理和基础是进阶的必要条件
⾸先是语⾔。 ⼊门时候可能只要对语⾔看得懂,会写即可。但是在进阶阶段,看懂会写是远远不够的。
这个时候,编码规范就很重要,我们不能随⼼所欲的写,推荐书⽬《Effective Objective-C 2.0》。
除此之外,我们还需熟练掌握 Objective-C Runtime。我推荐的素材有objc4,这门语⾔⽐较好的是它开源,所以我们可以去看它的源码。第⼆是苹果的这篇⽂档Objective-C Runtime Programming Guide,我们可以仔细去阅读。从我⾃⾝经历来看,对 objc_msgSend() 实现细节的理解程度很⼤程度上反映了我们对 Objective-C Runtime 的掌握程度。再推荐⼤家⼀篇⽂档 The Swift Programming Language,苹果官⽅的⽂档,⼤家可以反反复复去看。
2.2 iOS GUI 学习
我听到有些⼈说 GUI 学习太简单了,我随便看看能刷⼏个页⾯就可。还会有这样⼀种说法,GUI 的代码太难看了。
我个⼈⼗分重视GUI,我认为这是真正挑战的地⽅,因为这能真正反映我们的熟练程度,是否真正懂得其背后的设计原理。
APP Guide:
View Programming guide
View Controller Programming Guide
Event Handling Guide
Drawing and Printing Guide
Core Animation Programming Guide
2.3 Xcode学习
⼯欲善其事,必先利其器。在我看来,Xcode 就是这个器,因此需要⼗分重视。
Apple Guide:
Xcode Overview
Xcode Project Management Guide
关于Xcode的流程,我们需要清晰的知道Xcode编译、链接、打包的流程,配置和Xcodeconfig的操作。另外,还需知道Xcode管理多⼯程、多Target. 还需熟练使⽤cocoapods、plugin。当然,LLVM 调试⼯具也是必不可少的。
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/ReactNative
ReactiveCocoa
3 3 iOS能⼒清单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 ⾛向专家的知识体系
内功⽽⾮招式,更看重基础的掌握。 所以,我们需要加强⾃⾝实际的能⼒,主要包括:
数学基础
操作系统
程序的编译上,链接与加载,推荐《程序员的⾃我修养》
ARM体系架构,推荐《ARM体系结构与编程》
学习多范式的编程语⾔
设计模式
计算机⽹络reactnative开发
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论