低層次框架提供IOS的基本服務和技術,高層次框架建立在低層次框架之上用來提供更加復雜的服務和技術,較高級的框架向較低級的結構提供面向對象的抽象。
在開發(fā)應用時應盡可能使用較高級的框架。如果要開發(fā)的國內在高層框架中沒有提供,你也可以使用較低層框架和技術。
Foundation和 UIKit框架是應用編程用到的兩個主要的框架,能夠滿足大多數(shù)應用程序的開發(fā)需求。
UIKit框架提供的類,用于創(chuàng)建基于觸摸的用戶界面。所有 iOS 應用程序都是基于 UIKit, 沒有這個框架,就無法交付應用程序。UIKit提供應用程序的基礎架構,用于在屏幕上繪圖、處理事件,以及創(chuàng)建通用用戶界面及其中元素。UIKit還通過管理屏幕上顯示的內容,來組織應用程序。
Foundation框架為所有應用程序提供基本的系統(tǒng)服務。應用程序以及 UIKit和其他框架,都是建立在 Foundation 框架的基礎結構之上。 Foundation框架提供許多基本的對象類和數(shù)據(jù)類型,使其成為應用程序開發(fā)的基礎。它還制定了一些約定(如用于取消分配等任務),使代碼更加一致,可復用性更好。
CocoaTouch Layer包含創(chuàng)建ios應用關鍵的框架。該層包含的框架定義應用的外觀,也提供基本的應用基礎和關鍵的技術支持,例如多任務、觸摸輸入、推送通知和許多其它的高級系統(tǒng)服務。在開發(fā)應用時,應當首先研究該層的技術和技術看是否能夠滿足需要。
Cocoa Touch Layer包含如下關鍵技術
1).AirDrop
AirDrop允許用戶與附近設備共享圖片、文檔、urls鏈接以及其它種類的數(shù)據(jù)。
2)、Text Kit
TextKit是處理文本和排版的一個全功能、高級別的類集合。使用Text Kit你能在段落、列或者頁上對帶有風格的文本進行布局;也能在任意區(qū)域(如圖形)周圍布局流動的文本;還能用它來管理多種字體。
開發(fā)應用時應該首先考慮使用Text Kit來進行文本呈現(xiàn),而不是Core Text。Text Kit與所有UIKit中的基于文本的控制集成允許應用更容易地創(chuàng)建、編輯、顯示和存儲文本。
3)、UIKit Dynamics
UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為。通過在應用的UI中集成真實世界行為和特性進,動畫行為為應用提供了一種增強用戶體驗的方式。
4)、Multitasking
在ios中多任務用來設計來使電池使用時間最大化。
5)、Auto Layout
自動布局幫助你使用非常少的代碼來建立動態(tài)接口。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則,這些規(guī)則表達了視圖類之間的關系,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點。
在Auto Layout中使用的實體是被稱為constraints的Objective-C對象。
6)、Storyboards
串聯(lián)圖 是設計應用用戶接口的推薦方式。串聯(lián)圖讓你在一個地方就能夠設計全部的用戶接口,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉換)。這些轉換代表用戶接口之間的交互。你可以使用XCOE來可視的定義這些轉換或者通過編程啟動它們。
你能使用一個單串聯(lián)圖文件來存儲所有的應用視圖控制器和視圖,或者使用多個視圖串聯(lián)圖文件來組織用戶接口。
在應用建立時間,Xcode讀取串聯(lián)圖文件的內容并把它分成多個能獨立加載的離散的片斷,以便獲得更好的性能。UIKit框架提供了相應的類來從程序中存取一個串聯(lián)圖的內容。
7)、UI State Preservation
UI狀態(tài)保存能夠使應用表現(xiàn)的一直運行,從而為用戶提供無縫的體驗。如果系統(tǒng)遇到內存壓力,系統(tǒng)可能安靜地強制停止一個或多個后臺應用。
當應用從前臺移到后臺時,該服務能保存應用的視圖和視圖控制器的狀態(tài)。在下次應用重新啟動時,能夠使用先前保存的狀態(tài)信息來恢復視圖和視圖控制器到它們先前的配置,使應用表現(xiàn)得好像一直在運行。
8)、Apple Push Notification Service
蘋果的推送通知服務提供了一種提示用戶關于新信息的方式,即使應用當前不在激活運行狀態(tài)。
使用該服務,你能推送文本通知,在應用圖標上增加一個標記或者在任意時間觸發(fā)聲音提示。
這些消息讓用戶知道他們應該打開應用來接收相關信息。自Ios7開始,你甚至能推送無聲的通知來讓應用知道有了新的內容可以下載。
為了使用IOS應用的推送通知,用戶需要做兩部分的工作。首先應用必須登記該通知服務以及在通知被提交時處理相關的通知數(shù)據(jù)。第二,你必須提供一個服務端的進程來產(chǎn)生通知。
服務端的進程可以使用你自己的本地服務器或者使用蘋果的推送通知服務。
9)、Local Notifications
本地通知作為推送通知機制的補充,可以給應用提供一種不依賴外部服務器產(chǎn)生本地通知的方式。
運行在后頭的應用能使用本地通知作為當重要的事件發(fā)生時引起用戶注意的一種方式。例如,運行在后臺的導航應用能使用本地通知來提示用戶什么時間該轉彎了。
應用也能調度本地通知在將來的時間提交以及使那些通知在應用不運行也能被提交。
本地通知的一個優(yōu)點是它們與你的應用是獨立的。在一個通知已被調度,系統(tǒng)管理它的提交。另外當通知被提交時你的應用甚至不必運行。
10)、Gesture Recognizers
手勢識別用來檢測通常類型的手勢。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法,因此手勢識別為應用提供了一個一致的行為。為了使用它,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法。
手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配。
11)、System View Controllers
許多系統(tǒng)框架為標準的系統(tǒng)接口定義了視圖控制器。只要有可能,為了呈現(xiàn)一致的用戶體驗,就應該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的。