之前您已了解了如何编写一个具有简单用户界面和基本行为的应用程序。现在您或许在考虑实现更多的行为,使项目成为一款功能完备的应用程序。
在思考要添加哪些功能之前,谨记一条:您无需一切从头开始。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 框架提供多种功能,用于处理应用程序中的音频和视频。