关于本书

本书是一本入门书,旨在以教程形式讲解iPhone SDK编程方面的基础知识。它是2008年出版的《iPhone开发实战》的修订版。我们建议读者从第1章直接读到第19章。在此期间,你可以了解这个平台,了解为iPhone和iPad编程的方式,并了解完整的开发过程。

读者对象

本书针对的是有兴趣为iPhone和iPad编写本机程序的所有读者,特别适合想深入钻研iPhone/iPad的人,因为它允许你为苹果公司的所有设备创建本机应用程序。

如果你希望学习iPhone SDK编程,那么通常应该有一些编程经验。如果你以前使用过C语言,那最好不过(但这不是必需的),如果没有这方面的知识,你可以阅读第2章中的Objective-C简介,并且应该通过自学掌握相关的知识点。另外,读者不需要十分熟悉Objective-C、Cocoa或苹果编程,我们会给你提供需要掌握的知识,让你熟悉苹果公司独一无二的编程风格。了解面向对象的概念也会有所帮助,但这仍然不是必需的(再次提醒,可以在第2章中找到这方面的简介)。

本书内容

第1章讨论iPhone和iPad的各个方面,以及它们与iPhone之前的移动电话有何不同。这一章还着重介绍了iPhone和iPad与众不同的地方,这对于程序员也同样重要。

第2章重点介绍了Objective-C,它是iPhone SDK和iPhone OS开发使用的编程语言,后者是一系列可简化大量复杂任务的框架。

第3章介绍Xcode,它是SDK中最重要的一款工具。作为集成开发环境,Xcode的作用并非仅限于编译代码,它还能帮助你纠正一些简单的输入错误,并提供对所有iPhone编程文档快速、集成的访问。

第4章将重点介绍Interface Builder,这是一个图形设计环境,允许你创建和放置界面对象,而不需要编写任何代码。Interface Builder能为程序员节省大量时间,本书后面会常常用到。

第5章介绍简单的视图控制器。基本视图控制器是MVC范型的一个重要组成部分,它将控制与视图分开,而表视图控制器则提供了一种简单的信息组织方法,同时具有标准的iPhone OS外观。

第6章回过头来讨论用户交互,介绍了事件(用户使用一个或多个手指触摸屏幕可生成事件)和动作(当用户与按钮或滑块等控件对象交互时发生)。

第7章分析了两种更高级的视图控制器,结束了我们对视图控制器的讨论。标签栏视图控制器允许在多页内容之间实现模式选择,导航视图控制器可以为表添加层次结构。

第8章讨论了SDK工具包对数据处理的支持。这包括用户输入,比如动作和首选项;数据存储,比如文件;结合输入和存储的工具,比如设备的地址簿。

第9章深入介绍更高级的数据策略。在这一章中,我们将学习如何在SQLite数据库中存储复杂数据,以及如何使用Core Data存储复杂数据。

第10章重点讨论iPhone和iPad上最独特的两个特性——加速计和GPS,并展示了iPhone如何跟踪手机在空间中的移动。

第11章介绍设备的另一个优势:媒体,展示了如何对图片、影片和声音执行基本操作。

第12章介绍音频,讨论如何使用设备的麦克风和扬声器播放和录制音频。

第13章全面介绍了图形,并重点讨论iPhone和iPad的矢量图形语言Quartz 2D。此外,还简要概述了Core Animation并涉及了iPhone OS中的OpenGL。

第14章阐述了如何使用iPhone和iPad与互联网交互。这一章介绍了互联网通信的整体层次结构,从低层主机的连接到URL,从Web视图到XML和JSON等现代数据交换语言。

第15章指导我们完成在iPhone和iPad上创建一个多人玩的乒乓球游戏的整个过程。我们将学习使用Game Kit框架实现P2P通信的所有知识。

第16章介绍如何处理应用程序中的推送通知。还提供了一个简单示例,展示如何使用PHP创建你自己的推送通知服务器。

第17章深入讨论Map Kit框架,展示了在任意应用程序中集成功能齐全的Google地图所需的一切。

第18章介绍了在应用程序中创建虚拟商店的一个主要方法。通过使用Store Kit框架,你会了解创建商店过程中从创建产品到处理购买的每个步骤。

第19章介绍了其他章未曾涉及的一些主题,概括了iPhone SDK的增强特性。还为你学习iPhone 4.0 SDK以及更多信息给出了建议。

附录包含了一些不适合放在正文中的额外信息。附录A列出了SDK对象及其作用。附录B提供了许多与iPhone SDK编程相关的著名网站链接。附录C包含如何将SDK程序部署到实际设备的最新信息。附录D展示了许多技巧,可以使用它们将iPhone应用程序转换为iPad应用程序。

代码约定和下载

本书中包含了许多代码示例。较长的代码都有清楚的代码清单标题,较短的代码会出现在正文中间。所有代码都设置为Courier字体,以便于区分它们。同样,类名也被设置为这种代码字体,如果你要将它们输入到计算机中,可以方便地找到它们。

除了一些示范概念的代码示例之外,所有代码片段都是可运行的程序。完整的程序集可以从http://www.manning.com/trebitowski获得1。读者下载到的应该是一个ZIP文件,对应于SDK程序。我们鼓励你在阅读过程中尝试运行这些程序,其中经常包含本书中没有的代码,并且会提供更多上下文。此外,我们认为实际地运行一下程序可以更好地理解相应的代码。

1 本书源代码可从图灵网站(http://www.turingbook.com)的本书主页免费注册下载。——编者注

本书中的代码片段全都有充分的说明。我们在代码旁边添加了简短的注释,并且在代码行旁边添加了编号球,将后续讨论与代码行关联起来。

软件需求

运行OS X 10.6或更高版本且基于英特尔的Macintosh是进行SDK开发必不可少的。当然,还需要安装iPhone SDK,但只要在苹果公司网站注册后就可以免费下载。本书提供iPhone SDK 3.2的全面介绍,还将讨论iOS SDK 4.0。

作者在线

本书旨在介绍iPhone编程,讨论了iPhone和iPad,但仍然有许多其他内容没有涉及。欢迎读者与作者就其他话题在线交流。

如果你购买本书,可以免费访问Manning出版社主持的私有Web论坛,你可以在那里发表对本书的看法,询问技术问题,并接受来自作者或其他用户的帮助。要访问该论坛或订阅它,请访问http://www.manning.com/trebitowski。在本书出版后,读者还可以从出版社的网站访问Author Online论坛和以前一些讨论的归档文件。

Brandon经常在他的iPhone开发博客http://icodeblog.com上发表一些教程和代码片段。他在微博上也很活跃,可以为你解答大部分iPhone和iPad开发问题,网址是http://twitter.com/brandontreb

Christopher和Shannon最常去的网站是http://iphoneinaction.manning.com。此博客包含他们发现的一些值得注意的新链接,并且经常会讨论在本书中未介绍的“缺失类”,以及其他一些不定期发表的有分量的文章。

并且,我们将继续维护最初由Christopher创建的关于Web开发的iPhone论坛,地址为http://www.iphonewebdev.com

关于书名

本书是结合了介绍、概述和实际示例的“实战”系列图书,旨在帮助读者学习和记忆。根据认知科学的研究,人们最容易记住的是他们在自主探索过程中获取的知识。

虽然Manning出版社中没有人是认知科学家,但我们相信,若让记忆保持长久,那么探索、尝试以及重复均是必不可少的步骤。人们只有在经过主动探索之后才能理解并记住新事物,也就是掌握它们。“实战”系列图书的另外一个特点是包含了大量的示例。它鼓励读者动手尝试,实践新代码,探索新思想。

导致本书书名比较“世俗”的另一个原因是,我们的读者都很忙。他们读书是为了工作或解决某个问题,需要这种可以随意翻阅、跳读的图书。本书就是适合这些读者口味的其中一本。

关于封面图片

本书的封面图片的标题是“Habit of a Lady of Indostan”。图片上画的是一个身着装饰烦琐的长裙、手持长茎鲜花的妇人。此图取自Thomas Jdfferys的Collection of the Dress of Different Nations四卷汇编。Thomas收集的服饰包罗万象,他的绘画优美而又细腻,对欧洲戏剧服装设计产生了长达200多年的影响。我们选择这幅画作为封面图片,就是因为画中人优雅的姿势和她身上精心设计的长裙。

今天,在印度及其邻国仍然可以看见身穿传统纱丽的妇女,纱丽是一种用金线或银线镶边的长条形丝绸。封面的妇人穿着一袭带袖的合体长裙,腰身裁剪细致迷人,她可能穿着这样的服装出席特殊场合,比如婚礼或正式的酒会。

在过去的250多年里,着装风格开始发生了变化,各个国家和区域之间巨大的差异逐渐消失。现在已经很难分辨出不同洲不同地区的人们的着装差异。或许,我们放弃了这种文化上的差异,得到的却是更加丰富多彩的个人生活——或者说是一种更加多样有趣、更快节奏的科技生活。

在各种计算机图书铺天盖地、让人难以分辨的时代,Manning出版社正是为了赞美计算机行业中的创新性和开拓性,才选用了这个重现两个世纪之前丰富多样的地域风情的图片。

目录

  • 版权声明
  • 对上一版的赞誉
  • 前言
  • 致谢
  • 关于本书
  • 第1章 iPhone与iPad简介
  • 第2章 Objective-C和iPhone OS SDK
  • 第3章 使用Xcode
  • 第4章 使用Interface Builder
  • 第5章 创建基本视图控制器
  • 第6章 监控事件和动作
  • 第7章 创建高级视图控制器
  • 第8章 数据:动作、首选项和文件
  • 第9章 数据:高级技术
  • 第10章 定位:加速计、位置和罗盘
  • 第11章 媒体:图像和照相机
  • 第12章 媒体:音频和录音
  • 第13章 图形:Quartz、Core Animation和OpenGL
  • 第14章 Web:Web视图和互联网协议
  • 第15章 使用Game Kit进行P2P连接
  • 第16章 推送通知服务
  • 第17章 Map Kit框架
  • 第18章 使用Store Kit实现应用内购买
  • 第19章 iPhone SDK增强功能
  • 附录A iPhone OS类参考
  • 附录B 外部资源和参考资料
  • 附录C 发布SDK程序
  • 附录D 针对iPad更新当前应用程序