自从App Store上线以来,它创造了很多神话,给我们这些程序员提供了展示自己的舞台,给了我们创意的空间,给了我们创业的机会。下面让我们从这里开始iOS开发之旅吧。 1.1 iOS概述 在本节中,我们将了解什么是iOS以及iOS 6有哪些新特性。 1.1.1 iOS介绍 iOS的系统架构分为4层——Cocoa Touch层、Media层、Core Services层和Core OS层,相关内容可参见2.6.1节。 下面我们简要介绍一下iOS的一些功能,具体如下所示。 多点触摸和手势。触摸功能在iOS设备之前就被采用,但基本都是单点触摸,即只能用一个手指,而iOS设备能够感应多个手指的触摸。为了配合这种多点触摸,iOS上的触摸分为多种手势:触击、双击、滑动、长期间触击、轻拂、刷屏和手指合拢张开等。 统一的屏幕尺寸。目前,iOS屏幕尺寸有4套:iPhone和iPod touch是3.5英寸,iPhone 5和第5代iPod touch是4英寸,iPad是9.7英寸,iPad mini是7.9英寸。统一的屏幕尺寸给应用软件开发带来很多好处,开发人员可以不用关心屏幕尺寸适配的问题,从而把精力集中在其他方面。 高分辨率。iPhone 4S的屏幕分辨率是960×640,iPhone 5和第5代iPod touch的屏幕分辨率是1136×640,第1、2代iPad的屏幕分辨率是1024×768,第3代iPad的屏幕分辨率是2048×1536,而iPad mini的屏幕分辨率是1024×768。 重力加速计。iOS内置了重力加速计。有了重力加速计,用户能够玩很多有意思的游戏(如极品飞车,它可以把iPhone作为方向盘,通过重力加速计感应方向的变化)。此外,还有很多与重力加速计有关的应用软件,如水平尺应用等。 指南针。iOS内置了指南针设备。很多应用基于指南针,例如导航软件和地图应用软件。 蓝牙和Wi-Fi连接。iOS内置了蓝牙和Wi-Fi通信模块。iOS设备之间可以采用Wi-Fi互相连接,也可以采用蓝牙进行连接,很多基于局域网的游戏就是通过这个功能实现的。当然,也可以通过Wi-Fi上网,这可以节约用户的上网费用。此外,iOS还可以与电脑连接。 1.1.2 iOS 6新特性 iOS的最新版本为iOS 6.0。苹果公司于2012年9月20日凌晨1点开放其正式版的下载,它支持iPhone 3GS、iPhone 4、iPhone 4S、iPhone 5、iPad 2、iPad 3、iPod touch 4和iPod touch 5等设备。据苹果发布的更新文档显示,iOS 6新增了200多项功能,更好地支持了中国市场,很多新特性或将成为将来的焦点。 现在我们先简要介绍一下iOS 6几个重要的新性能。 地图。苹果放弃了以前使用的谷歌地图,转而使用苹果自己的地图。MapKit框架本身没有变化,只是地图内容不再是谷歌地图。 社交网络(social network)。iOS 5集成了Twitter,iOS 6新集成了Facebook和新浪微博,还提供了一个新的视图控制器UIActivityViewController。使用这个视图控制器,可以非常方便地发送短消息和邮件,而且将内容复制到剪贴板之后,还可以利用视图控制器发消息到Twitter、Facebook以及新浪微博。 Pass Kit。它是开发Passbook的API。Passbook可以集中管理各种优惠券、打折卡、登机牌,这样以后就不必在钱包中放一堆卡了。个人认为该新功能在未来电子商务的发展中会有不容小视的贡献。 游戏中心(Game Center)。Game Center是苹果在发布iOS 4时引入的API,目的是开发基于苹果Game Center的游戏。iOS 6对Game Center的API进行了升级。 提醒(Reminder)。在iOS 6中,苹果开放了访问设备中的提醒API,开发者可以通过Event Kit读写提醒信息。 应用内购买(In-App Purchase,缩写为IAP)。使用这个功能,可以在应用中购买付费道具,增加新功能,订阅杂志,也可以购买和下载iTunes Store上的音乐、电影和图书。 集合视图(Collection View)。它是一种增强网格视图,虽然这种网格视图在开源社区中已经有开源代码,但是使用起来不是很方便,而有了iOS 6的集合视图API后,使用起来变得非常方便。 界面状态保持(UI State Preservation)。iOS 6之前,在应用退出,进入后台并且被终止的情况下,如果需要保持界面中UI控件的状态,则需要通过自己编写代码读写数据来实现,而在iOS 6之后这些工作就变得非常简单了。 自动布局(Auto Layout)。这个功能首先应用于Mac OS X 10.7下的开发,现在也可以在iOS 6中使用,它为视图布局定义一套约束,而约束定义了两个界面中视图之间的关系。 数据隐私(Data Privacy)。为了防止隐私泄漏,在iOS 6中访问联系人、日历、提醒和照片库时,需要经过用户允许。以前只有访问位置信息时,才需要经过用户允许。 此外,iOS 6还对已有的框架进行了不同程度的增强和删减。