iPhone是一种全新的移动平台,苹果公司为它推出了强大的软件开发工具包iPhone SDK。本书是一部关于iPhone SDK和iPhone开发的基础教程,内容翔实、语言生动。书中结合消费类设备上常见的实例,循序渐进地讲解了iPhone开发的基本流程,并介绍了最先进、时尚、受欢迎的iPhone特性。.
本书内容完整丰富,具有较强的通用性,编程领域中各层次读者都能通过本书快速学习iPhone开发,提高相关技能。
Apple公司的iPhone已经开创了移动平台新纪元!它与App Store的绝配也为全世界的程序员提供了一个施展才华的全新大舞台。只要有新奇的创意,你完全有可能像开发iShoot游戏的Ethan Nicholas(日收入2万多美元)和开发Trism游戏的Steve Demeter(月收入超过10万美元)那样,仅凭单枪匹马就赢得全球市场,成功创业,改变自己的人生。..
本书由业界名家撰写,英文原版问世以后迅速登上Amazon计算机图书排行榜榜首并持续至今,总排名一度达到20名左右,创造了销售奇迹。而且,本书获得了读者的一致好评,已经被奉为经典。书中从到Apple网站注册账号,下载和安装免费iPhone SDK开始,清晰透彻地讲述了创建iPhone应用程序的全过程。在探讨基本概念和各个关键特性(iPhone界面元素、数据保存、SQLite、Quartz和OpenGL ES、手势支持、本地化、Core Location等)时,提供了丰富的实例。更难得的是,本书始终强调iPhone开发中的各种最佳实践,即使是有经验的开发人员,也会因此受益匪浅。
开卷阅读本书,进入iPhone开发的神奇世界吧,它将让你热血沸腾!...
Dave Mark 深受爱戴的Apple技术开发专家,具有多年开发经验。他是许多Mac平台畅销书的作者,包括Learn C on the Mac、Macintosh Programming Primer系列以及Ultimate Mac Programming。可以通过www.davemark.com与他联系。.
Jeff LaMarche 资深Apple平台专家,拥有多年企业级开发经验。他是MacTech Magazine和Apple公司开发人员网的专栏作家。...
..
<< 查看详细
第1章 欢迎来到iPhone的世界 . 1
1.1 关于本书 1
1.2 必要条件 1
1.3 必备知识 3
1.4 编写iPhone应用程序有何不同 4
1.4.1 只有一个正在运行的应用程序 4
1.4.2 只有一个窗口 4
1.4.3 受限访问 4
1.4.4 有限的响应时间 4
1.4.5 有限的屏幕大小 5
1.4.6 有限的系统资源 5
1.4.7 缺少Cocoa工具 5
1.4.8 新属性 5
1.4.9 与众不同的方法 6
1.5 本书内容 6
1.6 准备开始吧 7
第2章 创建基本项目 8
2.1 在Xcode中设置项目 8
2.2 Interface Builder简介 12
2.2.1 nib文件的构成 14
.2.2.2 在视图中添加标签 15
2.3 iPhone美化 17
2.4 小结 20
第3章 处理基本交互 21
3.1 模型—视图—控制器范型 21
3.2 创建项目 22
3.3 创建视图控制器 22
3.3.1 输出口 23
3.3.2 操作 23
3.3.3 将操作和输出口添加到视图控制器 24
3.3.4 将操作和输出口添加到实现文件 26
3.4 使用应用程序委托 30
3.5 编辑MainWindow.xib 32
3.6 编辑Button_FunViewController.xib 33
3.6.1 在Interface Builder中创建视图 33
3.6.2 连接所有元素 35
3.6.3 测试 37
3.7 小结 38
第4章 更丰富的用户界面 39
4.1 满是控件的屏幕 39
4.2 活动、静态和被动控件 41
4.3 创建应用程序 41
4.3.1 导入图像 41
4.3.2 实现图像视图和文本字段 42
4.3.3 添加图像视图 43
4.3.4 添加文本字段 46
4.3.5 设置第二个文本字段的属性 49
4.3.6 连接输出口 49
4.4 构建和运行 49
4.4.1 完成输入后关闭键盘 50
4.4.2 通过触摸背景关闭键盘 51
4.5 实现滑块和标签 52
4.5.1 确定输出口 52
4.5.2 确定操作 52
4.5.3 添加输出口和操作 52
4.5.4 添加滑块和标签 53
4.5.5 连接操作和输出口 54
4.6 实现开关和分段控件 55
4.6.1 确定输出口 55
4.6.2 确定操作 55
4.6.3 添加开关和分段控件 57
4.6.4 连接输出口 58
4.7 实现按钮、操作表和警报 59
4.7.1 将输出口及操作添加到控制器头文件 59
4.7.2 在Interface Builder中添加按钮 60
4.7.3 实现按钮的操作方法 60
4.8 显示操作表 61
4.9 美化按钮 63
4.9.1 viewDidLoad方法 64
4.9.2 控件状态 65
4.9.3 可拉伸图像 65
4.10 小结 65
第5章 自动旋转和自动调整大小 67
5.1 使用自动调整属性处理旋转 68
5.1.1 指定旋转支持 68
5.1.2 使用自动调整属性设计界面 70
5.1.3 自动调整属性 70
5.1.4 设置按钮的自动调整属性 72
5.2 在旋转时重构视图 73
5.2.1 声明和连接输出口 74
5.2.2 在旋转时移动按钮 74
5.3 切换视图 77
5.3.1 确定输出口 78
5.3.2 确定动作 78
5.3.3 声明动作和输出口 79
5.3.4 设计两个视图 79
5.3.5 实现交换和动作 80
5.3.6 链接Core Graphics框架 83
5.4 小结 85
第6章 多视图应用程序 86
6.1 View Switcher应用程序 88
6.2 多视图应用程序的体系结构 88
6.2.1 多视图控制器也是视图控制器 89
6.2.2 内容视图剖析 89
6.3 构建View Switcher 89
6.3.1 创建视图控制器和nib文件 90
6.3.2 修改应用程序委托 92
6.3.3 SwitchViewController.h 93
6.3.4 修改MainWindow.xib 93
6.3.5 编写SwitchViewController.m 96
6.3.6 实现内容视图 99
6.4 制作转换动画 101
6.5 重构 103
6.6 小结 105
第7章 标签栏与选取器 106
7.1 Pickers应用程序 106
7.2 委托和数据源 108
7.3 建立工具栏框架 108
7.3.1 创建文件 108
7.3.2 设置内容视图nib 109
7.3.3 添加根视图控制器 109
7.4 实现日期选取器 113
7.5 实现单个组件选取器 116
7.5.1 声明输出口和操作 116
7.5.2 构建视图 116
7.5.3 将控制器实现为数据源和委托 117
7.6 实现多组件选取器 121
7.6.1 声明输出口和操作 121
7.6.2 构建视图 122
7.6.3 实现控制器 122
7.7 实现独立组件 125
7.8 使用自定义选取器创建简单游戏 132
7.8.1 编写控制器头文件 132
7.8.2 构建视图 133
7.8.3 添加图像资源 133
7.8.4 实现控制器 133
7.8.5 spin方法 136
7.8.6 viewDidLoad方法 137
7.8.7 最后的细节 139
7.8.8 链接Audio Toolbox框架 142
7.9 小结 143
第8章 表视图简介 144
8.1 表视图基础 144
8.2 实现一个简单的表 147
8.2.1 设计视图 147
8.2.2 编写控制器 148
8.3 添加一个图像 151
8.4 附加配置 151
8.4.1 设置缩进级别 152
8.4.2 处理行的选择 152
8.4.3 更改字体大小和行高 153
8.4.4 委托还能做什么? 155
8.5 定制表视图单元 155
8.5.1 单元应用程序 155
8.5.2 向表视图单元添加子视图 155
8.5.3 使用UITableViewCell的自定义子类 159
8.6 分组分区和索引分区 163
8.6.1 构建视图 163
8.6.2 导入数据 163
8.6.3 实现控制器 164
8.6.4 添加索引 167
8.7 实现搜索栏 168
8.7.1 重新考虑设计 168
8.7.2 深层可变副本 168
8.7.3 更新控制器头文件 170
8.7.4 修改视图 171
8.7.5 修改控制器实现 172
8.8 小结 180
第9章 导航控制器和表视图 181
9.1 导航控制器 181
9.1.1 栈的性质 181
9.1.2 控制器栈 182
9.2 由6个部分组成的分层应用程序:Nav 182
9.3 构建Nav应用程序的骨架 184
9.3.1 创建根视图控制器 185
9.3.2 设置导航控制器 185
9.4 第1个子控制器:展示按钮视图.. 191
9.5 第2个子控制器:校验表 198
9.6 第3个子控制器:表行上的控件 202
9.7 第4个子控制器:可移动的行 207
9.7.1 编辑模式 208
9.7.2 创建一个新的二级控制器 208
9.8 第5个子控制器:可删除的行 213
9.9 第6个子控制器:可编辑的详细窗格 218
9.9.1 创建数据模型对象 219
9.9.2 创建控制器 221
9.9.3 创建详细视图控制器 224
9.10 更多内容 238
9.11 小结 240
第10章 应用程序设置和用户默认设置 241
10.1 了解设置束 241
10.2 AppSettings应用程序 242
10.3 创建项目 243
10.4 使用设置束 245
10.4.1 在项目中添加设置束 245
10.4.2 设置属性列表 246
10.4.3 添加文本字段设置 247
10.4.4 添加安全文本字段设置 249
10.4.5 添加多值字段 249
10.4.6 添加拨动开关设置 250
10.4.7 添加滑块设置 251
10.4.8 添加子设置视图 252
10.5 读取应用程序中的设置 253
10.6 更改应用程序中的默认设置 257
10.7 小结 259
第11章 基本数据持久性 260
11.1 应用程序的沙盒 260
11.1.1 获取Documents目录 261
11.1.2 获取tmp目录 262
11.2 文件保存策略 262
11.2.1 单个文件持久性 262
11.2.2 多个文件持久性 262
11.3 持久保存应用程序数据 263
11.4 持久性应用程序 264
11.4.1 创建持久性项目 264
11.4.2 设计持久性应用程序视图 265
11.4.3 编辑持久性类 265
11.4.4 对模型对象进行归档 269
11.4.5 实现NSCopying 270
11.5 归档应用程序 272
11.5.1 实现FourLines类 272
11.5.2 实现PersistenceViewController类 273
11.6 使用iPhone的嵌入式SQLite3 276
11.7 小结 284
第12章 使用Quartz和OpenGL绘图 285
12.1 图形世界的两个视图 285
12.2 本章的绘图应用程序 286
12.3 Quart绘图方法 286
12.3.1 Quartz 2D的图形上下文 286
12.3.2 坐标系 287
12.3.3 指定颜色 287
12.3.4 在上下文中绘制图像 289
12.3.5 绘制形状:多边形、直线和曲线 289
12.3.6 Quartz 2D工具示例:模式、梯度、虚线模式 289
12.4 构建QuartzFun应用程序 290
12.4.1 创建随机颜色 291
12.4.2 定义应用程序常量 291
12.4.3 实现QuartzFunView框架 292
12.4.4 向视图控制器中添加输出口和操作 294
12.4.5 更新QuartzFunViewController.xib 297
12.4.6 绘制直线 298
12.4.7 绘制矩形和椭圆形 299
12.4.8 绘制图像 301
12.5 一些OpenGL ES基础知识 306
12.6 小结 316
第13章 轻击、触摸和手势 317
13.1 多触摸术语 317
13.2 响应者链 318
13.3 多触摸体系结构 319
13.4 触摸浏览器应用程序 320
13.5 Swipe应用程序 324
13.6 实现多个轻扫 327
13.7 检测多次轻击 329
13.8 检测捏合操作 333
13.9 自己定义手势 336
13.10 小结 339
第14章 我在哪里?使用Core Location定位功能 340
14.1 位置管理器 340
14.1.1 设置所需的精度 341
14.1.2 设置距离筛选器 341
14.1.3 启动位置管理器 341
14.1.4 更明智地使用位置管理器 341
14.2 位置管理器委托 342
14.2.1 获取位置更新 342
14.2.2 使用CLLocation获取纬度和经度 342
14.2.3 错误通知 343
14.3 尝试使用Core Location 344
14.3.1 更新位置管理器 347
14.3.2 确定移动距离 348
14.4 小结 349
第15章 加速计 350
15.1 加速计物理学 350
15.2 访问加速计 351
15.2.1 UIAcceleration 351
15.2.2 实现accelerometer:didAccelerate:方法 353
15.3 摇动与击碎 354
15.3.1 用于击碎的代码 355
15.3.2 加载模拟文件 358
15.3.3 完好如初——复原触摸 359
15.4 滚弹珠程序 359
15.4.1 实现Ball View控制器 360
15.4.2 编写Ball View 361
15.4.3 计算小球运动 364
15.5 小结 366
第16章 iPhone照相机和照片库 367
16.1 使用图像选取器和UIImagePickerController 367
16.2 实现图像选取器控制器委托 368
16.3 实际测试照相机和库 370
16.3.1 设计界面 370
16.3.2 实现照相机视图控制器 371
16.4 小结 374
第17章 应用程序本地化 375
17.1 本地化体系结构 375
17.2 使用字符串文件 376
17.3 现实中的iPhone:本地化应用程序 378
17.3.1 查看当前区域设置 381
17.3.2 测试LocalizeMe 381
17.3.3 本地化nib文件 382
17.3.4 查看本地化的项目结构 383
17.3.5 本地化图像 385
17.3.6 本地化应用程序图标 386
17.3.7 生成和本地化字符串文件 386
17.4 小结 388
第18章 未来之路 390
18.1 答案揭晓 390
18.1.1 苹果公司的文档 390
18.1.2 邮件列表 391
18.1.3 论坛 391
18.1.4 网站 391
18.1.5 博客 391
18.1.6 如果仍未解决问题 392
18.2 再会 ... 392
iPhone自从发布的那一天起就成为科技界的焦点。但一直为人诟病的是,其本身并不支持开源软件开发,也一直没有推出相应的第三方开发工具。而iPhone SDK的发布无疑解决了这一难题。开发人员可以使用iPhone SDK轻易地为iPhone和iPod Touch创建应用程序。其简单易学的操作方式和强大的功能为开发人员带来了超强的能力。.
本书提供了关于iPhone SDK和iPhone开发的全面信息,对Objective-C编程语言、Xcode和Interface Builder开发工具进行了深入浅出的介绍,同时对iPhone开发的基本流程、原理和原则进行了详细和通俗的讲解。本书采用理论与实践相结合的方式,指导读者创建一系列应用程序,让读者能在实践中理解iPhone应用程序的运行方式和构建方式,掌握具体的iPhone特性,学会如何控制这些特性或与之交互。
全书共18章,分为3个部分。前4章介绍iPhone开发中的相关基本概念和开发人员所需的必备知识,并通过示例演示了一些标准的iPhone用户界面控件。第5章至第16章深入介绍如何开发各种高级iPhone特性,其中包括自动旋转、工具栏控制器、表视图、分层列表、应用程序设置、数据管理、绘图、手势输入、Core Location、加速计以及照相机和相片库。最后两章介绍如何将iPhone应用程序翻译为其他语言,从而让更多的用户接受并使用它,以及看完本书之后应该努力的方向。..
本书覆盖面广、结构清晰,是一本有关iPhone开发的全新入门指南。它面向具备基本Objective-C知识的iPhone初、高级开发用户,不论你是经验丰富的开发人员,还是初涉编程领域的新手,都可以从本书中得到有用的信息。书中的示例通用性高,特别适合读者参考使用,这使本书成为广大读者的首选。
iPhone SDK是一个新兴的软件开发平台,但目前国内关于iPhone开发的资料非常有限。相信本书的出版可以为iPhone开发的发展起到推波助澜的作用。
本书由漆振、谢巧云、孙文磊等翻译,在翻译过程中得到了欧阳宇、盛海艳、杨越和张波的帮助,在此一并致谢。由于译者的知识水平有限,加之时间也比较仓促,文中难免会出现一些疏漏,恳请广大读者给予批评指正。...
译者
2009年1月
“从我开始使用Mac以来,我还没有看到过让我如此激动的编程平台。”最近我们经常听到这样的感言,坦白地说,我也有同感。iPhone是一种让人激动不已的出色技术,它将功能和乐趣完美地融合在一起。而程序员使用这种技术可以完成的工作也让人很激动!.
这个世界的大门刚刚打开。花些时间浏览App Store,你会情不自禁地感动振奋。如果你并不负责设计自己的iPhone应用程序,那么为iPhone开发提供咨询也具有无限的商机。每个人好像都想把他们的产品导入该平台。我们的电话已经响个不停了。..
如果你已经研究了几个月,偶尔访问一下我们的网站(http://iphonedevbook.com),并和我们打个招呼吧。请告诉我们有关你的项目的信息,我们很乐意倾听你的诉说。...
Dave和Jeff
“不断有人问我如何开始iPhone开发,但我始终没有找到很好的答案。现在有答案了,Dave和Jeff的这本书简明易懂,并通过许多插图确保你能理解基本概念。在此基础上,他们深入讲述了各种关键概念,如MVC模式和ImageBuilder基本知识。此外,我自己经常将它作为参考指南使用——丰富的代码示例使它成为案头必备。”.
——Steve Demeter,Trism的创建者和Demiforce公司的所有者
“本书清晰地描述了从注册为iPhone开发人员到创建完整的应用程序的整个开发流程。它通过大量示例演示了iPhone的特性。作者在本书中出色地展示了‘最佳实践’编码方法。这是一本很难被超越的iPhone软件创建指南。”
——Aaron Basil,iDev2.com
“Dave Mark始终是Mac编程图书作者中的佼佼者,而他现在又无可争议地成为了iPhone开发图书的王牌作者!本书是iPhone开发的权威指南,任何有意开始iPhone开发的人都应该阅读这本宝贵的参考指南。”
——Brian Greenstone,Pangea软件公司的总裁兼CEO
“Jeff和Dave出色地完成了探索iPhone SDK的任务。本书是当之无愧的iPhone SDK开发最佳资源。开发人员将深深地被本书吸引,本书的实用性将在他们创建新的iPhone应用程序时体现出来。如果你是一名对此新兴平台感兴趣的开发人员,那这本书是必不可少的。”..
——Chris Stewart,iPhoneDevSDK.com创始人
“如果你打算编写iPhone程序,请从这里开始。Dave和Jeff知道你需要什么,也知道如何解释你所学的知识。我对本书覆盖的内容之广感到非常惊讶,从Hello World到分析用户的手势。本书不仅涵盖了操作摄像机等有趣的内容,还包括本地化等现实世界中的开发问题。他们让我受益匪浅。”
——Mark Dalrymple,CocoaHeads创始人之一,Advanced Mac OS X Programming的主要作者
“从技术概述入手,到如何处理设备,作者带领我们直接进入了iPhone开发的核心领地。随着深入学习,你会了解关于各种布局引擎、视图管理器以及加速计和GPS API的更多知识。这本书是希望迅速且有效地开始iPhone开发的人士的必备之书!”
——Chris Pelsor,Tarantell:Hybrid公司经理
“Trism游戏让我在2个月内收入25万美元,然后有无数人问我怎么开发iPhone应用,现在答案出现了!Dave和Jeff的书深入浅出、循序渐进而且示例丰富,堪称完美。它已经成了我的必备参考书,需要不时查阅。强烈推荐!”...
——Steve Demeter(《连线》杂志“2008最佳iPhone应用”Trism游戏开发者)