首页>参考读物>计算机科学与技术>软件与程序设计

iPad应用开发实践指南
作者 : (美)Kirby Turner,Tom Harrington 著
译者 : 张菲 译
丛书名 : 华章程序员书库
出版日期 : 2012-12-28
ISBN : 978-7-111-40617-4
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 525
开本 : 16
原书名 : Learning iPad Programming: A Hands-on Guide to Building iPad Apps with iOS 5
原出版社: Addison Wesley
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书通过介绍App Store上的一个免费应用程序PhotoWheel的构建过程,展示了如何有效利用iOS 5和Xcode的最新特性,包括Storyboarding、ARC和iCloud。更重要的是,书中介绍了如何通过与Web服务通信以扩展应用程序的边界。总之,本书能帮助你为iPad构建应用程序。

图书特色

本书通篇采用一种令人称奇的新颖办法,即从头到尾设计并开发一个既简单又现实的iPad应用程序来贯穿全书。它改变了人们对技术性书籍的看法,它解释怎样、为何这样做,用的是大量有趣的例子,而不是自说自话,让你埋没于令人意识麻木、单调乏味的繁琐细节里。更让我吃惊的是,它这么做并未假定用户有丰富的经验。然而,它以足够的深度循序渐进,旨在让所有开发人员获取足够的信息。Kirby和Tom深谙这些教程,在介绍各种框架时娓娓而谈,阐述怎样、为何以及何时要使用这些框架。对于有兴趣开发此精湛平台的任何人,我都强烈推荐这本书。
—— Julio Barros,E-String.com公司

本书是对iPad编程的精辟介绍,其中贯穿着一个精心编制的示例项目。不论对初学者,还是对那些熟悉iPhone开发并且渴望了解在更大屏幕的iPad上开发有何不同之处的人来说,本书都是不错的入门指南。
—— Patrick Burleson,BitBQ LLC(http://bitbq.com)的所有人

本书为当今最热门的一个话题提供了浅显易懂的介绍。它是为有抱负的iPad程序员准备的精彩读物。
—— Robert Clair,《Learning Objective-C 2.0》一书的作者

本书是我在开发iPad应用时必备的参考书。它绝对是蕴藏iPad开发有用信息和诀窍的宝库。人们很容易认为iPad只不过是更大的iPhone,但在iPad上其实有特定的主题要考虑,例如,较大显示屏的充分利用。本书提供了iPad编程所有领域的大量深度内容,能帮助你学习设计并且让应用程序正常运行,我认为这是本书的杀手级特色。本书应作为所有人的参考书。
—— Mike Daley,《Learning iOS Game Programming》一书的作者、71Squared.com的合伙创立人

本书对每位iOS开发者来说都是一本知识全面的书,不管他们是有待提高的程序员还是高手。如果你还不了解iOS,第一部分有助于你夯实基础,学习Objective-C、核心 Apple框架、配置文件,以及透彻理解Xcode;假如你对iPad略知一二,想洞悉iPad编程,第二部分将让你了解这些内容:不是提供各不相关的示例代码,而是向你传授逐步构建、改进真实应用程序的实际代码。如果你已经有iOS开发经验,可以从iOS 5和Xcode 4知晓各种数不胜数的新功能,深入学习故事板、iCloud和Core Image的各章。更可嘉的是,本书经过精心组织,读起来津津有味。可作为iOS程序员的主要参考书。
—— Alexis Goldstein,《HTML5 & CSS3 for the Real World》一书的作者


也许你已经感觉到,我对这本书非常看好。关于iOS有许多优秀的书籍。我之所以建议阅读它们(至少是其中的一些好书),是因为iOS是一个宽泛的主题,即使Kirby和Tom也不能在一本书中涵盖你要知道的所有内容。但是,如果你专门学习和从事iPad应用开发,本书将是很好的选择,它会成为对你有影响的一本书。
—— Mark Dalrymple,国际Mac和iPhone开发者社区CocoaHeads联合创始人

作者简介
Kirby Turner 资深软件开发工程师,有超过20年的软件开发经验。目前是一位独立的软件开发者,专注于Mac和iOS平台上的应用开发,有多款应用在APP Store上销售。热衷于分享,共同组织了CocoaHeads等技术会议,为社区的发展和改善贡献了力量。
Tom Harrington 资深Mac和iOS应用开发工程师,在该领域有6年以上的开发经验,在社区里非常活跃,共同组织了CocoaHeads等技术会议和克罗拉多州的多场iOS开发者活动,著有《Core Data for iOS》一书。此外,他还擅长嵌入式系统和Linux平台下的软件开发。

图书前言

2011年10月,苹果公司首席执行官Tim Cook公布了有关iPad的一些有趣数据,包括:
  * 财富500强公司有92%在测试或部署iPad;
  * 美国本土80%的医院在测试或用iPad控制流程;
  * 美国的每个州都有某种形式的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如此与众不同
  虽然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则能一目了然地显示你想要的信息,无须另外的触摸和滑动操作。当然,触屏上仍会有一些额外的信息。

图P-1 左边是iPad上的WeatherBug应用程序;右边的截图是同样的WeatherBug
  应用程序运行于iPhone之上的外观(经Earth Networks许可后使用)
更少的层次
  由于屏幕较小,许多iPhone应用程序采用垂直导航系统表示。可以在许多iPhone应用程序上看到这种情况。用户触击一个条目,新屏幕滑动显示出来;触击另一个条目,则另一个视图滑动进屏幕。要后退的话,就要触击回退按钮,此按钮通常位于屏幕的左上角。
  Dropbox应用程序精辟地说明了层次状的导航系统。有些人可能还不知道Dropbox是个联机服务,它可以将数据文件、文档和图片保存到云中。所保存的文件随后同步到运行着Dropbox客户端软件的计算机和设备上。举个例子,假如你正在笔记本电脑上编写一份文本文档,你将该文本文档保存至Dropbox文件夹。随后你想查看此文本文档,则可以在你的iPhone上打开同一个文本文档。Dropbox让这种操作成为可能。
  在iPhone上使用Dropbox应用程序时,你会看到一个按字母顺序排列的文件和文件夹清单。触击一个文件或文件夹来打开它,会导致新画面滑动进屏幕。倘若你打开的是文件,就会看到文件内容;然而如果打开的是文件夹,则会看到新的文件和文件夹清单。继续触击文件夹会更深入地进入层次结构内部。
  要想在层次结构里向上移动,可触击左上角的后退按钮。这个按钮上的文字标签能够变化,通常它显示的是栈里前一个条目的名字,但有时显示Back。尽管文字标签可能变化,但后退按钮的风格不变。后退按钮指向左侧。这种类似箭头的风格表达了在画面间后退的含义。
  在层次结构里前进和后退的说明在图P-2中给出。

图P-2 在iPhone上的文件夹和文件层次结构中使用Dropbox。可以通过触击来
    向前移动,或缩小范围以显示更多内容;通过触击后退按钮来向后移动
  iPad上也有Dropbox。那么开发者怎样对某个明确要求层次导航的应用程序重新设计,以使结构更平面化、层次更少呢?他们利用了iPad上特有的iOS对象,即UISplitViewController,如图P-3所示。
  分割视图控制器是一种控制显示并排视图的非可视对象。当以横向方式手持iPad时,这两个视图就并排放置。当将iPad放置到纵向显示模式时,左边的视图就会消失,这样就使用户将其注意力集中到右边的主要内容上来。
  注意:第8章将教你编写基于分割视图的应用程序。

图P-3 iPad运行Dropbox的屏幕截图,注意,当设备横向放置时导航框
显示在左侧视图中;而在iPad纵向放置时会隐藏导航框
  这种视图模式经常称为“主—从复合视图”,即主视图显示在左侧,从视图显示在右侧。主视图用来在层次数据间定位,在Dropbox中主视图则用来定位文件和文件夹。当你找到想要查看的文件时,在主视图中触击它,文件内容会在从视图里显示出来。旋转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应用程序,如图P-4所示。这个应用程序能显示同时触摸的点数。但Matt并不止于显示触摸计数,他让应用程序有着华美的外观,使用户玩起来妙趣横生。

图P-4 Matt Legend Gemmell在iPad上说明在11个地方同时触摸的多点触屏示例应用程序
  可以从Matt的博客(网页为mattgemmell.com/2010/05/09/ipad-multi-touch)了解其iPad多点触屏示例的详细信息,并下载其源代码。
  另一个探究iPad多点触屏界面的办法是用iPad上的Uzu应用程序,在App Store中(网页为bit.ly/learnipadprog-UzuApp)只需1.99美元。Uzu是个“动感的多点触屏粒子视觉效应观察器”,很容易让人着迷(图P-5没有将该应用程序表现得淋漓尽致),倘若你想看看多点触摸的一些明智用法,真应该下载并玩玩Uzu。

图P-5 iPad上的粒子视觉效应观察器Uzu
iPad填补了电话与电脑之间的空白
  到了这里,所有人都会赞成iPad并非大个头的iPhone。很好,很高兴你看到了本页。现在有个更大的问题:iPad是笔记本电脑或台式机的替代品吗?不是,还不是,但iPad相当接近这个角色。
  对许多人而言,iPad代表着填补智能手机和全功能电脑(不管是笔记本电脑还是台式机)之间空白的移动设备。尽管很多人用iPad消遣,但iPad也能用来完成原本笔记本电脑或台式机才能做的大量任务。这促使iOS开发者重新考虑怎样实现传世已久的软件理念。字处理软件正是其中的一种理念,它在iPad上找到了新生。
  iPad开启了由于iPhone尺寸太小而无法实现的广阔应用程序之门。字处理软件又一次成为人们想到的这种应用程序。
  虽然iPhone很适合速记,但对写冗长的文档则不够理想。尽管在技术上实现一个功能齐全的iPhone字处理软件是可能的,但你会用吗?屏幕太小了,即使是在横向模式,在那么小的画面上点动两个手指效率仍旧很低。iPhone适合完成简单、快速的任务,例如写个便条、安排日程、将待办事宜标为已做,但对于较长的任务,例如写书的工作并不合适。
进入iPad
  iPad提供类似小型笔记本电脑的体验。与无线键盘配合,iPad就成为编写冗长文档的良好工具。我是从体验方面说的。本书的大量文本都出自iPad。我不能想象要是用iPhone会是什么样子,但我知道iPad上是怎样的,这样做是种享受。它尤其出色的是,使你能专注于一个任务。这样可以避免分神,让你更好地专注于手头的工作。
本书组织结构
  顾名思义,本书将为你提供随手指导。它将带你走过iPad编程的每个阶段,从下载安装iOS SDK到向苹果公司发布第一个应用程序供其审核,都囊括在内。
  全书包括27章及一个附录,如下所示:
  * 第一部分,“入门”
  第一部分介绍了这一行业会用到的工具。这里你将学习诸如Xcode、Interface Builder等开发工具。学习如何使用Objective-C和Cocoa框架来编写代码。你还将学习怎样配置信息,使iPad成为一台开发设备。
   第1章,“你的第一个应用程序”
  该章可帮助你即刻埋头创建第一个应用程序。它为创建一个简单但可用的iPad应用程序提供手把手的指导。该应用程序能够运行于iPad模拟器上。你将使用Xcode创建此应用程序,这意味着要编写少许代码,但在书中的这个位置,还不需要你具备Objective-C知识。该章的目标是让你立即掌握要用于创建iPad应用程序的工具和代码。
   第2章,“Xcode入门”
  Xcode是开发者的集成开发环境(Integrated Development Environment,IDE),用来编写iPad应用程序的Objective-C代码。该章强调Xcode的关健特性,包括推荐的选项设置、常用的快捷键、使用Xcode时的各窗口说明。
   第3章,“Interface Builder入门”
  该章将探究Interface Builder(即IB)。Interface Builder是个用来创建应用程序用户界面的工具,不需要编程。此章解释使用IB的方法,以及它的许多有用功能。此外,该章还会给出使用IB时常犯错误的警告,例如忘了将事件关联至IBAction。
   第4章,“Objective-C入门”
  该章介绍Objective-C,带有选择iPad编程可用语言的简短综述。该章不是意在对此编程语言作广泛的讲解,而是提供足够的信息,使你能够着手编写第一个实际的iPad应用程序。
   第5章,“Cocoa入门”
  编程语言只有在支持它的框架强大时才会表现强大,Cocoa提供了令人赞叹的框架栈,以及一个库,使得你构建iPad应用程序时能缩短时间。
   第6章,“为iPad配置信息”
  在通往iPad精彩世界的道路上会有些惊险时刻。最吓人的一个是信息提供概述、许可证和注册测试用的设备。Xcode 4在此方面作了改进,但仍远不够完美。该章引导你经历配置文件、许可证和设备注册的惊险森林。
   第7章,“应用程序设计”
  如果你不知道在构建什么,就无法构建应用程序。该章在你还未编写一行代码之前分享设计应用程序的窍门。
  * 第二部分,“构建PhotoWheel”
  第二部分是本书的核心。在此你将亲手构建真实的iPad应用程序。你所构建的这个应用程序并非简单的Hello World。它叫PhotoWheel,一个功能齐全的照片应用程序。在第二部分,你将学习从视图转换时的定制动画到iCloud在电视上同步显示照片等所有知识。
   第8章,“创建主从复合应用程序”
  当着手构建PhotoWheel时,首先构建其原型。通过构建原型,你可借此机会学习主从复合应用程序里的分割视图控制器。
   第9章,“使用表格视图”
  在该章中,你将使用表格视图来学习显示数据的基本知识。你还会学习怎样重排序、删除,甚至编辑表格视图所显示的数据。
   第10章,“用视图工作”
  在该章中,你将沉浸于视图的世界。在此学习如何创建显示照片的轮状视图。
   第11章,“使用触屏手势”
  在该章中,你将学习怎样利用iPad的多点触屏。你会学习使用触摸手势,以便用户能够与你的应用程序交互。
   第12章,“添加照片”
  PhotoWheel是与照片相关的,所以很自然地你要了解将照片添加到应用程序的办法。在该章,你会学习如何从Photos应用程序的库里获取照片,以及怎样使用内置的摄像头拍照得到照片。
   第13章,“数据持久化”
  如果人们无法保存其工作,PhotoWheel就没那么有用了。保存和获取应用程序数据的方法有多种,这里会讨论其中两种,并学习使用Core Data。
   第14章,“Xcode中的故事板”
  故事板是个设计应用程序用户界面的新办法,很讨人喜欢。在该章,你将亲手使用故事板,并学习怎样使用Interface Builder以更少的代码做更多的事。
   第15章,“视图控制器详解”
  故事板的功能毕竟有限。在有些时候,必须编写代码才能使应用程序真正光彩照人。在该章你将学习充分利用视图控制器的办法。
   第16章,“构造主屏幕”
  在该章中,你将对PhotoWheel进行深入编程。原型已经完成,你会有个替代故事板的基本用户界面。现在该构建其主画面了,这正是你在该章要做的事情。你还将学习怎样使用容器视图控制器,并构建定制栅格视图以便可用到其他项目。
   第17章,“创建照片浏览器”
  在该章中,你将学习使用滚动视图的方法,创建全屏的照片浏览器。你还要了解怎样使用二指拨动手势来缩小和放大照片的显示。
   第18章,“支持设备旋转”
  用户期望无论怎样手持iPad,应用程序都应显示得当。用户可能会在拿iPad时Home按钮处于左边或右边,也可能在上边或下边。你的工作就是要确保不管什么情况,应用程序都要正确显示。这就是你要在该章学习的内容:怎样支持设备旋转。
   第19章,“用AirPrint打印”
  该章直奔要点,传授怎样使用AirPrint从应用程序中打印内容。
   第20章,“发送电子邮件”
  现今时代几乎每个人都有电子邮件账号,每个人都喜欢看照片。所以PhotoWheel用户自然会想通过电子邮件与家人或朋友分享照片。该章将介绍怎样从应用程序中发送电子邮件。
   第21章,“Web服务”
  将iPad上已有的照片添加到PhotoWheel固然不错,但许多人还将照片保存到其他地方。该章将介绍怎样在iPad应用程序与Web服务器间通信,以从Flickr上搜索和下载照片。
   第22章,“与iCloud同步”
  很多人都有多台iOS设备,要是能在所有设备间使用PhotoWheel共享同样的数据就好了。同步难度很大,但有了iCloud就会容易多了。该章将添加照片和相册的在线同步功能。
   第23章,“用AirPlay放映幻灯片”
  iPad有个大屏幕,但你也许想向一群人展示照片,而让所有人围着一个手持设备显得不甚方便。该章将揭示怎样利用外部的无线显示器,例如可能的大型电视,从iPad应用程序让其显示内容。你将使用AirPlay实现,这样就不用在房间里乱走线了。
   第24章,“Core Image的视觉特效”
  Core Image是分析和修改图片的框架,由其可获得令人吃惊的效果。即使颜色特效和自动照片增强技术难以做到,还可以使用Core Data Image定位照片中的人脸。可以在便捷的用户界面中把这个功能加入PhotoWheel,以便人们在应用这些特效前预览其效果。
  * 第三部分,“最后的润色”
  在本书的最后一部分,你将学习调试应用程序的技巧。但更重要的是,你还将学会怎样向别人发布你的应用程序。
   第25章,“调试”
  在这个时候,你已经知道怎样创建iPad应用程序了,但出了问题怎么办呢?该章讲述应用程序的调试,介绍GDB和展示如何打开、关闭断点,以及怎样利用声音来调试。该章还会介绍更高级的调试技术,诸如使用Instruments来跟踪内存泄漏。
   第26章,“发布应用程序”
  应用程序已经编写完毕,已经经过调试和测试。下一步就是将应用程序交到用户手里。该章探讨发布iPad应用程序的一些选项,介绍两种最常用的发布方法:非正式发布和App Store发布。
   第27章,“结语”
  该章以一些对iPad程序员的励志话语结束本书。
  * 附录A,“安装开发工具”
  此附录将带你完成要开始iPad编程之前的那些步骤。包括设立iOS开发账号,下载iOS SDK,以及在Mac计算机上安装开发工具。
  本书将你从应用程序设计一路带到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的源码
  PhotoWheel在每章及全部的源码都可以从本书的网址:learnipadprogramming.com/source-code/下载。虽然本书介绍开发PhotoWheel的篇幅是有限的。但我们的学习是无止境的,我们对此应用程序还有大量工作可做,所以还有很多东西可学。最新的源码可以在github(网页为github.com/ kirbyt/PhotoWheel)处找到。
  你还可以在本书的博客网址(learnipadprogramming.com/blog/)找到更多介绍方法和技巧的文章,来改进PhotoWheel。
  如果你还有其他问题,或者想报告缺陷或向PhotoWheel提出新功能,请不吝发电子邮件至kirby@whitepeaksoftware.com或tph@atomicbird.com。也可以在Twitter上发消息给@kirbyt或@atomicbird。
  本书随处都有丰富的代码,还有可供操练的练习题,所以本书假定你已经获得了Xcode和iOS SDK等苹果公司的开发工具。这些都可以从苹果公司的iOS开发中心1下载。
插图提供人
  Matt McCray这个小伙子热情洋溢地提供了PhotoWheel的插图。如果你要找人为应用程序设计插图,则可以与他联络。他的电子邮箱是matt@elucidata.net,其个人网站为:www.elucidata.net。
致谢
  与写作其他任何书一样,在写作过程中总是有许多人默默做出了贡献。这里请允许我们花点时间表达对这些人的谢意……
Kirby Turner的致谢
  首先感谢我的妻子Melanie和儿子Rowan,感谢他们的支持与耐心,让我能集中精力完成本书的创作。感谢Tom在本书的最后阶段答应成为我的合著者,要是没有他的帮助,本书可能还会延误更长时间。我要对Chuck Toporek致以最诚挚的谢意,是他给了我这个写书的机会。当然了,我还要感谢那些技术审核人员以及产品开发团队,他们在短期内做出了辛苦的工作。
  还要特别感谢Daft Punk,他的TRON:Legacy相册是本书大部分配套内容的原型。
  感谢史蒂夫·乔布斯以及苹果公司令人赞叹不已的工程师,是你们把编程乐趣重新带给了我。最后,感谢Mac和iOS开发社区。如果没有这个独特社区的热情和精神,一切都不可能成真。
Tom Harrington的致谢
  感谢Kirby邀请我参加本书的创作。特别感谢我们的技术审核者Chuck Toporek,以及产品团队其他成员的辛勤劳动,才使本书得以高质量地交付印刷。我和Kirby是在iOS 5还在测试阶段时著作本书的,我们再三发现在完稿前必须做些修订,以赶上iOS和开发工具改变的步伐。所涉及的每个人在应对写书时内容持续的变化都表现得很出色。
  感谢苹果公司每个致力于iOS 5和iPad开发的每个人。没有他们,我们就无法将这么热门的话题写成书。
  最后,在写本书致谢时,我们才知道史蒂夫·乔布斯已经去世。他是苹果公司长久而且非常成功的首席执行官。我在30年前就开始在Apple Ⅱ上编写软件了,它也奠定了我日后事业的基础。谢谢你所做的一切,史蒂夫。

  网址是developer.apple.com/ios。

上架指导

计算机\程序设计

封底文字

本书整个采用一种令人称奇的生动办法,即从头到尾设计和开发一个既简单又现实的iPad应用程序来贯穿本书。它改变了人们对技术性书籍的看法,它解释怎样、为何这样做,用的是大量有趣的例子,而不是自说自话,让你埋没于令人意识麻木、单调乏味的繁琐细节里。更让我吃惊的是,它这么做并未假定用户有什么经验。然而它是以足够的深度循序渐进,旨在让所有开发人员获取足够的信息。Kirby和Tom深谙这些教程,在介绍各种框架时给出了精彩的表现,阐述怎样、为何以及何时要使用这些框架背后的原因。对于有兴趣开发此精湛平台的任何人,我都强烈推荐这本书。
——Julio Barros,E-String.com公司
这本书是对iPad编程的精彩介绍,其中贯穿着一个精心编制的示例项目。不管对初学者,还是对那些熟悉iPhone开发、正在寻求了解在更大屏幕的iPad上开发有何不同之处的人来说,这本书都是不错的教材。
——Patrick Burleson,BitBQ LLC(http://bitbq.com)的持有人
这本书为当今最热门的一个话题提供了浅显易懂的介绍。它是为有抱负的iPad程序员准备的精彩读物。
——Robert Clair,《Learning Objective-C 2.0》一书的作者
这本书是我在开发iPad上的应用时的必备参考书。它绝对是蕴藏iPad开发有用信息和诀窍的宝库。人们很容易认为iPad只不过是大一点儿的iPhone,但在iPad上其实有特定的主题要考虑,例如较大显示屏的充分利用。这本书提供了iPad编程所有领域的大量深度内容,能帮助你从设计到全面让应用程序工作起来,我认为这是本书的杀手级特色。本书应作为所有人的参考书。
——Mike Daley《Learning iOS Game Programming》一书的作者、71Squared.com的合伙创立人
本书对每位iOS开发者来说都是知识全面的一本书,不管他们是有待提高的程序员还是高手。如果你还不了解iOS,第一部分会带你夯实基础,领你学习Objective-C、core Apple框架、信息提供概述,以及透彻理解Xcode;假如你对iPad略知一二,想洞悉iPad编程,第二部分将让你明了这些内容:不是提供各不相关的示例代码,而是向你传授累进构建、改进真实应用程序的实际代码。如果你已经有iOS开发经验,可以从iOS 5和Xcode 4知晓各种数不胜数的新功能,深入学习序列图像板、iCloud和Core Image的各章。更可嘉的是,本书经过精心组织,读起来津津有味。可作为iOS程序员的主要参考书。
——Alexis Goldstein《HTML5 & CSS3 for the Real World》一书的作者
这本书是世界上有关苹果公司iPad平台开发最全面的资源之一。除了涵盖语言、框架和工具之外,它还深入探讨iOS 5的新特性,例如自动引用计数、序列图像板,以及如何将应用程序连接到iCloud。然而本书真正的亮点在于其教程和你通读此书时要构建的应用程序。它没有只是对Interface Builder里现成的iOS用户界面耍弄一下,而是将其实际运用起来。PhotoWheel展示了定制视图编程和视图控制器容器、非标准手势和用户输入的处理,并提供了怎样将多个子系统组装到一个复杂项目,以得到可交付的应用程序。换句话说,本书给出了在实际iPad开发中所面临挑战的处理办法。
——Erik Price,Brightcove公司的高级软件工程师
这真是一部为学习和编写iOS应用程序精心策划的指南,从对Xcode和Interface Builder的低门槛入门,到创建全功能的iPad应用程序。有许多书尝试涵盖让一窍不通的读者可以变得精通的知识,这本书真正做到了这一点。它是一本全面、饶有味道的向导,引导人们进入为苹果魔力设备开发应用程序的天地。
——Rod Strougo,Prop Group的创办人
iPad正在改变我们考虑和运用技术的方式。这本书能够加速新老开发者对苹果公司激动人心新平台的开发过程。在这一方面,这本书是最有深度和运用良好的指南之一。
——Justin Williams,Second Gear的首席员工

作者简介

(美)Kirby Turner,Tom Harrington 著:暂无简介

译者简介

张菲 译:暂无简介

译者序

2001年,苹果公司推出了iPhone、iPad系列产品。这些产品一面市就引起巨大的轰动,甚至引发了抢购热潮。最近有消息传出,苹果公司超越微软公司,成为全球市值最高的公司。追逐潮流的年轻人都以拥有iPhone、iPad为荣。iPad平板电脑的出现,标志着后PC时代的到来,即台式机与嵌入式系统正往一起融合,而不像我们先前认为的,各自是独立的电子产品。如今的嵌入式系统,其操作系统和硬件资源的强大程度都直逼台式机,甚至超越后者。这种趋势使PC程序员和嵌入式系统固件程序员都面临着更复杂的技术和平台,也带来了前所未有的整合机会,因为先前独立的PC软件开发和嵌入式系统固件开发变得不再那么泾渭分明了。
  iPhone、iPad的流行促使不少程序员转向这些移动应用程序的开发。其中要涉及不少苹果公司特有的内容,例如,配置设备信息、发布。这些都是未涉足此领域的程序员所不曾有过的经历。Kirby Turner与Tom Harrington合著的这本书不仅为我们提供了iPhone、iPad上(主要是iPad)开发应用程序(开发环境是Xcode 4.2,运行环境是iOS 5)的基础知识,介绍了软件应用的许多技巧和怎样充分利用开发工具和操作系统的最新特性,还详细讲述了开发苹果公司产品所运行的应用程序的独到之处。后一部分内容倒不讨论什么技术难题,但它对那些有着丰富编程经验,却未接触过苹果公司产品开发的高级程序员来说,能够马上用来使应用程序运行起来,因此显得尤其珍贵。
  更难得的是,本书采用一种实战的做法,饶有兴趣地提供了一个生动的照片浏览应用程序PhotoWheel项目。你将在前面章节建立这个项目,随着后续章节内容的不断深入,陆续添加各种代码来实现某项功能。等读完本书后,你会惊喜地发现,你亲手制作的PhotoWheel项目已可编译生成功能完整、强大的应用程序!你可以向周围的同学、同事、家人炫耀,得到他们的赞许和钦佩,让他们实际使用它。这是何等令人兴奋!这样的做法能让你随着阅读本书而逐步积累成就感和自信心。通过本书的引导,你能够很快成长为一名iOS程序员,开发出自己的iPad应用程序。这在同行业的软件指导书中是不多见的,也是效果很好的做法,由此也体现了作者的良苦用心。
  原书中出现单词need to、your的地方比比皆是,翻译为使中文流畅,我尽量交替使用各种词汇;而许多时候为避免啰唆,在不发生歧义的前提下your一般都没有译出。此外,由于英语中大量用到从句,有别于中文习惯。在先前译作中,我经常要用“后者”指代前句提到的最后一个代词或名词,有读者认为这样表达不明确,容易糊涂。因此在本书的译文中,基本上没有出现“后者”,而是明确指出为相应的代词或名词。作者在书中提及一些参考书,如有中文翻译版出版的,我以中文书名为准,并给出了译者、出版社、出版日期、书号等信息;尚无中文翻译版书籍的,我则自行翻译。倘若与日后可能出版的中文翻译版书名有出入,请读者在检索时以英文书名为准。
  机械工业出版社的编辑关敏女士作为本书的联络人,在翻译本书的过程中为我提供了周到细致的服务。其他编辑对译稿做了高效率、全方位、细致的审校工作,指出了不少问题。这些我都一一接受,对提高本书的翻译质量起了很大的作用。细心的编辑体现了机械工业出版社员工崇高的职业素养,在此我向各位编辑致以崇高的谢意!
  最后也是最重要的,我想感谢选择阅读本书的读者。市面上讲述iPad编程的著作尽管不多,但并非仅此一部,而且每个人的时间和精力都很宝贵,您愿意研读本书,愿意为它投入时间和精力,表明了您对它的信任和期望。我希望本书能帮助您达到目标。祝您成功!
  译文力争以通俗通畅的汉语再现原著的知识。由于译者水平有限,可能存在某些疏漏之处,请读者不吝赐教。您的意见、建议能够帮助我们改善本书的质量。也欢迎发邮件到zhangfei97@ 163.com,与我交流本书相关的信息,再次感谢!

张菲

图书目录

译者序

前言
第一部分 入门
第1章 你的第一个应用程序 1
1.1 创建“Hello World”项目 1
1.2 在屏幕上显示文字 5
1.3 说“Hello

教学资源推荐
作者: 王雷 刘志成 周晶 编著
作者: Stuart Reges;Marty Stepp
作者: [美] 约翰·戴维·斯通(John David Stone) 著
作者: 顾治华 陈天煌 忽朝俭
参考读物推荐
作者: 王宇韬,王皓,张鹤藐
作者: 吴明杰 曹宇 吴丹 著
作者: [美] 迈克·阿瑟顿(Mike Atherton) 卡丽·哈恩(Carrie Hane) 著