2011年10月,苹果公司首席执行官Tim Cook公布了有关iPad的一些有趣数据,包括:
但有关iPad的新闻并不止于此。FAA(美国联邦航空局)已经批准了繁忙航线的飞行员使用iPad来代替纸质的图表。毫无疑问,iPad正在改变着今天人们认识(及使用)计算机的方式。随着日前发布了在iPad和iPhone设备上运行的iOS 5,这种变化越发显得深远。
毫无疑问,iPad是一记重拳。拥有着专利的多点触摸界面、板载图形芯片、强大的A5处理器以及3G或WiFi网络,iPad是后PC时代的标志。然而更重要的是,iPad 2是怎样嵌入Mac/iOS生态系统中的呢?Mac OS X Lion和iOS 5用户可以使用FaceTime进行从台式机到iPad设备的视频聊天。还有,iOS 5的iMessage使用户能够用其iPad向其他iPad和iPhone用户发送短信。iPad是硬件和技术的独特联姻,它是平板电脑的典范。
本书是以iOS 5为基础编写的,面向渴望在iPad上构建应用程序的新手开发者。本书也对期望在iPad上玩转其应用程序的iPhone开发人员有用。虽然有些人只是把iPad看成是大一些的iPhone,其实这是不对的。作为开发者,有多得多的工作可以在iPad的用户界面上做到,而这些工作在iPhone上可能是无法实现的。
尽管本书会对iPhone编程有简短的讨论,但着眼点还是在iPad。书中强调的这些iOS 5 SDK领域是iPad专用的,并非是针对iPhone书籍的老调重弹。另外,本书涵盖iOS 5的新特性,例如,容器视图控制器、iCloud和Core Image,还有Xcode 4.2中的一些关键新功能,例如,故事板。苹果公司已经花了大力气让你在开发iOS和OS X时省事一些,本书的目标则是使你学会让开发再容易点。
本书将教授你怎样构建iPad专用的应用程序,手把手带你走过创作一个真实应用程序的过程,并让它即刻出现在App Store里!我们将要在本书中构建的应用程序名叫PhotoWheel。
下载此应用程序
可以从App Store下载PhotoWheel(网页为itunes.apple.com/app/photowheel/id424927196&mt=8)。该应用程序是免费的,所以赶快下载PhotoWheel,先体验一下。
PhotoWheel是所有iPad上都有的Photos应用程序的变形(双关语)。通过PhotoWheel,你可以把自己喜爱的照片组织到相册中,与家庭和朋友通过电子邮件分享照片,使用AirPlay的无线连接在电视机上欣赏照片。但更重要的是,你将在构建此应用程序的过程中收获颇丰。
你将学习怎样利用iOS 5和Xcode的最新特性,包括故事板、自动引用计数、iCloud和Core Image。同时还将学习如何利用其他iOS功能,例如,AirPrint、AirPlay和GCD(Grand Central Dispatch)。此外,你也要学习怎样拓展应用程序的边界,以便与互联网上的Web服务通信。
本书是一部波澜壮阔的教程,它向你从头到尾展示一个实际iPad应用程序的制作过程。你可以跟着本书编程,我们将循序渐进地说明各种事物。到你读完本书并完成编程后,你将有一个功能齐全的PhotoWheel,你可以以此向朋友和家庭炫耀(甚至可以与他们分享这个应用程序)。尤其美妙的是,你将对如何设计、编写和发布自己的iPad应用程序充满信心,并通过此掌握丰富的知识。
虽然iPad用的iOS版本与iPhone、iPod touch和Apple TV相同,但是iPad还是有别于这些基于iOS的其他设备。每种设备的用法都不同,而iOS为它们各自提供了一些功能。例如,运行在Apple TV上的iOS版本不会提供同样版本的触屏界面。事实上,界面完全相异。Apple TV的用户界面是iOS之上的一层,它提供了完全不同的用户体验。
但iPad不是这样。它不是你能拿在手掌心里的东西,例如iPhone和iPod touch。你要用双手操作它。滑动它、触摸它,用户和它交互的次数多于大部分iPhone应用程序。人们很容易认为iPad“只不过是大一点儿的iPhone”,但其实不是。
iPad和iPhone的物理尺寸明显不同,而真正使iPad与iPhone不同的地方是理念。理念的差别在于怎样设计iPad应用程序,以及用户怎样与应用程序交互。这种理念的差别源于iPad的屏幕更大。
iPad有更大的屏幕,它提供了比iPhone多两倍以上的显示空间。这意味着应用程序可以显示更多信息,可以有更多空间用于用户界面。这方面的一个精彩例子就是WeatherBug。
WeatherBug HD的设计充分利用了iPad屏幕更大的优势。可以从图P-1看到,比起iPhone版本,iPad版本的WeatherBug在一个屏幕上显示了多得多的信息。在iPhone上需触摸和滑动(有时还要凭运气),才能找到额外的天气信息;iPad上的WeatherBug HD则能一目了然地显示你想要的信息,无须另外的触摸和滑动操作。当然,触屏上仍会有一些额外的信息。
由于屏幕较小,许多iPhone应用程序采用垂直导航系统表示。可以在许多iPhone应用程序上看到这种情况。用户触击一个条目,新屏幕滑动显示出来;触击另一个条目,则另一个视图滑动进屏幕。要后退的话,就要触击回退按钮,此按钮通常位于屏幕的左上角。
Dropbox应用程序精辟地说明了层次状的导航系统。有些人可能还不知道Dropbox是个联机服务,它可以将数据文件、文档和图片保存到云中。所保存的文件随后同步到运行着Dropbox客户端软件的计算机和设备上。举个例子,假如你正在笔记本电脑上编写一份文本文档,你将该文本文档保存至Dropbox文件夹。随后你想查看此文本文档,则可以在你的iPhone上打开同一个文本文档。Dropbox让这种操作成为可能。
在iPhone上使用Dropbox应用程序时,你会看到一个按字母顺序排列的文件和文件夹清单。触击一个文件或文件夹来打开它,会导致新画面滑动进屏幕。倘若你打开的是文件,就会看到文件内容;然而如果打开的是文件夹,则会看到新的文件和文件夹清单。继续触击文件夹会更深入地进入层次结构内部。
要想在层次结构里向上移动,可触击左上角的后退按钮。这个按钮上的文字标签能够变化,通常它显示的是栈里前一个条目的名字,但有时显示Back。尽管文字标签可能变化,但后退按钮的风格不变。后退按钮指向左侧。这种类似箭头的风格表达了在画面间后退的含义。
iPad上也有Dropbox。那么开发者怎样对某个明确要求层次导航的应用程序重新设计,以使结构更平面化、层次更少呢?他们利用了iPad上特有的iOS对象,即UISplitViewController。
分割视图控制器是一种控制显示并排视图的非可视对象。当以横向方式手持iPad时,这两个视图就并排放置。当将iPad放置到纵向显示模式时,左边的视图就会消失,这样就使用户将其注意力集中到右边的主要内容上来。
大多数iPhone应用程序只支持一种放置模式,许多iPhone游戏是在横向模式下玩的,而其他许多iPhone应用程序则以纵向模式显示。与iPad类似,iPhone也支持设备旋转和放置模式,但设备这么小,支持不同放置模式就显得多余。大部分用户以纵向模式手持其iPhone,即在使用应用程序时Home按钮在下边,而只在玩游戏时旋转成横向模式。
iPad则不同。使用iPad时,用户会以某种放置模式抓住设备并开机,尤其是iPad没有放在盒子里时。我们来做这个小小的试验……
把iPhone或iPod touch放在桌子上,让其Home按钮指向10点钟方向。走开转个身,回到设备前拿起它。看看你在拿到它时的方向。你很可能在拿起设备时会顺手旋转它,以便使Home按钮在下边。甚至在开机之前你已经把它旋转成这样了。手拿iPhone时使Home按钮处在设备下边几乎是一种自然的本能。
再来做同样的试验,但这次使用iPad。把它放在桌上,确保Home按钮指向10点钟方向,然后走开。回来再拿起iPad,这时很可能你不会旋转iPad。相反,你在拿起iPad时的设备放置模式可能和你拿起前是一样的。
你知道iPad和iPhone都支持同样的多点触屏界面吗?确实如此。实际上,iOS的多点触屏界面可支持多达11个同时的触点。这意味着你可以用上所有的手指,甚至如果你旁边有朋友的话,可以再多一两个人来与应用程序交互。
iPad拥有较大的屏幕,这使多点触摸更加灵活。虽然两只手的手势在iPhone上活动受限,但在与iPad应用程序交互时它们却是很自然的一部分。举个例子,苹果公司自己的iPad应用程序Keynote,它就利用多点触屏界面来提供一度保留为台式机的指指点点功能。选择多张幻灯片,再移动它们,这只是iPad上的Keynote最优化用户体验的一个例子。
我们已经知道,多点触屏界面可支持多达11个地方的同时触摸,但怎样验证呢?可编写一个iPad应用程序对同时触摸的点数进行计数。那正是Matt Legend Gemmell做过的事情。他编写了短小精悍的iPad应用程序,这个应用程序能显示同时触摸的点数。但Matt并不止于显示触摸计数,他让应用程序有着华美的外观,使用户玩起来妙趣横生。
另一个探究iPad多点触屏界面的办法是用iPad上的Uzu应用程序,在App Store中(网页为bit.ly/learnipadprog-UzuApp)只需1.99美元。Uzu是个“动感的多点触屏粒子视觉效应观察器”,很容易让人着迷,倘若你想看看多点触摸的一些明智用法,真应该下载并玩玩Uzu。
到了这里,所有人都会赞成iPad并非大个头的iPhone。很好,很高兴你看到了本页。现在有个更大的问题:iPad是笔记本电脑或台式机的替代品吗?不是,还不是,但iPad相当接近这个角色。
对许多人而言,iPad代表着填补智能手机和全功能电脑(不管是笔记本电脑还是台式机)之间空白的移动设备。尽管很多人用iPad消遣,但iPad也能用来完成原本笔记本电脑或台式机才能做的大量任务。这促使iOS开发者重新考虑怎样实现传世已久的软件理念。字处理软件正是其中的一种理念,它在iPad上找到了新生。
iPad开启了由于iPhone尺寸太小而无法实现的广阔应用程序之门。字处理软件又一次成为人们想到的这种应用程序。
虽然iPhone很适合速记,但对写冗长的文档则不够理想。尽管在技术上实现一个功能齐全的iPhone字处理软件是可能的,但你会用吗?屏幕太小了,即使是在横向模式,在那么小的画面上点动两个手指效率仍旧很低。iPhone适合完成简单、快速的任务,例如写个便条、安排日程、将待办事宜标为已做,但对于较长的任务,例如写书的工作并不合适。
iPad提供类似小型笔记本电脑的体验。与无线键盘配合,iPad就成为编写冗长文档的良好工具。我是从体验方面说的。本书的大量文本都出自iPad。我不能想象要是用iPhone会是什么样子,但我知道iPad上是怎样的,这样做是种享受。它尤其出色的是,使你能专注于一个任务。这样可以避免分神,让你更好地专注于手头的工作。
顾名思义,本书将为你提供随手指导。它将带你走过iPad编程的每个阶段,从下载安装iOS SDK到向苹果公司发布第一个应用程序供其审核,都囊括在内。
全书包括27章及一个附录,如下所示:
第一部分介绍了这一行业会用到的工具。这里你将学习诸如Xcode、Interface Builder等开发工具。学习如何使用Objective-C和Cocoa框架来编写代码。你还将学习怎样配置信息,使iPad成为一台开发设备。
第二部分是本书的核心。在此你将亲手构建真实的iPad应用程序。你所构建的这个应用程序并非简单的Hello World。它叫PhotoWheel,一个功能齐全的照片应用程序。在第二部分,你将学习从视图转换时的定制动画到iCloud在电视上同步显示照片等所有知识。
在本书的最后一部分,你将学习调试应用程序的技巧。但更重要的是,你还将学会怎样向别人发布你的应用程序。
本书将你从应用程序设计一路带到App Store。其间你将了解开发工具、编程语言和框架。而更重要的是,你将学会怎样构建一个功能齐全的iPad应用程序,你可以拿这个应用程序进行炫耀。
本书面向对iOS平台还不了解,但想学习如何编写iPad应用程序的程序员。本书假定你是iPad编程新手,对Xcode和Objective-C没有什么经验。不过,本书认为你已有一些使用其他编程语言和工具的编程经验。但那些没有任何编程经验的人不适合阅读本书。
本书的目标读者是想学习怎样使用iOS 5开发iPad上复杂应用程序的程序员。你需要有一台Mac计算机,以便可以使用Xcode和Interface Builder编程,并要有iPad的iOS开发账号。要是有些编程经验会很有益,特别是有C语言知识,尽管有一章会介绍怎样用Objective-C进行面向对象的编程,让你有个起步。
本书对有经验的iOS开发者,即那些已经编写过应用程序并将其发布到iPhone和iPod touch的人同样有吸引力。如果你是经验丰富的读者,则可以跳过基础章节,从而迅速进入贯穿本书的示例项目的创建中。
PhotoWheel在每章及全部的源码都可以从本书的网址:learnipadprogramming.com/source-code/下载。虽然本书介绍开发PhotoWheel的篇幅是有限的。但我们的学习是无止境的,我们对此应用程序还有大量工作可做,所以还有很多东西可学。最新的源码可以在github(网页为github.com/ kirbyt/PhotoWheel)处找到。
你还可以在本书的博客网址(learnipadprogramming.com/blog/)找到更多介绍方法和技巧的文章,来改进PhotoWheel。
如果你还有其他问题,或者想报告缺陷或向PhotoWheel提出新功能,请不吝发电子邮件至[email protected]或[email protected]。也可以在Twitter上发消息给@kirbyt或@atomicbird。
本书随处都有丰富的代码,还有可供操练的练习题,所以本书假定你已经获得了Xcode和iOS SDK等苹果公司的开发工具。这些都可以从苹果公司的iOS开发中心下载。
---------------------------------
本文节选自《iPad应用开发实践指南》前言,原书名:Learning iPad Programming: A Hands-On Guide to Building iPad Apps with iOS 5,作者:Kirby Turner & Tom Harrington,译者:张菲,由机械工业出版社出版。本书以iOS 5为基础编写的,面向渴望在iPad上构建应用程序的新手开发者。
豆瓣收藏:http://book.douban.com/subject/20445368/
样章试读:http://vdisk.weibo.com/s/lOJDm
互动网:http://product.china-pub.com/3021498
当当网:http://product.dangdang.com/main/product.aspx?product_id=22938485
卓越网:http://www.amazon.cn/dp/B00AP9WQ7G
京东网:http://book.360buy.com/11149991.html