iOS開發(fā)路線簡述

iOS系統(tǒng)以及iPhone的出來都要感謝喬布斯,一個完美主義者,從如此優(yōu)秀的iOS系統(tǒng)和iPhone就可以看出來。下面就簡單介紹一下我iOS開發(fā)的感受记餐,也是學習iOS開發(fā)的一個體系架構(gòu)。

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

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

標準的配置是MacOSX+Xcode薇正。

MacOSX的話首選用蘋果電腦片酝,macmini最便宜只要4000多就好了然后自己配一個顯示器,macbookpro 也可以挖腰,不推薦使用macbookair雕沿。還有很多人使用黑蘋果或者虛擬機甚至在windows上裝一些工具都是不可取的。

另外官翻版的也可以去買猴仑,很便宜就可以買到好機子审轮,官翻版肥哎。

Xcode這個開發(fā)工具自己繼承了iPhoneSDK,所以不用單獨下載SDK疾渣。調(diào)試的模擬器可以從Xcode里面下載不同版本的模擬器篡诽。

1.2 賬號 證書 上架 等

iOS調(diào)試真機是需要證書的,所以這個時候需要從申請一個iDP賬號榴捡,不過僅僅需要調(diào)試的話杈女,某寶上有很多賣20幾塊的證書。應用上傳appstore的話有很多種方法吊圾,證書分為企業(yè)和個人达椰,個人的可以到appstore,企業(yè)是不可以的项乒。

2 Obejct-C語言

Object-C語言通常寫作objective-c或者obj-c啰劲,是根據(jù)C語言所衍生出來的語言,繼承了C語言的特性檀何,是擴充C的面向?qū)ο缶幊陶Z言蝇裤, 它能夠和C、C++混合編程埃碱。OC是一個編譯型的語言猖辫,通過gcc編譯器把object-c代碼編譯成機器指令。關(guān)于基本概念可以參考砚殿,十分鐘讓你明白Objective-C的語法(和Java啃憎、C++的對比)

2.1動態(tài)特性

Object-C具備一些動態(tài)特性似炎,包括動態(tài)類型辛萍、動態(tài)綁定、動態(tài)加載羡藐,也就是Object-C在運行時才能知道一些對象的類型以及所調(diào)用的方法贩毕。

2.2內(nèi)存管理

OC是使用引用計數(shù)原則,現(xiàn)在OC引入ARC(自動引用計數(shù)原則)仆嗦。引用計數(shù)有幾個規(guī)則辉阶,一是誰創(chuàng)建誰釋放,通過alloc瘩扼、new和copy創(chuàng)建對象谆甜, 然后調(diào)用release或者autorelease去釋放對象,第二是集绰,除了alloc规辱、new和copy之外創(chuàng)建的對象都是autorelease的, 第三誰retain了栽燕,誰釋放罕袋。

2.3 一些語言特性

OC首先是只有單一繼承改淑,沒有多重繼承。

屬性訪問浴讯,@property加上@synthesize使用后能夠自動生成setter和getter方法朵夏。

category,中文一般叫做類別榆纽,他能夠為現(xiàn)有的類提供新的方法侍郭,他將類的實現(xiàn)分散到多個不同的文件或框架中,創(chuàng)建對私有方法的前向引用掠河,向?qū)ο筇砑臃钦絽f(xié)議。

block語法猛计,塊唠摹,他通常代表小段的自包含的代碼片段,因此奉瘤,他們封裝為可以并行執(zhí)行的工作單元額外有用勾拉,還可以用于在集合中進行遍歷,或者在其他操作 完成時作為回調(diào)盗温。塊代替?zhèn)鹘y(tǒng)回調(diào)函數(shù)的意義有兩個:一是他們允許在方法實現(xiàn)的調(diào)用中就近寫入代碼藕赞,而且塊經(jīng)常被作為框架中一些方法的參數(shù);二是他們可以訪 問本地變量卖局。

OC中有很多類是以NS開頭的斧蜕,那是cocoa層里面Foundation框架的類庫。

3 iOS開發(fā)

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

iOS的系統(tǒng)架構(gòu)分為四個層次:核心操作系統(tǒng)層(Core OS layer)砚偶、核心服務層(Core Services layer)批销、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。每層都包含很多系統(tǒng)框架染坯,例如著名的UIKit框架就是在cocoa touch均芽。

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

最基礎(chǔ)的是MVC模式,就是把項目分為Model单鹿、View和Controller三層進行管理掀宋。

常用的還有代理模式,通過協(xié)議和block實現(xiàn)仲锄。觀察者模式的話體現(xiàn)在了KVO和notification上了劲妙。target-action模式是OC中 非常常見的對象之間方法調(diào)用的方式,一般在和UI打交道的時候處理各種GUI上的事件會利用到這種模式昼窗,他通常會有一個target作為消息的接收者是趴。單 例模式,使得單例對象在項目中只會創(chuàng)建一次澄惊。工廠模式唆途,是一個類族的概念富雅,很符合敏捷軟件開發(fā)的開放封閉原則。關(guān)于各種設(shè)計模式肛搬,可以看卡奴達摩的專欄没佑。

3.3 Interface Builder和Storyboard

一般寫iOS的UI有三種方式。xib温赔,Storyboard以及代碼創(chuàng)建蛤奢。

我之前自學用了一會的xib,之后一直用代碼創(chuàng)建陶贼,代碼更容易區(qū)做多語言版本啤贩,而且

xib啟動需要事件比用代碼直接寫慢,xib文件比代碼建立UI文件也大拜秧。

具體對比可以看喵神的博客代碼手寫痹屹,xib和StoryBoard間的博弈

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

UIKit是最常用的框架,主要是用來做UI的枉氮。包括視圖UIButton志衍、UILabel,控制器UIViewController等聊替,還有一些觸摸事件楼肪、手勢等。

QuartzCore惹悄、CoreAnimation框架是一些繪圖春叫、動畫的類庫。

第三方庫的話俘侠,可以查看github上object -c的倉庫排名象缀,Search · GitHub

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

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

NSKeyedArchiver央星,采用歸檔的形式來保存數(shù)據(jù),該數(shù)據(jù)對象需要遵守NSCoding協(xié)議惫东。歸檔形式保存數(shù)據(jù)只能一次性歸檔保存以及一次性解壓摊灭,只能針對小量誰痪枫,而且數(shù)據(jù)操作笨拙掀虎,即如果想改動數(shù)據(jù)的某一小部分孵坚,需要解壓整個數(shù)據(jù)或者歸檔整個數(shù)據(jù)。

NSUserDefaults滞时,用來保存應用程序設(shè)置和屬性叁幢。

第三種,Write寫入文件坪稽。

第四種曼玩,相對前兩種更為復雜鳞骤,但也最好用。SQLite黍判,可以自己封裝豫尽,也可以使用FMDataBase等第三方封裝庫,還可以使用系統(tǒng)的CoreData顷帖。

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

iOS的數(shù)據(jù)通信有幾種方式美旧,應用層的HTTP,以及傳輸層的封裝TCP或者UDP的socket接口贬墩,還有就是藍牙通訊榴嗅。

HTTP的網(wǎng)絡(luò)服務一般可以用post、get或者soap等方式請求數(shù)據(jù)陶舞,可以用系統(tǒng)的NSURL也可以用第三方類庫(MKNetWorkKit录肯、AFNetWorking),這兩種類庫都可以做緩存吊说,數(shù)據(jù)交換的格式一般有JSon和xml。

socket可以通過c語言的socket和CoreFoundation框架的CFNetwork實現(xiàn)优炬,也可以用第三方類庫asyncsocket颁井。

藍牙4.0的話使用的是CoreBluetooth框架。

3.7多線程編程

iOS的多線程有NSThread蠢护、NSOperation以及GCD雅宾。NSThread比其他兩個輕量級,但是需要自己管理線程的生命周期葵硕,線程同步眉抬。 線程同步對數(shù)據(jù)加鎖會有一定的系統(tǒng)開銷。operation則不需要關(guān)心線程管理懈凹,GCD是一個替代NSThread和operation的技術(shù)蜀变。

3.8iPad開發(fā)

iPad和iPhone開發(fā)是異曲同工,但是不要試圖去適配iPad和iPhone介评,因為他們的UI差別太大库北。

3.9其他

iOS的地圖是使用MapKit框架,定位用CoreLocation们陆。

iOS有一個云端機制iCloud寒瓦,iOS還有一個推送機制,可以由服務器推送消息到手機應用程序坪仇,iOS還可以做本地化杂腰。

iOS有一些內(nèi)置的傳感器可以利用起來編程,比如三軸加速傳感器椅文,用來測加速度的喂很,還有陀螺感應器惜颇,測角速度,感知移動的恤筛。

關(guān)于iOS的相機官还、相冊以及音視頻都有相應的類庫。

4 工具

第一是多人協(xié)作的問題毒坛,你可以用svn或者git望伦,git是比較流行的,但是大多數(shù)的公司還在用svn煎殷;

第二屯伞,iOS的數(shù)據(jù)持久化有很多方案,最高效的就是sqlite豪直,在mac上有很多sqlite的可視化管理工具劣摇,我用的是sqlitemanager。

第三弓乙,關(guān)于查看模擬器或者真機的沙盒內(nèi)容末融,模擬器可以使用SimPholders,真機可以用ifunbox暇韧。

第四勾习,屏幕取色工具,sip懈玻。

第五巧婶,另外xcode也可以安裝很多輔助工具,例如涂乌,格式化xcode代碼的ClangFormat艺栈,第三方庫管理工具CocoaPods,壓力測試工具uiautomonkey湾盒。

第六湿右,移動開發(fā)有一些常用的平臺的,比提供社會化分享罚勾、統(tǒng)計分析等的友盟诅需,sharesdk;內(nèi)測平臺fir.im,蒲公英荧库;云測平臺testin堰塌;廣告平臺google的admob

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

關(guān)于看書,對于某一個東西入門的化分衫,其實不適合看書场刑,或者你想看隨便挑一本入門的書就跟著看就好了。

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

這里有一個別人整理的iOS學習資料瞎疼,

馬上著手開發(fā) iOS 應用程序(apple官方整理)科乎,

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

iOS資源 – Code4App.com贼急,

iOS開發(fā)60分鐘入門茅茂,

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末太抓,一起剝皮案震驚了整個濱河市空闲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌走敌,老刑警劉巖碴倾,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掉丽,居然都是意外死亡跌榔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門捶障,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矫户,“玉大人,你說我怎么就攤上這事残邀。” “怎么了柑蛇?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵芥挣,是天一觀的道長。 經(jīng)常有香客問我耻台,道長空免,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任盆耽,我火速辦了婚禮蹋砚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摄杂。我一直安慰自己坝咐,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布析恢。 她就那樣靜靜地躺著墨坚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪映挂。 梳的紋絲不亂的頭發(fā)上泽篮,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天盗尸,我揣著相機與錄音,去河邊找鬼帽撑。 笑死泼各,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的亏拉。 我是一名探鬼主播扣蜻,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼专筷!你這毒婦竟也來了弱贼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤磷蛹,失蹤者是張志新(化名)和其女友劉穎吮旅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體味咳,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡庇勃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了槽驶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片责嚷。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掂铐,靈堂內(nèi)的尸體忽然破棺而出罕拂,到底是詐尸還是另有隱情,我是刑警寧澤全陨,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布爆班,位于F島的核電站,受9級特大地震影響辱姨,放射性物質(zhì)發(fā)生泄漏柿菩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一雨涛、第九天 我趴在偏房一處隱蔽的房頂上張望枢舶。 院中可真熱鬧,春花似錦替久、人聲如沸凉泄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旧困。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吼具,已是汗流浹背僚纷。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拗盒,地道東北人怖竭。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像陡蝇,于是被迫代替她去往敵國和親痊臭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫登夫、插件广匙、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評論 4 62
  • “快看,阿夙又在葬花了……” “是那個奇怪的女人啊恼策⊙恢拢” “……” 一群下了學的孩童們路過了一家小院,談笑的話語一瞬...
    狐則閱讀 265評論 0 0
  • 等了十二年的《大魚海棠》終于上映了涣楷,北冥有魚分唾,其名為鯤。鯤之大,不知其幾千里也狮斗。表現(xiàn)的是莊子《逍遙游》物我兩忘的境...
    紙影閱讀 294評論 0 1
  • 1.心智容量有限 營銷人員設(shè)法影響人們的心智,但兩者往往沖突不斷沙峻。營銷人員試圖向心智灌輸各種觀點睦授,但不幸的是,人們...
    萬杰博客閱讀 545評論 0 0