iOS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更多地专注于触摸的接口和优化。UIKit 为您提供了在 iOS 上实现图形,事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等。
Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计。同时也拥有各色俱全的框架。
各色俱全的框架
除了 UIKit 外,Cocoa Touch 包含了创建世界一流 iOS 应用程序需要的所有框架,从三维图形,到专业音效,甚至提供设备访问 API 以控制摄像头,或通过 GPS 获知当前位置。Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统。这些框架包括:
◆Core Animation
通过 Core Animation,您就可以通过一个基于组合独立图层的简单的编程模型来创建丰富的用户体验。
iOS 提供了一系列的图形图像技术,这是建立动人的视觉体验的基础。特定的框架—处理 2D,3D 和动画效果—能够让您的程序访问 iPhone 和 iPod touch 卓越的图形功能。
Core Animation
基于合成独立图层的简单编程模型,您可以使用 Core Animation 来建立具有动画效果的用户体验。动画是按定义好的关键步骤创建的,步骤描述了文字层、图像层和 OpenGL ES 图形是如何交互的。Core Animation 在运行时按照预定义的步骤处理,平稳地将视觉元素从一步移至下一步,并自动填充动画中的过渡帧。
如iOS 中许多场景切换一样,您也可以使用 Core Animation 来创建引人瞩目的效果,如在屏幕上平滑地移动用户接口元素,加入渐入渐出的效果—所有这些仅需几行 Core Animation 代码即可完成。
OpenGL ES
带有硬件加速的 OpenGL ES API 可利用 iPhone 和 iPod Touch 的强大的图形处理能力。OpenGL ES 具有比其桌面版本更加简单的 APL,但使用了相同的核心理念,包括可编程着色器和其他能够使您的 3D 程序或游戏脱颖而出的扩展。
Quartz 2D
Quartz 2D 是 iOS 下强大的 2D 图形 API。它提供了专业的 2D 图形功能,如贝赛尔曲线,变换和渐变等。使用 Quartz 2D 来定制接口元素可以为您的程序带来个性化外观。由于 Quartz 2D 是基于可移植文档格式 (PDF) 的图像模型,因此显示 PDF 文件也是小菜一碟。
独立的分辨率
iPhone 4 高像素密度 Retina 屏可让任意尺寸的文本和图像都显得平滑流畅。如果需要支持早期的 iPhone,则可以使用 iOS SDK 中的独立分辨率,它可让应用程序运行于不同屏幕分辨率环境。您只需要对应用程序的图标、图形及代码稍作修改,便可确保它在各种 iOS 设备中都居极好的视觉效果,并在 iPhone 4 设备上将达到最佳。
照片库
应用程序可以通过 UIKit 访问用户的照片库。例如,可以通过照片选取器界面浏览用户照片库,选取某张图片,然后再返回应用程序。能够控制是否允许用户对返回的图片进行拖动或编辑。另外,UIKit 还提供相机接口。通过该接口,应用程序可直加载相机拍摄的照片。#p#
◆Core Audio
Core Audio 是播放,处理和录制音频的专业技术,能够轻松为您的应用程序添加强大的音频功能。
iOS 提供了丰富的音频和视频功能。您可以轻松地在您的程序中使用媒体播放框架来传输和播放全屏视频。Core Audio 能够完全控制 iPod touch 和 iPhone 的音频处理功能。对于非常复杂的效果,OpenAL 能够让您建立 3D 音频模型。
媒体播放
媒体播放框架让您的程序能够轻松播放全屏视频。视频源可以是程序包中或者远程加载的一个文件。在影片播放完毕时会有一个简单的回调机制通知您的程序,从而您可以进行相应的操作。
HTTP 在线播放
HTTP 在线播放的内置支持使得程序能够轻松在 iPhone 和 iPod touch 中播放标准 web 服务器所提供的高质量的音频流和视频流。HTTP 在线播放在设计时就考虑了移动性的支持,它可以动态地调整播放质量来适应 Wi-Fi 或蜂窝网络的速度。了解更多
AV Foundation
在 iOS 系统中,所有音频和视频播放及录制技术都源自 AV Foundation。通常情况下,应用程序可以使用媒体播放器框架(Media Player framework)实现音乐和电影播放功能。如果所需实现的功能不止于此,而媒体播放器框架又没有相应支持,则可考虑使用 AV Foundation。AV Foundation 对媒体项的处理和管理提供高级支持。诸如媒体资产管理、媒体编辑、电影捕捉及播放、曲目管理及立体声声像等都在支持之列。
iPod 库
您的程序可以访问 iPod touch 或 iPhone 中的音乐库,从而利用用户自己的音乐定制自己的用户体验。您的赛车游戏可以在赛车加速时将玩家最喜爱播放列表变成虚拟广播电台,甚至可以让玩家直接在您的程序中选择定制的播放列表,无需退出程序即可直接播放。
Core Audio 和 OpenAL
Core Audio 是集播放、处理和录制音频为一体的专业级技术。通过 Core Audio,您的程序可以同时播放一个或多个音频流,甚至录制音频。Core Audio 能够透明管理音频环境,并自动适应耳机,蓝牙耳机或底座配件,同时它也可触发振动。至于高级特效,和 OpenGL 对图形的操作类似,OpenAL API 也能播放 3D 效果的音频。#p#
◆Core Data
提供了一个面向对象的数据管理解决方案,它易于使用和理解,甚至可处理任何应用或大或小的数据模型。
iOS 操作系统提供一系列用于存储,访问和共享数据的完整的工具和框架。
Core Data 是一个针对 Cocoa Touch 程序的全功能的数据模型框架,而 SQLite 非常适合用于关系数据库操作。应用程序可以通过 URL 来在整个 iOS 范围内共享数据。Web 应用程序可以利用 HTML5 数据存储 API 在客户端缓冲保存数据。iOS 程序甚至可访问设备的全局数据,如地址簿里的联系人和照片库里照片。
Core Data
Core Data 为创建基于模型-视图-控制器(MVC)模式的良好架构的 Cocoa 程序提供了一个灵活和强大的数据模型框架。Core Data 提供了一个通用的数据管理解决方案,用于处理所有应用程序的数据模型需求,不论程序的规模大小。您可以在此基础上构建任何应用程序。只有您想不到的,没有什么做不到。
Core Data 让您能够以图形化的方式快速定义程序的数据模型,并方便地在您的代码中访问该数据模型。它提供了一套基础框架不仅可以处理常见的功能,如保存,恢复,撤销,重做等,还可以让您在应用程序中方便地添加新的功能。由于 Core Data 使用内置的 SQLite 数据库,因此不需要单独安装数据库系统。
Interface Builder 是苹果的图形用户界面编辑器,提供了预定义的 Core Data 控制器对象,用于消除应用程序的用户界面和数据模型之间的大量粘合代码。您不必担心 SQL 语法,不必维护逻辑树来跟踪用户行为,也不必创建一个新的持久化机制。这一切都已经在您将应用程序的用户界面连接到 Core Data 模型时自动完成了。
SQLite
iOS 包含时下流行的 SQLite 库,它是一个轻量级但功能强大的关系数据库引擎,能够很容易地嵌入到应用程序中。SQLite 被多种平台上的无数应用程序所使用,事实上它已经被认为是轻量级嵌入式 SQL 数据库编程的工业标准。与面向对象的 Core Data 框架不同,SQLite 使用过程化的,针对 SQL 的 API 直接操作数据表。
应用程序间的数据共享
iOS 为设备上安装的应用程序之间的信息共享提供了强大的支持。基于 URL 语法,您可以像访问 Web 数据一样将信息传递给其他应用程序,如邮件,iTunes 和 YouTube。您也可以为自己的程序声明一个唯一的URL,允许其他应用程序与您的应用程序进行协作和共享数据。
访问联系人和照片
您的应用程序可通过安全易用的 API 访问 iPhone 的数据和媒体。您的应用程序可以添加新的地址簿联系人,也可获得现有的联系信息。同样,您的应用程序可以加载,显示和编辑图片库的照片,也可使用内置的摄像头拍摄新照片。
访问日历
iOS 应用程序可通过 Event Kit 框架访问用户日历数据库的事件信息。例如,可以根据日期范围或唯一标识符获取事件信息;可在事件纪录发生改变的时候获得通知;可允许用户创建或编辑日历事件。通过 Event Kit 对日历数据库执行的改动会自动同步到恰当的日历,就连 CalDAV 和交换服务器中的日历也会自动同步。
XML 文件
XML 文件提供了一个让您的应用程序可以轻松地读写的轻量级的结构化格式。同时 XML 文件很适合 iOS 的文件系统。您可以将您的程序设置和用户偏好设置存储到内置的数据库中。这种基于 XML 的数据存储提供了一个具有强大功能的简易 API,并具有根据要求序列化和恢复复杂的对象的能力。
HTML5 客户端在 Safari 的存储
iOS 中先进的 Safari 浏览器支持最新的 HTML5 离线数据存储功能。脱机存储意味着,通过使用一个简单的键/值数据 API 或更先进的 SQL 接口,网络应用可以将会话数据存储于本地 iPhone 或 iPod touch 设备的高速缓存中。这些数据在 Safari 启动过程中是不变的,这意味着应用程序具有更快的启动速度、更少地依赖于网络,并且有比以往更出色的表现。