iOS開發學習 階段過程簡述

來源:互聯網
上載者:User

iOS開發學習 階段過程簡述
下面就簡單介紹一下我iOS開發的感受,也是學習iOS開發的一個體系架構。 1 iOS開發環境 1.1 開發環境 標準的配置是Mac OS X + Xcode。 MacOSX的話首選用蘋果電腦,macmini最便宜只要4000多就好瞭然後自己配一個顯示器,macbookpro 也可以,不推薦使用macbookair。還有很多人使用黑蘋果或者虛擬機器甚至在windows上裝一些工具都是不可取的。 另外官翻版的也可以去買,很便宜就可以買到好機子,官翻版。 Xcode這個開發工具自己繼承了iPhoneSDK,所以不用單獨下載SDK。調試的模擬器可以從Xcode裡面下載不同版本的模擬器。 1.2 帳號 認證 上架 等 iOS調試真機是需要認證的,所以這個時候需要從申請一個iDP帳號,不過僅僅需要調試的話,某寶上有很多賣20幾塊的認證。應用上傳appstore的話有很多種方法,認證分為企業和個人,個人的可以到appstore,企業是不可以的。 2 Obejct-C語言 Object-C語言通常寫作objective-c或者obj-c,是根據C語言所衍生出來的語言,繼承了C語言的特性,是擴充C的物件導向程式設計語言, 它能夠和C、C++混合編程。OC是一個編譯型的語言,通過gcc編譯器把object-c代碼編譯成機器指令。關於基本概念可以參考,十分鐘讓你明白Objective-C的文法(和Java、C++的對比) 。 2.1動態特性 Object-C具備一些動態特性,包括動態類型、動態綁定、動態載入,也就是Object-C在運行時才能知道一些對象的類型以及所調用的方法。 2.2記憶體管理 OC是使用引用計數原則,現在OC引入ARC(自動引用計數原則)。引用計數有幾個規則,一是誰建立誰釋放,通過alloc、new和copy建立對象, 然後調用release或者autorelease去釋放對象,第二是,除了alloc、new和copy之外建立的對象都是autorelease的, 第三誰retain了,誰釋放。 2.3 一些語言特性 OC首先是只有單一繼承,沒有多重繼承。 屬性訪問,@property加上@synthesize使用後能夠自動產生setter和getter方法。 category,中文一般叫做類別,他能夠為現有的類提供新的方法,他將類的實現分散到多個不同的檔案或架構中,建立對私人方法的前向引用,向對象添加非正式協議。 block文法,塊,他通常代表小段的自包含的程式碼片段,因此,他們封裝為可以並存執行的工作單元額外有用,還可以用於在集合中進行遍曆,或者在其他動作 完成時作為回調。塊代替傳統回呼函數的意義有兩個:一是他們允許在方法實現的調用中就近寫入代碼,而且塊經常被作為架構中一些方法的參數;二是他們可以訪 問本地變數。 OC中有很多類是以NS開頭的,那是cocoa層裡面Foundation架構的類庫。 3 iOS開發 3.1 iOS作業系統簡介 iOS的系統架構分為四個層次:核心作業系統層(Core OS layer)、核心服務層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。每層都包含很多系統架構,例如著名的UIKit架構就是在cocoa touch。 3.2 常用的設計模式 最基礎的是MVC模式,就是把項目分為Model、View和Controller三層進行管理。 常用的還有代理模式,通過協議和block實現。觀察者模式的話體現在了KVO和notification上了。target-action模式是OC中 非常常見的對象之間方法調用的方式,一般在和UI打交道的時候處理各種GUI上的事件會利用到這種模式,他通常會有一個target作為訊息的接收者。單 例模式,使得單例對象在項目中只會建立一次。原廠模式,是一個類族的概念,很符合敏捷式軟體開發 (Agile Software Development)的開放封閉原則。關於各種設計模式,可以看卡奴達摩的專欄。 3.3 Interface Builder和Storyboard 一般寫iOS的UI有三種方式。xib,Storyboard以及代碼建立。 我之前自學用了一會的xib,之後一直用代碼建立,代碼更容易區做多語言版本,而且 xib啟動需要事件比用代碼直接寫慢,xib檔案比代碼建立UI檔案也大。 具體對比可以看喵神的部落格代碼手寫,xib和StoryBoard間的博弈 3.4 常用系統架構和第三方庫 UIKit是最常用的架構,主要是用來做UI的。包括視圖UIButton、UILabel,控制器UIViewController等,還有一些觸摸事件、手勢等。 QuartzCore、CoreAnimation架構是一些繪圖、動畫的類庫。 第三方庫的話,可以查看github上object -c的倉庫排名,Search · GitHub 。 3.5資料存放區 iOS資料存放區主要有四種方式。 NSKeyedArchiver,採用歸檔的形式來儲存資料,該資料對象需要遵守NSCoding協議。歸檔形式儲存資料只能一次性歸檔儲存以及一次性解壓,只能針對小量誰,而且資料操作笨拙,即如果想改動資料的某一小部分,需要解壓整個資料或者歸檔整個資料。 NSUserDefaults,用來儲存應用程式設定和屬性。 第三種,Write寫入檔案。 第四種,相對前兩種更為複雜,但也最好用。SQLite,可以自己封裝,也可以使用FMDataBase等第三方封裝庫,還可以使用系統的CoreData。 3.6資料通訊 iOS的資料通訊有幾種方式,應用程式層的HTTP,以及傳輸層的封裝TCP或者UDP的socket介面,還有就是藍芽通訊。 HTTP的網路服務一般可以用post、get或者soap等方式請求資料,可以用系統的NSURL也可以用第三方類庫(MKNetWorkKit、AFNetWorking),這兩種類庫都可以做緩衝,資料交換的格式一般有JSon和xml。 socket可以通過c語言的socket和CoreFoundation架構的CFNetwork實現,也可以用第三方類庫asyncsocket。 藍芽4.0的話使用的是CoreBluetooth架構。 3.7多線程編程 iOS的多線程有NSThread、NSOperation以及GCD。NSThread比其他兩個輕量級,但是需要自己管理線程的生命週期,線程同步。 線程同步對資料加鎖會有一定的系統開銷。operation則不需要關心線程管理,GCD是一個替代NSThread和operation的技術。 3.8iPad開發 iPad和iPhone開發是異曲同工,但是不要試圖去適配iPad和iPhone,因為他們的UI差別太大。 3.9其他 iOS的地圖是使用MapKit架構,定位用CoreLocation。 iOS有一個雲端機制iCloud,iOS還有一個推送機制,可以由伺服器推送訊息到手機應用程式,iOS還可以做本地化。 iOS有一些內建的感應器可以利用起來編程,比如三軸加速感應器,用來測加速度的,還有陀螺感應器,測角速度,感知移動的。 關於iOS的相機、相簿以及音視頻都有相應的類庫。 4 工具 第一是多人協作的問題,你可以用svn或者git,git是比較流行的,但是大多數的公司還在用svn; 第二,iOS的資料持久化有很多方案,最高效的就是sqlite,在mac上有很多sqlite的可視化管理工具,我用的是sqlitemanager。 第三,關於查看模擬器或者真機的沙箱內容,模擬器可以使用SimPholders,真機可以用ifunbox。 第四,螢幕取色工具,sip。 第五,另外xcode也可以安裝很多協助工具輔助,例如,格式化xcode代碼的ClangFormat,第三方庫管理工具CocoaPods,壓力測試工具uiautomonkey。 第六,移動開發有一些常用的平台的,比提供社會化分享、統計分析等的友盟,sharesdk;內測平台fir.im,蒲公英;雲測平台testin;廣告平台google的admob 5 書籍 網站推薦 關於看書,對於某一個東西入門的化,其實不適合看書,或者你想看隨便挑一本入門的書就跟著看就好了。 code4app,iOS開發社區 – 開源中國社區,cocoachina是國內常用的三大程式碼程式庫網站,國外我會上版本控制的網站github,並且歡迎關注我的github,coderyi 這裡有一個別人整理的iOS學習資料, 馬上著手開發 iOS 應用程式 (apple官方整理), Aufree/trip-to-iOS · GitHub(資料最全) , iOS資源 – Code4App.com , iOS開發60分鐘入門 , iOS開發從新手到上架,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.