iOS開發(fā)路線簡(jiǎn)述

iOS系統(tǒng)以及iPhone的出來都要感謝喬布斯魂莫,一個(gè)完美主義者还蹲,從如此優(yōu)秀的iOS系統(tǒng)和iPhone就可以看出來。下面就簡(jiǎn)單介紹一下我iOS開發(fā)的感受耙考,也是學(xué)習(xí)iOS開發(fā)的一個(gè)體系架構(gòu)谜喊。

1 iOS開發(fā)環(huán)境

1.1 開發(fā)環(huán)境

標(biāo)準(zhǔn)的配置是MacOSX+Xcode。

MacOSX的話首選用蘋果電腦倦始,macmini最便宜只要4000多就好了然后自己配一個(gè)顯示器斗遏,macbookpro 也可以,不推薦使用macbookair鞋邑。還有很多人使用黑蘋果或者虛擬機(jī)甚至在windows上裝一些工具都是不可取的诵次。

另外官翻版的也可以去買,很便宜就可以買到好機(jī)子枚碗,官翻版逾一。

Xcode這個(gè)開發(fā)工具自己繼承了iPhoneSDK,所以不用單獨(dú)下載SDK肮雨。調(diào)試的模擬器可以從Xcode里面下載不同版本的模擬器遵堵。

1.2 賬號(hào) 證書 上架 等

iOS調(diào)試真機(jī)是需要證書的,所以這個(gè)時(shí)候需要從申請(qǐng)一個(gè)iDP賬號(hào)怨规,不過僅僅需要調(diào)試的話陌宿,某寶上有很多賣20幾塊的證書。應(yīng)用上傳appstore的話有很多種方法波丰,證書分為企業(yè)和個(gè)人限番,個(gè)人的可以到appstore,企業(yè)是不可以的呀舔。

2 Obejct-C語言

Object-C語言通常寫作objective-c或者obj-c弥虐,是根據(jù)C語言所衍生出來的語言扩灯,繼承了C語言的特性,是擴(kuò)充C的面向?qū)ο缶幊陶Z言霜瘪, 它能夠和C珠插、C++混合編程。OC是一個(gè)編譯型的語言颖对,通過gcc編譯器把object-c代碼編譯成機(jī)器指令捻撑。關(guān)于基本概念可以參考,十分鐘讓你明白Objective-C的語法(和Java缤底、C++的對(duì)比)?顾患。

2.1動(dòng)態(tài)特性

Object-C具備一些動(dòng)態(tài)特性,包括動(dòng)態(tài)類型个唧、動(dòng)態(tài)綁定江解、動(dòng)態(tài)加載,也就是Object-C在運(yùn)行時(shí)才能知道一些對(duì)象的類型以及所調(diào)用的方法徙歼。

2.2內(nèi)存管理

OC是使用引用計(jì)數(shù)原則犁河,現(xiàn)在OC引入ARC(自動(dòng)引用計(jì)數(shù)原則)。引用計(jì)數(shù)有幾個(gè)規(guī)則魄梯,一是誰創(chuàng)建誰釋放桨螺,通過alloc、new和copy創(chuàng)建對(duì)象酿秸, 然后調(diào)用release或者autorelease去釋放對(duì)象灭翔,第二是,除了alloc辣苏、new和copy之外創(chuàng)建的對(duì)象都是autorelease的肝箱, 第三誰retain了,誰釋放考润。

2.3 一些語言特性

OC首先是只有單一繼承狭园,沒有多重繼承。

屬性訪問糊治,@property加上@synthesize使用后能夠自動(dòng)生成setter和getter方法唱矛。

category,中文一般叫做類別井辜,他能夠?yàn)楝F(xiàn)有的類提供新的方法绎谦,他將類的實(shí)現(xiàn)分散到多個(gè)不同的文件或框架中,創(chuàng)建對(duì)私有方法的前向引用粥脚,向?qū)ο筇砑臃钦絽f(xié)議窃肠。

block語法,塊刷允,他通常代表小段的自包含的代碼片段冤留,因此碧囊,他們封裝為可以并行執(zhí)行的工作單元額外有用,還可以用于在集合中進(jìn)行遍歷纤怒,或者在其他操作 完成時(shí)作為回調(diào)糯而。塊代替?zhèn)鹘y(tǒng)回調(diào)函數(shù)的意義有兩個(gè):一是他們?cè)试S在方法實(shí)現(xiàn)的調(diào)用中就近寫入代碼,而且塊經(jīng)常被作為框架中一些方法的參數(shù)泊窘;二是他們可以訪 問本地變量熄驼。

OC中有很多類是以NS開頭的,那是cocoa層里面Foundation框架的類庫(kù)烘豹。

3 iOS開發(fā)

3.1 iOS操作系統(tǒng)簡(jiǎn)介

iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(Core OS layer)瓜贾、核心服務(wù)層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)携悯。每層都包含很多系統(tǒng)框架祭芦,例如著名的UIKit框架就是在cocoa touch。

3.2 常用的設(shè)計(jì)模式

最基礎(chǔ)的是MVC模式蚌卤,就是把項(xiàng)目分為Model实束、View和Controller三層進(jìn)行管理奥秆。

常用的還有代理模式逊彭,通過協(xié)議和block實(shí)現(xiàn)。觀察者模式的話體現(xiàn)在了KVO和notification上了构订。target-action模式是OC中 非常常見的對(duì)象之間方法調(diào)用的方式侮叮,一般在和UI打交道的時(shí)候處理各種GUI上的事件會(huì)利用到這種模式,他通常會(huì)有一個(gè)target作為消息的接收者悼瘾。單 例模式囊榜,使得單例對(duì)象在項(xiàng)目中只會(huì)創(chuàng)建一次。工廠模式亥宿,是一個(gè)類族的概念卸勺,很符合敏捷軟件開發(fā)的開放封閉原則。關(guān)于各種設(shè)計(jì)模式烫扼,可以看卡奴達(dá)摩的專欄曙求。

3.3 Interface Builder和Storyboard

一般寫iOS的UI有三種方式。xib映企,Storyboard以及代碼創(chuàng)建悟狱。

我之前自學(xué)用了一會(huì)的xib,之后一直用代碼創(chuàng)建堰氓,代碼更容易區(qū)做多語言版本挤渐,而且

xib啟動(dòng)需要事件比用代碼直接寫慢,xib文件比代碼建立UI文件也大双絮。

具體對(duì)比可以看喵神的博客代碼手寫浴麻,xib和StoryBoard間的博弈

3.4 常用系統(tǒng)框架和第三方庫(kù)

UIKit是最常用的框架得问,主要是用來做UI的。包括視圖UIButton软免、UILabel椭赋,控制器UIViewController等,還有一些觸摸事件或杠、手勢(shì)等哪怔。

QuartzCore、CoreAnimation框架是一些繪圖向抢、動(dòng)畫的類庫(kù)认境。

第三方庫(kù)的話,可以查看github上object -c的倉(cāng)庫(kù)排名挟鸠,Search · GitHub?叉信。

3.5數(shù)據(jù)存儲(chǔ)

iOS數(shù)據(jù)存儲(chǔ)主要有四種方式。

NSKeyedArchiver艘希,采用歸檔的形式來保存數(shù)據(jù)硼身,該數(shù)據(jù)對(duì)象需要遵守NSCoding協(xié)議。歸檔形式保存數(shù)據(jù)只能一次性歸檔保存以及一次性解壓覆享,只能針對(duì)小量誰佳遂,而且數(shù)據(jù)操作笨拙,即如果想改動(dòng)數(shù)據(jù)的某一小部分撒顿,需要解壓整個(gè)數(shù)據(jù)或者歸檔整個(gè)數(shù)據(jù)丑罪。

NSUserDefaults,用來保存應(yīng)用程序設(shè)置和屬性凤壁。

第三種吩屹,Write寫入文件。

第四種拧抖,相對(duì)前兩種更為復(fù)雜煤搜,但也最好用。SQLite唧席,可以自己封裝擦盾,也可以使用FMDataBase等第三方封裝庫(kù),還可以使用系統(tǒng)的CoreData袱吆。

3.6數(shù)據(jù)通信

iOS的數(shù)據(jù)通信有幾種方式厌衙,應(yīng)用層的HTTP,以及傳輸層的封裝TCP或者UDP的socket接口绞绒,還有就是藍(lán)牙通訊婶希。

HTTP的網(wǎng)絡(luò)服務(wù)一般可以用post、get或者soap等方式請(qǐng)求數(shù)據(jù)蓬衡,可以用系統(tǒng)的NSURL也可以用第三方類庫(kù)(MKNetWorkKit喻杈、AFNetWorking)彤枢,這兩種類庫(kù)都可以做緩存,數(shù)據(jù)交換的格式一般有JSon和xml筒饰。

socket可以通過c語言的socket和CoreFoundation框架的CFNetwork實(shí)現(xiàn)缴啡,也可以用第三方類庫(kù)asyncsocket。

藍(lán)牙4.0的話使用的是CoreBluetooth框架瓷们。

3.7多線程編程

iOS的多線程有NSThread业栅、NSOperation以及GCD。NSThread比其他兩個(gè)輕量級(jí)谬晕,但是需要自己管理線程的生命周期碘裕,線程同步。 線程同步對(duì)數(shù)據(jù)加鎖會(huì)有一定的系統(tǒng)開銷攒钳。operation則不需要關(guān)心線程管理帮孔,GCD是一個(gè)替代NSThread和operation的技術(shù)。

3.8iPad開發(fā)

iPad和iPhone開發(fā)是異曲同工不撑,但是不要試圖去適配iPad和iPhone文兢,因?yàn)樗麄兊腢I差別太大。

3.9其他

iOS的地圖是使用MapKit框架焕檬,定位用CoreLocation姆坚。

iOS有一個(gè)云端機(jī)制iCloud,iOS還有一個(gè)推送機(jī)制揩页,可以由服務(wù)器推送消息到手機(jī)應(yīng)用程序旷偿,iOS還可以做本地化烹俗。

iOS有一些內(nèi)置的傳感器可以利用起來編程爆侣,比如三軸加速傳感器,用來測(cè)加速度的幢妄,還有陀螺感應(yīng)器兔仰,測(cè)角速度,感知移動(dòng)的蕉鸳。

關(guān)于iOS的相機(jī)乎赴、相冊(cè)以及音視頻都有相應(yīng)的類庫(kù)。

4 工具

第一是多人協(xié)作的問題潮尝,你可以用svn或者git榕吼,git是比較流行的,但是大多數(shù)的公司還在用svn勉失;

第二羹蚣,iOS的數(shù)據(jù)持久化有很多方案,最高效的就是sqlite乱凿,在mac上有很多sqlite的可視化管理工具顽素,我用的是sqlitemanager咽弦。

第三,關(guān)于查看模擬器或者真機(jī)的沙盒內(nèi)容胁出,模擬器可以使用SimPholders型型,真機(jī)可以用ifunbox。

第四全蝶,屏幕取色工具闹蒜,sip。

第五抑淫,另外xcode也可以安裝很多輔助工具嫂用,例如,格式化xcode代碼的ClangFormat丈冬,第三方庫(kù)管理工具CocoaPods嘱函,壓力測(cè)試工具uiautomonkey。

第六埂蕊,移動(dòng)開發(fā)有一些常用的平臺(tái)的往弓,比提供社會(huì)化分享、統(tǒng)計(jì)分析等的友盟蓄氧,sharesdk函似;內(nèi)測(cè)平臺(tái)fir.im,蒲公英;云測(cè)平臺(tái)testin喉童;廣告平臺(tái)google的admob

5 書籍 網(wǎng)站推薦

關(guān)于看書撇寞,對(duì)于某一個(gè)東西入門的化,其實(shí)不適合看書堂氯,或者你想看隨便挑一本入門的書就跟著看就好了蔑担。

code4appiOS開發(fā)社區(qū) – 開源中國(guó)社區(qū)咽白,cocoachina是國(guó)內(nèi)常用的三大代碼庫(kù)網(wǎng)站啤握,國(guó)外我會(huì)上版本控制的網(wǎng)站github,并且歡迎關(guān)注我的github,coderyi

這里有一個(gè)別人整理的iOS學(xué)習(xí)資料晶框,

馬上著手開發(fā) iOS 應(yīng)用程序?(apple官方整理)排抬,

Aufree/trip-to-iOS · GitHub(資料最全) ,

iOS資源 – Code4App.com?授段,

iOS開發(fā)60分鐘入門?蹲蒲,

iOS開發(fā)從新手到上架

6 iOS學(xué)習(xí)路線圖

最后附贈(zèng)一張傳智播客的iOS學(xué)習(xí)路線圖 侵贵,這一些東西只是iOS開發(fā)的冰山一角届搁,哪一東西要做好都要學(xué)很多東西,學(xué)好最重要的就是你對(duì)他的熱情,路漫漫其修遠(yuǎn)兮咖祭,吾將上下而求索掩宜。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市么翰,隨后出現(xiàn)的幾起案子牺汤,更是在濱河造成了極大的恐慌,老刑警劉巖浩嫌,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檐迟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡码耐,警方通過查閱死者的電腦和手機(jī)追迟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骚腥,“玉大人敦间,你說我怎么就攤上這事∈” “怎么了廓块?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)契沫。 經(jīng)常有香客問我带猴,道長(zhǎng),這世上最難降的妖魔是什么懈万? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任拴清,我火速辦了婚禮,結(jié)果婚禮上会通,老公的妹妹穿的比我還像新娘口予。我一直安慰自己,他們只是感情好渴语,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布苹威。 她就那樣靜靜地躺著,像睡著了一般驾凶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掷酗,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天调违,我揣著相機(jī)與錄音,去河邊找鬼泻轰。 笑死技肩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虚婿,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼旋奢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了然痊?” 一聲冷哼從身側(cè)響起至朗,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剧浸,沒想到半個(gè)月后锹引,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唆香,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年嫌变,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬它。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腾啥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出冯吓,到底是詐尸還是另有隱情碑宴,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布桑谍,位于F島的核電站延柠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏锣披。R本人自食惡果不足惜贞间,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雹仿。 院中可真熱鬧增热,春花似錦、人聲如沸胧辽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)邑商。三九已至摄咆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間人断,已是汗流浹背吭从。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恶迈,地道東北人涩金。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親步做。 傳聞我的和親對(duì)象是個(gè)殘疾皇子副渴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • iOS系統(tǒng)以及iPhone的出來都要感謝喬布斯,一個(gè)完美主義者全度,從如此優(yōu)秀的iOS系統(tǒng)和iPhone就可以看出來煮剧。...
    評(píng)評(píng)分分閱讀 780評(píng)論 1 13
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件讼载、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • 驚天動(dòng)地轿秧,只可惜天地亦無情。 不敢有風(fēng)咨堤,不敢有聲菇篡,這愛情無人證。 -《無人之境》 [1] 人城一喘。 新世界中獨(dú)一無二...
    吳絳綰閱讀 418評(píng)論 0 2
  • 小Q最近在謀劃一個(gè)大事情,當(dāng)然是對(duì)她自己來說的大事情萎战。 什么事情呢咐容?辭掉工作,考研蚂维。為什么戳粒?因?yàn)樗X得目前的待遇不...
    然后十七閱讀 309評(píng)論 0 4
  • 從未想過凌晨一點(diǎn)的夜晚如此熱鬧。 從窗口向外望虫啥,幾幢大樓散布著點(diǎn)點(diǎn)星光蔚约。天空霧蒙蒙的,透著微微紅光...
    dicky影子閱讀 207評(píng)論 0 0