原文鏈接:http://blog.csdn.net/xotty/article/details/52620505
學(xué)習(xí)ios開發(fā)溅话,從哪兒學(xué)起?都要學(xué)哪些知識(shí)歌焦?如何才算掌握或精通ios開發(fā)飞几?筆者根據(jù)自己多年的ios開發(fā)經(jīng)驗(yàn),給出一些體會(huì)独撇,以便為立志成為ios開發(fā)精英的人員快速找到一條學(xué)習(xí)之路屑墨。本文是以最新上市的ios10 為依據(jù)的。
一纷铣、ios總體知識(shí)架構(gòu)
要全面掌握ios開發(fā)技術(shù)卵史,需要學(xué)習(xí)和掌握下列幾方面的知識(shí)和技巧:
1.開發(fā)語言:Objective-C或Swift。
2.ios SDK:由蘋果官方提供的一些列從初級(jí)到高級(jí)搜立,并不斷更新和擴(kuò)展的API以躯。包括框架(Framework)和動(dòng)態(tài)庫(Dynamic Library)兩種形式。
3.App架構(gòu):APP的組成儒拂、APP生命周期及各種狀態(tài)轉(zhuǎn)換寸潦、APP界面基本原則和跳轉(zhuǎn)規(guī)則等色鸳。
4.集成開發(fā)測(cè)試環(huán)境Xcode:包括編碼社痛、編譯、運(yùn)行命雀、測(cè)試蒜哀、UI可視化構(gòu)建、APP Sotre發(fā)布等工作均可以在此環(huán)境下完成吏砂。
圖1:ios知識(shí)總體架構(gòu)
上述四個(gè)方面的知識(shí)對(duì)于ios程序開發(fā)缺一不可撵儿。其中開發(fā)語言是基礎(chǔ),ios SDK是核心狐血,Xcode是工具淀歇,App架構(gòu)是必須遵循的基本規(guī)則。
二匈织、ios特色關(guān)鍵知識(shí)點(diǎn)
下列知識(shí)點(diǎn)大部分是ios特有的浪默,在iOS 開發(fā)中起著非常重要的作用牡直,需要仔細(xì)學(xué)習(xí)領(lǐng)會(huì)。其中藍(lán)色字體為蘋果官方提供的相應(yīng)技術(shù)指南文件纳决,對(duì)這些知識(shí)點(diǎn)均做了全面深入的闡述碰逸,是ios開發(fā)人員學(xué)習(xí)的第一手資料。
1.委托(Delegate):Concepts in Objective-C Programming
2.通知(Notification):Notifications;Local and Remote Notification Programming Guide
3..目標(biāo)/動(dòng)作(Target/Action):Target-Action in UIKit
4.沙盒技術(shù):App Sandbox Design Guide
5.MVC架構(gòu):Concepts in Objective-C Programming;Design Guidelines for MVC Applications
6.iCloud存儲(chǔ):Transferring Data to and from iCloud
7.塊(Block):Creating a Block阔加;
8.自動(dòng)布局(Auto Layout):Auto Layout Guide
9.KVO/KVC:Key-Value Observing Programming Guide
10.多任務(wù)(Multitasking):Concurrency Programming Guide
上述知識(shí)點(diǎn)1-5是基礎(chǔ)性的饵史,6~10是提高性的。理解和掌握了這些知識(shí)點(diǎn)才能更加靈活和有效地進(jìn)行ios開發(fā)胜榔。除了上述技術(shù)指南外胳喷,下列基礎(chǔ)性的技術(shù)指南也建議開發(fā)者認(rèn)真學(xué)習(xí):
iOS Human Interface Guidelines
App Programming Guide for iOS
View Controller ProgrammingGuide for iOS
Xcode Overview
Debugging?with Xcode
Testing with Xcode
App Distribution Guide
Internationalization and Localization Guide
Programmming With Objective-C或The Swift Programming Language (Swift 3)
Object-Oriented Programmming With Objective-C
Adopting Modern Objective-C
三、iOS Framework
ios技術(shù)體系按照官方說法分為下列四層:
圖2:ios技術(shù)層次結(jié)構(gòu)
這些技術(shù)被打包成現(xiàn)成的Framework夭织,供開發(fā)者直接調(diào)用厌蔽。ios10共有91個(gè)Framework,按照其功能可以分成基礎(chǔ)類(Foundation)摔癣、數(shù)據(jù)類(DATA)奴饮、網(wǎng)絡(luò)類(NET)、圖形動(dòng)畫類(GRAPH)择浊、音視頻類(AV)戴卜、系統(tǒng)類(SYSTEM)、蘋果特定業(yè)務(wù)接口類(ASI)琢岩、測(cè)試類(TEST)共八個(gè)類別投剥。按照其難易程度可以分為初級(jí)、中級(jí)和高級(jí)担孔。具體分布如下圖(圖中數(shù)字為該類型和等級(jí)Framework數(shù)量):
圖3:ios Framework分類與分布
學(xué)習(xí)ios開發(fā)應(yīng)由淺入深江锨,循序漸進(jìn)。掌握了初級(jí)框架就可以編寫簡單的ios程序了糕篇,包括簡單的本地?cái)?shù)據(jù)啄育、圖片、照片拌消、音視頻挑豌、地址簿、郵件墩崩、日程等的讀寫和顯示氓英。中級(jí)框架涉及面最廣,包括所有類型框架鹦筹,這里FOUNDATION铝阐、DATA、NET和TEST類又是基本的铐拐,涉及復(fù)雜數(shù)據(jù)類型徘键、文件芳誓、數(shù)據(jù)庫、各種網(wǎng)絡(luò)連接啊鸭、單元測(cè)試等锹淌,應(yīng)盡量全面掌握,其它類型的框架可以根據(jù)興趣或工作任務(wù)逐漸去學(xué)習(xí)或掌握赠制。高級(jí)框架以圖形赂摆、音視頻內(nèi)容為主,主要是提供了更低層和更靈活的硬件操作接口钟些。僅在必要時(shí)再去深入學(xué)習(xí)即可烟号。由此可見,一個(gè)初級(jí)ios開發(fā)者應(yīng)掌握至少15個(gè)框架政恍,一個(gè)中級(jí)ios開發(fā)者應(yīng)掌握40~50個(gè)框架汪拥,一個(gè)高級(jí)ios開發(fā)者應(yīng)掌握50~60個(gè)框架(至少包含10個(gè)高級(jí)框架)。具體各Framework的功能和分類見下表:
表1:iOS Framework 分類和簡述
綜上所述篙耗,ios開發(fā)最基礎(chǔ)的就是Objective-C或Swift語言迫筑、Foundation和UIKit框架中的基本內(nèi)容及Xcode的簡單使用;進(jìn)一步就是數(shù)據(jù)庫宗弯、網(wǎng)絡(luò)脯燃、圖形動(dòng)畫、音視頻蒙保、系統(tǒng)安全和ios專用業(yè)務(wù)接口(如地圖辕棚、加速器、健康邓厕、語音識(shí)別逝嚎、Web.....)的調(diào)用和多線程的使用,此時(shí)對(duì)Xcode使用會(huì)增加單元測(cè)試详恼、性能調(diào)優(yōu)补君、Bug追蹤等高級(jí)功能;最終達(dá)到能使用低層的Framework或動(dòng)態(tài)庫優(yōu)化硬件性能或靈活處理復(fù)雜業(yè)務(wù)的目標(biāo)单雾。
ios開發(fā)學(xué)習(xí)的最好資料就是蘋果的官方文檔赚哗,包括各種技術(shù)指南她紫、API參考文檔和示例程序(Sample Code)硅堆,要想成為高手,沒有捷徑贿讹,必須靜下心來一點(diǎn)點(diǎn)看渐逃。本文只是將其做了一個(gè)分門別類的索引和說明,按照這個(gè)索引和自己的目標(biāo)循序漸進(jìn)地學(xué)習(xí)民褂,你一定會(huì)更快茄菊、更好地成為ios開發(fā)高手疯潭!
以上所言均為個(gè)人學(xué)習(xí)體會(huì),難免疏漏面殖,不當(dāng)之處敬請(qǐng)批評(píng)指正竖哩!