這本書前面介紹的都是一些基本概念,需要注意的是後續步驟。 後續步驟
iOS 技術
之前您已了解了如何編寫一個具有簡單使用者界面和基本行為的應用程式。現在您或許在考慮實作更多的行為,使項目成為一款功能完備的應用程式。
在思考要添加哪些功能之前,謹記一條:您無需一切從頭開始。iOS 提供了定義特殊功能集的架構,從遊戲、媒體到密保和資料管理,每樣均可以整合到您的應用程式中。您已使用 UIKit 架構來設計應用程式的使用者界面,并使用 Foundation 架構将常見資料結構和行為歸并到代碼。這是 iOS 應用程式開發中兩個最常用的架構,而您能使用的遠不止這些。

本章節大緻概述了可能在應用程式中采用的技術和架構。您不妨将本章節當做探索可行技術的起點。有關 iOS 中可用技術的完整概述,請參閱《iOS Technology Overview》(iOS 技術概述)。
使用者界面
iOS 具有許多架構和技術,用于建立和潤色應用程式的使用者界面。
UIKit。UIKit 架構提供的類可用于建立觸摸式使用者界面。所有 iOS 應用程式都基于 UIKit,是以您無法在沒有架構的情況下傳遞應用程式。UIKit 提供基礎結構,用于在螢幕上繪圖、處理事件,以及建立通用使用者界面元素。通過管理螢幕上顯示的内容,UIKit 還能組織複雜的應用程式。有關更多資訊,請參閱《UIKit Framework Reference》(UIKit 架構參考)。
Core Graphics。Core Graphics 是一種基于 C 語言的低層次架構,在處理高品質矢量圖形、基于路徑的繪圖、變換、圖像和資料管理等方面,它将是您的得力助手。當然,在 iOS 中建立圖形,最簡而有效的方法是将預渲染的圖像與 UIKit 架構的标準視圖和控制配合使用,并讓 iOS 完成繪圖。畢竟,UIKit 是一種高層次的架構,它同時還提供用于自定繪圖的類,包括路徑、顔色、圖案、漸變、圖像、文本和變換,請盡可能地使用它們來代替 Core Graphics。有關更多資訊,請參閱《Core Graphics Framework Reference》(Core Graphics 架構參考)。
Core Animation。Core Animation 是一種能讓您制作進階動畫和視覺效果的技術。UIKit 提供的動畫,是建立在 Core Animation 技術之上的。如果您需要超出 UIKit 功能的進階動畫,可以直接使用 Core Animation。Core Animation 接口包含在 Quartz Core 架構中。借助 Core Animation,您将能建立不同層次的層對象,并對它們進行操控、旋轉、縮放、變換等等。通過使用大家所熟悉的 Core Animation 視圖式抽象,您可以建立動态使用者界面,而無需使用底層的圖形 API,如 OpenGL ES 等。有關更多資訊,請參閱《Core Animation Programming Guide》(Core Graphics 架構參考)。
遊戲
在開發 iOS 遊戲時,您需要嘗試多種技術。
Game Kit。Game Kit 架構提供了排行榜、成就和其他功能,可添加到 iOS 遊戲中。有關更多資訊,請參閱《GameKit Framework Reference》(Game Kit 架構參考)。
Sprite Kit。Sprite Kit 架構在使任意紋理圖像或角色産生動畫效果方面提供圖形支援。它不僅是一台圖形引擎,還能提供實體支援使對象變得更加生動。對于遊戲和其他要求複雜動畫鍊的應用程式,Sprite Kit 不失為一個好的選擇。(其他類型的使用者界面動畫,則可使用 Core Animation 代為處理。)有關更多資訊,請參閱《SpriteKit Programming Guide》(Sprite Kit 程式設計指南)。
OpenGL ES。OpenGL ES 是一種底層架構,它為硬體加速的 2D 和 3D 繪圖提供工具支援。Apple 實施的 OpenGL ES 标準,能與裝置硬體緊密協作,進而為全螢幕遊戲類應用程式提供很高的幀速率。OpenGL ES 是一種底層的、專注于硬體的 API,是以具有較高的學習難度,并将對您的應用程式的整體設計産生顯著影響。(對于要求高性能圖形以用于更多特定用途的應用程式,請考慮使用 Sprite Kit 或 Core Animation。)有關更多資訊,請參閱《OpenGL ES Programming Guide for iOS》(iOS 的 OpenGL ES 程式設計指南)。
Game Controller。Game Controller 架構能讓您快速找到接入 Mac 或 iOS 裝置的控制器。在裝置上找到控制器後,您的遊戲會将控制輸入讀取為正常遊戲設定的一部分。這些控制器為玩家操作遊戲提供了新的方式。Apple 具有為硬體控制器專設的技術規格,以確定控制器的控制元素類别一緻,玩家和遊戲設計者們均可以此為依據。有關更多資訊,請參閱《Game Controller Framework Reference》(Game Controller 架構參考)。
資料
處理應用程式資料時,請思考現有架構中有哪些可用的功能。
Core Data。Core Data 架構管理應用程式的資料模型。借助 Core Data,您可以建立模型對象(稱為被管理的對象)。管理那些對象之間的關系,并通過架構更改資料。Core Data 利用内建的 SQLite 技術,高效地儲存和管理資料。有關更多資訊,請參閱《Core Data Framework Reference》(Core Data 架構參考)。
Foundation。您已在本指南的前文中接觸過 Foundation。Foundation 架構定義了 Objective-C 類的最底層。除了提供一組基本且實用的對象類,本架構還介紹了數個範例來闡明 Objective-C 語言中未涉及的行為。與其他架構相比,本架構包括了表示基本資料類型的類(如字串和數字),以及用于儲存其他對象的集類。有關更多資訊,請參閱《Foundation Framework Reference》(Foundation 架構參考)。
Media
Media 架構提供多種功能,用于處理應用程式中的音頻和視訊。
AV Foundation。AV Foundation 可用于播放和建立基于時間的音頻視覺媒體,是數個具有該功能架構中的一個。例如,您可以使用 AV Foundation 來檢查、建立、編輯媒體檔案,或對其進行重新編碼。您還可以通過它擷取裝置的輸入流,以及在實時捕捉和回放過程中處理視訊。有關更多資訊,請參閱《 AV Foundation Framework Reference》(AV Foundation 架構參考)。