1. 類比
初學Ios開發,首先應該瞭解開發的應用所生存的環境。就像跳槽到某個公司做一枚碼農,你得先瞭解公司的各個部門,以便以後出了問題知道應該找哪個部門。Ios應用所生存的環境正是Ios作業系統。iOS的系統架構分為四個層次:核心作業系統層(Core OS layer)、核心服務層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer),如:
2. Core OS—進階管理層
位於iOS系統架構最下面的一層是核心作業系統層,它包括記憶體管理、檔案系統、電源管理以及一些其他的作業系統任務。它可以直接和硬體裝置進行互動。iPhone OS提供了許多訪問作業系統低層功能的介面集,iPhone 應用通過LibSystem庫來訪問這些功能,這些功能都會通過C語言的API來提供。如同公司的進階管理層,一起指令都是從這裡下達,制定公司發展戰略,負責幫公司找錢,負責公司對外重大合作,以及公司內部組織。作為一個產品部的屌絲,正常情況下是不用接觸這些人的,但是也還是有機會接觸到,可以通過一些通道。正常情況下,App開發也是不和這些直接打交道,但是他們也提供很一些介面集,以備非正常情況下調用。不過最好還是不要和他們直接打交道,大家思維方式不一樣嘛(他們是C的思維,我們是Object—C)。
3. Core Service-財務部
加入一家公司,一是金錢,二是發展;發展還是太虛了,所以更多的是奔著錢,沒辦法,生存嘛,當然是給的越多越好。Core Services在Core OS基礎上提供了更為豐富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation,就是因為它提供了一系列處理字串,排列,組合,日曆,時間等等的準系統.Foundation是屬於Objective-C的API,Core Fundation是屬於C的API。Foundation.Framework是我們在做App開發過程中用的比較多的基礎架構,就像我們工作的結果最終還是轉化為工資,每個月都等著發工資,Foundation.Framework做開發App還是用的比較多的。
4. Media -人事部
通過它我們可以在應用程式中使用各種媒體檔案,進行音頻與視頻的錄製,圖形的繪製,以及製作基礎的動畫效果。它包括以下這些組件:Core Audio , OpenGL, Audio MixingAudio Recording ,Video Playback ,JPG,PNG,TIFFPDF ,Quartz ,Core Animation,OpenGL ES...當我們有一些日常有疑問的事情,例如公司的社保是如何交的,公積金交的情況,這些事情應該是問人事部了,當然你要提加薪,也是找人事部的吧。
5. Cocoa Touch-開發部
大部分我們的工作是跟開發部的同事打交道。這一層為我們的應用程式開發提供了各種有用的架構,並且大部分與使用者介面有關,本質上來說它負責使用者在iOS裝置上的觸摸互動操作。它是Objective-C的API,其中最核心的部分是UIKit.Framework,應用程式介面上的各種組件,全是由它來提供呈現的, 除此之外它還負責處理螢幕上的多點觸摸事件,文字的輸出,圖片,網頁的顯示,相機或檔案的存取,以及加速感應的部分等。我們從事Ios開發,大部分工作是實現各種互動或者說Ui介面。
總結:當我們要開發iPhone程式的時候,首先要現從上層入手,優先使用Objective-C封裝後的庫,也就是通過 UIKit.framework搭配Foundation.framework來進行開發,而當面對一些比較複雜的功能時,像是多媒體的處理或是繪圖,再往下層去找尋相關的framwork開完成。