iOS开发学习路线

零基础小白如何进行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 guide

l  View Controller Programming Guide

l  Event Handling Guide

l  Drawing and Printing Guide

l  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/ReactNative

ReactiveCocoa

3

iOS能力清单

3.1 GUI

自定义UI、熟悉UI渲染机制

掌握基本排版机制,掌握AutoLayout

熟悉事件传递机制,自定义手势

掌握基本动画,动画原理

3.2Controller

熟悉基本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逆向与安全

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容