您的位置:首页 > 移动开发 > IOS开发

iPad应用开发实践指南:菜鸟如何用ios 5开发ipad上的复杂应用程序

2012-12-28 11:35 555 查看

《iPad应用开发实践指南》前言

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则能一目了然地显示你想要的信息,无须另外的触摸和滑动操作。当然,触屏上仍会有一些额外的信息。

更少的层次

由于屏幕较小,许多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填补了电话与电脑之间的空白

到了这里,所有人都会赞成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开发中心下载。

---------------------------------



本文节选自《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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: