第一部分 起步 1
第1章 “杀手级”iPad应用的要素 3
是什么让iPad应用程序变得优秀 4
“沉醉其中”的体验 5
让内容与场景关联 6
设计“触显”体验 7
充分利用平台优势 7
充分利用系统优势 8
访问因特网 9
获知用户的位置 10
跟踪方向和运动 10
检测手势 10
多媒体播放 11
从苹果自带应用中获得信息 11
在应用程序之间复制、剪切和粘贴 11
多任务、后台处理和通知 12
利用大屏幕 12
拥抱iPad的局限 13
为手指而设计 14
权衡内存和电池电量 14
为什么开发iPad应用程序? 15
开发满足苹果期许的产品 16
应用程序生态 17
“漫步云端” 18
使用本书示例正确进行应用程序开发 19
下一步 20
第2章 认识SDK 21
使用SDK进行开发 21
使用Xcode开发应用 22
创建一个Xcode项目 23
开发应用程序 23
Workspace窗口 24
Workspace区域 26
显示区域中的内容 28
工具栏和标签栏 32
组织器窗口 33
第3章 Xcode项目的“螺丝钉” 35
创建你的项目 35
探索你的项目 40
项目 41
项目编辑器 41
项目导航器 43
设置你的Xcode首选项 46
构建和运行你的应用程序 49
构建应用 50
iPad分离视图 52
Log导航器 53
在模拟器中运行 54
操作模拟设备 55
模拟手势 55
卸载应用与重置设备 56
适应模拟器的局限 57
添加图片、声音资源以及应用程序图标 58
标准与视网膜显示 59
添加应用程序图标 60
新图标 61
第二部分 构造RoadTrip应用程序 63
第4章 Storyboard和用户体验 65
Storyboard简介 66
讲述你的“故事” 67
使用对象图 68
决定应用程序要做什么:RoadTrip应用程序 69
创建应用程序结构 73
使用框架 74
使用设计模式 75
iOS设计模式 76
MVC设计模式 76
使用窗口和视图 79
初识窗口 79
扫视视图 79
你使用的视图类型 81
视图控制器——Storyboard的核心 85
来讲讲模型 87
没有那么完美 88
看看别的框架 89
Foundation框架 89
CoreGraphics框架 89
更多框架 89
理解项目中的MVC 90
第5章 创建RoadTrip的用户界面 93
在Storyboard中创建用户界面 93
关于视图控制器 94
使用Interface Builder添加用户元素 95
使用Utility区 97
检视器和QuickHelp面板 97
Library面板 98
理解iPad导航 98
添加一个新的视图控制器 102
添加用户界面对象 111
自适应尺寸 115
添加Test Drive按钮 119
调整模板代码 123
自适应尺寸的按钮 127
第6章 运行时、内存管理与属性 130
一步步看应用程序生命周期 131
UIApplicationMain 132
处理运行中的事件 136
处理运行时的中断 137
视图控制器生命周期概览 141
使用Managed Memory Model设计模式 142
理解内存管理 142
使用引用计数 143
自动引用计数(ARC) 144
使用ARC相关的变量类型 146
理解保持循环 147
监听低内存警告 149
viewDidUnload方法 149
didReceiveMemoryWarning方法 150
applicationDidReceiveMemoryWarning:方法 150
UIApplicationDidReceiveMemoryWarningNotification:notification 150
为应用程序选择正确的内存管理策略 151
自定义框架类的行为 151
继承 151
Delegation模式 152
理解声明属性 153
声明属性的组成部分 154
使用点号 154
为声明属性设置修饰符 155
编写自己的访问方法 157
使用访问方法访问实例变量 158
隐藏实例变量 158
第7章 使用源代码编辑器 160
在Xcode源代码编辑器中进行导航 160
使用跳转栏 163
使用#pragma mark语句组织你的代码 165
使用Xcode源代码编辑器 166
使用Live Issues和Fix-it 167
编译器警告 168
Issue Navigator 169
访问文档 170
获取Xcode帮助 170
组织器窗口 173
帮助菜单 174
在项目中进行搜索 175
使用查找工具定位文件中的符号 175
使用Search Navigator在项目或框架中检索 176
使用Symbol Navigator 177
终于可以编写代码了! 177
第三部分 实践中学习——基础功能 179
第8章 终于开始编写代码了 181
检查网络连接 181
下载Reachability示例 181
添加代码检查连接性 186
装扮主视图 189
理解自动旋转 196
编写无Bug代码 199
在调试区中使用调试导航器 200
管理断点 202
深入调试区 206
深入调试导航器 208
在源代码编辑器中显示变量 208
单步执行 209
第9章 在RoadTrip代码中添加Outlet和Action 213
使用自定义视图控制器 213
添加自定义视图控制器 214
在MainStoryboard中搭建TestDriveController 215
理解Outlet 217
添加Outlet 218
打开Assistant编辑器 218
创建Outlet 220
连接检视器 223
使用Target-Action设计模式 225
使用Target-Action模式:关于控件 225
添加一个Action 227
运行时的Outlet和Action 230
第10章 添加动画和声音 232
理解iPad动画 232
视图几何和坐标系统 232
点与像素 233
视图的尺寸和位置 234
使用数据结构 234
视图动画 235
最后,添加代码 236
实现testDrive方法 236
理解Block对象 240
旋转对象 243
使用iPad音频 245
跟踪触控 252
实现图片动画 255
第四部分 模型和应用程序结构 257
第11章 Trip模型 259
模型里有什么? 259
添加模型数据 260
使用属性列表 260
在项目中添加属性列表 263
添加两个模型类 270
理解Trip接口 272
实现Trip类 274
初始化对象 276
调用父类的init方法 276
初始化实例变量 277
返回self 278
初始化Destination类 279
创建Trip对象 283
再谈Debugger 285
第12章 实现Master视图控制器 289
建立自定义视图控制器 289
添加背景图和标题 300
第13章 使用分离视图控制器和Master视图 303
在Detail视图中使用导航控制器的问题 303
在Master视图中使用导航控制器 306
添加手势识别器 310
分离视图控制器 313
UISplitViewController Delegate 315
本地化 320
回到主线 321
添加工具栏 326
对RTMasterViewController的小调整 335
还有一点事 336
第14章 完成基本的程序架构 338
通过Storyboard为应用程序添加更多功能 338
添加Weather视图控制器 339
添加Events控制器 345
添加其余的控制器 347
将Split View控制器转换为Detail View控制器的Relationship 349
第五部分 添加应用程序内容 355
第15章 使用Web视图呈现天气状况 357
搭建Weather控制器 357
添加自定义视图控制器 357
在MainStoryboard文件中搭建WeatherController 358
Weather控制器 365
进一步使用调试器 372
“Unrecognized selector sent to instance” 372
“NSUnknownKeyException” 373
第16章 使用Page View控制器显示事件 375
搭建EventsController 376
添加自定义视图控制器 376
在MainStoryboard中搭建EventsController 377
在MainStoryboard中添加并搭建EventPageController 378
扩展Trip模型 380
添加Events类 382
EventsController及其PageView Controller 385
数据源和Delegate 385
数据源 386
Delegate 386
EventsController 386
EventPageController 391
还剩一个按钮 393
第17章 路径导航 395
搭建Map控制器 395
添加自定义视图控制器 395
在MainStoryboard中搭建MapController 396
让MapKit发挥作用 404
MKMapView 404
增强地图功能 405
改变地图类型 413
添加标注 415
创建标注 415
显示地图标题和标注 419
显示当前位置 424
第18章 地址编码 430
理解iPad地址编码 430
反向地址编码 432
第19章 查找位置 439
搭建Find控制器 439
添加自定义视图控制器 439
在MainStoryboard中搭建FindController 440
实现Find控制器 443
获取输入文本 443
取消单元格高亮 450
查找位置 451
将找到的位置设为地图标题 457
第20章 选择目的地 459
搭建DestinationController 459
添加自定义视图控制器 459
在MainStoryboard中搭建DestinationController 460
添加一个模态视图 464
指定设备方向 466
实现Table View 467
创建Table View 468
添加区段 470
显示单元格 472
实现用户选择 474
选择目的地并保存结果 482
关于设置项的一点建议 488
接下来做什么? 488
第六部分 二十条有用的建议 489
第21章 改进RoadTrip的十条建议 491
扩充首选项设置 491
缓存数据 491
跟踪当前位置与目的地之间的距离 492
分享到Facebook和Twitter 492
边旅行边寄明信片 492
旅店预订 492
规划旅行路线 492
让应用成为生态 493
尽早学会外语 493
改进实现代码 493
第22章 十条建议让你成为快乐的程序员 494
保持弱耦合 494
关注内存 494
不要做重复劳动 495
理解状态切换 496
在正确的时间做正确的事情 496
明智地进行错误处理 497
使用Storyboard 497
时刻关注用户 497
应用程序永无止尽 498
保持激情 498