iOS是iPhone,iPod touch,以及iPad等设备内运行的操作系统。它管理设备硬件,并提供实现本地程序的基础技术。根据设备的区别,操作系统还包含了几种不同的系统应用程序,例如电话,邮件和Safari,为用户提供系统服务。
iOS SDK包含开发、安装、运行自制本地程序所需要的工具和接口。本地程序在iOS系统框架下编译构建,可以直接运行在iOS之上。跟web程序不同,本地程序是物理上安装到了设备上,有没有网络链接都可以运行。他们和其他系统程序被安装在一起,他们的用户数据都可以通过iTunes跟用户的电脑同步。
iOS架构
iOS的架构和Mac OS X的基础架构很类似。如图1-1所示,从大局上看,iOS的角色是底层硬件和屏幕上的应用程序之间的中间层。你创建的程序不能直接和硬件交互,它们只能通过系统接口和对应的硬件交互。这种抽象使你的程序无需关心底层硬件的变动。
图 1-1 在iOS层之上的应用程序
注意:虽然你的程序已经和底层硬件的改变隔绝,但是你仍旧需要注意不同设备造成的代码上的差异。例如,iPad和iPod Touch可能打不开一个电话号码URL,但是iPhone是可以的。
iOS技术的实现可以看成一系列层,如图1-2所示。系统的底层是所有应用程序都依赖的基础服务,而上层是更复杂服务和技术。
图 1-2 iOS层
写自己的代码的时候,你应该尽量优先使用上层框架,而不是底层框架。上层框架是提供了对底层框架的面向对象的抽象。这些抽象通常会简化你的代码,因为有了它们你就不用自己来封装socket、线程等复杂的特性了。但是虽然他们抽象了底层技术,但没有掩盖他们。喜欢使用底层框架的开发者,需要使用底层没有暴露给上层的特性的开发者,也还可以使用他们。
每层涉及到的技术和框架会在本文档的后续章节介绍。
iOS SDK里有什么?
iOS SDK包含了在Intel核心的Mac电脑上开发iOS应用程序所需要的一切接口、工具和资源。
苹果用一种特殊包framework,发布了几乎所有的系统接口。Framework就是一个目录,包含一个动态链接库,以及动态链接库所需要的资源(如头文件,图像,辅助程序,等等)。要使用framework,你首先把他们链接到应用程序工程里,像其他动态链接库一样。把他们链接到你的工程,你就访问framework里面的所有特性,而开发工具从而也可以知道头文件和framework的资源在哪里。
这些framework以外,苹果还用标准动态链接库形式提供了一些技术。iOS是基于UNIX的,操作系统底层提供的很多技术来自于开源的技术。这些技术的接口放置在接口目录内的标准动态链接库。
SDK包含的关键组件如下包括:
Xcode工具链 - 提供用来支持iOS应用程序开发需要的工具,包含如下几个关键程序。
Xcode - 管理应用程序工程的集成开发环境,可以编辑,编译,运行和调试你的代码。Xcode还集成了开发过程中需要的其他工具。
Interface Builder - 可视化组装用户界面的工具。创建的用户接口对象会被保存成一种特殊的资源文件格式,在程序运行期间载入。
Instruments - 运行期间性能分析和调试工具。你可以使用Instruments收集关于程序运行期间行为的信息,找到潜在的问题。
iPhone模拟器 - Mac OS X程序模拟iOS的技术层。让你可以在基于Intel的Mac电脑上测试你的iOS程序。
iOS参考文档库 - SDK默认包含了iOS的参考文档。已经下载的库更新也会自动更新出来。要显示参考文档库,选择Help > Developer Doucmentation。
SDK不仅提供了写程序需要的软件,XCode和Instruments还可以让你直接和连接到电脑上的设备通讯,在目标设备上运行和调试你的代码。在真实设备上开发,需要就加入苹果的收费的iOS开发者程序,把设备设置为开发之用。关于iOS开发者程序的更多信息,请浏览http://developer.apple.com/devcenter/ios/program/。
更多关于如何安装iOS SDK,以及使用它开发程序的信息,参见iOS开发指南。更多关于iOS包含的framework的信息,以及如何找到底层系统库的信息,参见“iOS框架”。
可以创建什么样的程序?
iOS支持两种类型应用程序的开发:
◆本地应用程序
◆web应用程序
iOS SDK只支持创建出现会在设备主屏幕上的本地应用程序。它不支持创建其他类型的代码,如驱动程序,框架,或者动态链接库。如果你的代码需要集成一个framework或者动态链接库,你可以在构建时把它们静态的链接到你的程序可执行文件中。
Web应用程序是HTML,CSS以及JavaScript代码的组合,用于实现基于web服务器的交互程序,在网络间传输,在Safari浏览器内运行。而本地应用程序,直接安装在设备上,可以在没有网络连接的情况下运行。
如何使用参考文档库
iOS参考文档库包含开发iOS应用程序所需要的文档,例子和指导手册和其他的信息。因为文档库包含了几千页文档,从上层的入门文档,到底层API的参考手册,所以学会如何查找帮助信息是开发过程中非常重要的。文档库使用了很多技术来组织内容,使它更加容易浏览。
你可以从Apple开发者站点或者从Xcode里访问iOS参考文档库。在Xcode里,选择Help > Developer Documentation现实Xcode的文档窗口,这是访问iOS开发相关信息的主要途径。你可以使用这个窗口浏览文档,执行搜索,收藏你想以后再读的文档。
你安装iOS SDK的时候,Xcode会自动安装iOS参考文档库(Xcode还自动帮助下载文档的更新,但你也可以在设置里面修改)。iOS参考文档库包含了很多的信息,所以***记住它的布局。图1-3展示了Xcode文档窗口中的iOS参考文档库的主页。页面上端的工具条,包含了搜索字段和按钮,用来浏览文档。你可以根据主题浏览文档库,根据framework,或者根据你寻找的资源类型。你还可以使用文档列表上端的过滤器字段来聚焦现实的文档范围。
图 1-3 iOS参考文档库
重要:iOS参考文档库的内容会经常更新,而且你可以在iOS开发中心(http://developer.apple.com/devcenter/ios)访问***的文档,发布声明,技术生命和技术文档,常见问答以及例子代码。所有的文档都是HTML格式的,大多数也有PDF格式。
因为参考文档库提供了巨大数量的信息,在你写代码的时候,挨个遍历这些信息就太笨拙了。为了帮助你迅速找到相应的信息,Xcode提供了一个快速帮助窗口,如图1-4。这个窗口提供指定符号(关键字,类名等等)的信息,包括它的语法,描述以及可用性等等。它还会现实相关的文档和例子代码资源等。点击窗口内的链接,会打开参考文档库内相应的资源。要显示这个窗口,在Xcode代码编辑窗口内Option+双击一个符号。
图 1-4 Xcode中的快速帮助
【编辑推荐】