IOS开发指南 从HELLO WORLD到APP STORE上架 第5版


IOS开发指南 从HELLO WORLD到APP STORE上架 第5版


本书是iOS 开发权威教程,以Swift 和Objective-C 两种语言进行讲解。书中分5 部分介绍如何从零起步编写并上线iOS 应用:第一部分介绍iOS 开发的基础知识,包括界面构建技术、基本控件、协议、表视图、界面布局、屏幕适配、导航、iPad 应用开发、iOS 设备手势、Quartz 2D、iOS 动画等;第二部分介绍本地数据持久化、数据交换格式和Web
Service,第三部分为进阶篇,介绍了定位服务、苹果地图、Contacts 框架、应用扩展、用户通知等内容;第四部分介绍测试、调试和优化等相关知识;第五部分为实战篇,涵盖代码版本管理、项目依赖管理、App Store 发布流程,以及一个真实iOS 应用的设计、编程、测试与发布过程。
与上一版相比,本书不仅基于iOS 10 进行了全面更新,还增加并修订了设备手势、Quartz 2D、动画、用户扩展、用户通知、Core Data 等内容。本书适合iOS 开发人员阅读。
目录
第一部分u3000基u3000础u3000篇
第1章u3000开篇综述u3000u30002
1.1u3000iOS概述u3000u30002
1.1.1u3000iOS介绍u3000u30002
1.1.2u3000iOS 10新特性u3000u30002
1.2u3000开发环境及开发工具u3000u30003
1.3u3000本书约定u3000u30004
1.3.1u3000案例代码约定u3000u30004
1.3.2u3000图示的约定u3000u30005
1.3.3u3000方法命名约定u3000u30006
1.3.4u3000构造函数命名约定u3000u30007
1.3.5u3000错误处理约定u3000u30007
第2章u3000第一个iOS应用程序u3000u30008
2.1u3000创建HelloWorld工程u3000u30008
2.1.1u3000通过Xcode创建工程u3000u30009
2.1.2u3000添加标签u3000u300011
2.1.3u3000运行应用u3000u300013
2.1.4u3000Xcode中的iOS工程模板u3000u300013
2.1.5u3000应用剖析u3000u300014
2.2u3000应用生命周期u3000u300016
2.2.1u3000非运行状态——应用启动场景u3000u300018
2.2.2u3000点击Home键——应用退出场景u3000u300018
2.2.3u3000挂起重新运行场景u3000u300021
2.2.4u3000内存清除:应用终止场景u3000u300021
2.3u3000设置产品属性u3000u300022
2.3.1u3000Xcode中的工程和目标u3000u300022
2.3.2u3000设置常用的产品属性u3000u300024
2.4u3000iOS API简介u3000u300026
2.4.1u3000API概述u3000u300026
2.4.2u3000如何使用API帮助文档u3000u300026
2.5u3000小结u3000u300028
第3章u3000Cocoa Touch框架与构建应用界面u3000u300029
3.1u3000视图控制器u3000u300029
3.1.1u3000视图控制器种类u3000u300029
3.1.2u3000视图的生命周期u3000u300029
3.2u3000视图u3000u300030
3.2.1u3000UIView继承层次结构u3000u300030
3.2.2u3000视图分类u3000u300032
3.2.3u3000应用界面构建层次u3000u300033
3.3u3000使用故事板构建界面u3000u300034
3.3.1u3000什么是故事板u3000u300034
3.3.2u3000场景和过渡u3000u300037
3.4u3000使用XIB文件构建界面u3000u300038
3.4.1u3000重构HelloWorldu3000u300038
3.4.2u3000XIB与故事板比较u3000u300042
3.5u3000使用纯代码构建界面u3000u300042
3.5.1u3000重构HelloWorldu3000u300042
3.5.2u3000视图的几个重要属性u3000u300044
3.6u3000三种构建界面技术讨论u3000u300046
3.6.1u3000所见即所得u3000u300046
3.6.2u3000原型驱动开发u3000u300046
3.6.3u3000团队协同开发u3000u300047
3.7u3000小结u3000u300047
第4章u3000UIView与视图u3000u300048
4.1u3000标签与按钮u3000u300048
4.1.1u3000Interface Builder实现u3000u300048
4.1.2u3000代码实现u3000u300051
4.2u3000事件处理u3000u300053
4.2.1u3000Interface Builder实现u3000u300053
4.2.2u3000代码实现u3000u300055
4.3u3000访问视图u3000u300057
4.3.1u3000Interface Builder实现u3000u300057
4.3.2u3000代码实现u3000u300058
4.4u3000TextField和TextViewu3000u300060
4.4.1u3000Interface Builder实现u3000u300060
4.4.2u3000代码实现u3000u300062
4.4.3u3000键盘的打开和关闭u3000u300064
4.4.4u3000关闭和打开键盘的通知u3000u300064
4.4.5u3000键盘的种类u3000u300065
4.5u3000开关控件、分段控件和滑块控件u3000u300067
4.5.1u3000开关控件u3000u300067
4.5.2u3000分段控件u3000u300069
4.5.3u3000滑块控件u3000u300070
4.6u3000Web视图:WKWebView类u3000u300072
4.7u3000警告框和操作表u3000u300077
4.7.1u3000使用UIAlertController实现警告框u3000u300077
4.7.2u3000使用UIAlertController实现操作表u3000u300079
4.8u3000等待相关的控件与进度条u3000u300081
4.8.1u3000活动指示器ActivityIndicatorViewu3000u300081
4.8.2u3000进度条ProgressViewu3000u300083
4.9u3000工具栏和导航栏u3000u300086
4.9.1u3000工具栏u3000u300086
4.9.2u3000导航栏u3000u300090
4.10u3000小结u3000u300095
第5章u3000委托协议、数据源协议与高级视图u3000u300096
5.1u3000视图中的委托协议和数据源协议u3000u300096
5.2u3000选择器u3000u300096
5.2.1u3000日期选择器u3000u300096
5.2.2u3000普通选择器u3000u3000101
5.2.3u3000数据源协议与委托协议u3000u3000106
5.3u3000集合视图u3000u3000108
5.3.1u3000集合视图的组成u3000u3000108
5.3.2u3000集合视图数据源协议与委托协议u3000u3000109
5.4u3000案例:奥运会比赛项目u3000u3000109
5.4.1u3000创建工程u3000u3000110
5.4.2u3000自定义集合视图单元格u3000u3000110
5.4.3u3000添加集合视图u3000u3000112
5.4.4u3000实现数据源协议u3000u3000114
5.4.5u3000实现委托协议u3000u3000115
5.5u3000小结u3000u3000115
第6章u3000表视图u3000u3000116
6.1u3000概述u3000u3000116
6.1.1u3000表视图的组成u3000u3000116
6.1.2u3000表视图的相关类u3000u3000117
6.1.3u3000表视图分类u3000u3000117
6.1.4u3000单元格的组成和样式u3000u3000119
6.1.5u3000数据源协议与委托协议u3000u3000121
6.2u3000简单表视图u3000u3000122
6.2.1u3000实现协议方法u3000u3000122
6.2.2u3000UIViewController根视图控制器u3000u3000123
6.2.3u3000UITableViewController根视图控制器u3000u3000129
6.3u3000自定义表视图单元格u3000u3000133
6.3.1u3000Interface Builder实现u3000u3000133
6.3.2u3000代码实现u3000u3000137
6.4u3000添加搜索栏u3000u3000138
6.5u3000分节表视图u3000u3000143
6.5.1u3000添加索引u3000u3000143
6.5.2u3000分组u3000u3000146
6.6u3000插入和删除单元格u3000u3000147
6.6.1u3000Interface Builder实现u3000u3000149
6.6.2u3000代码实现u3000u3000154
6.7u3000移动单元格u3000u3000155
6.8u3000表视图UI设计模式u3000u3000157
6.8.1u3000分页模式u3000u3000157
6.8.2u3000下拉刷新模式u3000u3000158
6.8.3u3000下拉刷新控件u3000u3000159
6.9u3000小结u3000u3000160
第7章u3000界面布局u3000u3000161
7.1u3000界面布局概述u3000u3000161
7.1.1u3000表单布局模式u3000u3000161
7.1.2u3000列表布局模式u3000u3000161
7.1.3u3000网格布局模式u3000u3000162
7.2u3000iOS中各种“栏”u3000u3000162
7.3u3000传统界面布局问题u3000u3000163
7.4u3000Auto Layout布局技术u3000u3000164
7.4.1u3000在Interface Builder中管理Auto Layout约束u3000u3000164
7.4.2u3000案例:Auto Layout布局u3000u3000164
7.5u3000静态表布局u3000u3000169
7.5.1u3000什么是静态表u3000u3000169
7.5.2u3000案例:iMessage应用登录界面u3000u3000170
7.6u3000使用堆视图StackViewu3000u3000174
7.6.1u3000堆视图与布局u3000u3000174
7.6.2u3000案例:堆视图布局u3000u3000175
7.7u3000小结u3000u3000180
第8章u3000屏幕适配u3000u3000181
8.1u3000iOS 屏幕的多样性u3000u3000181
8.1.1u3000iOS屏幕介绍u3000u3000181
8.1.2u3000iOS的3种分辨率u3000u3000182
8.1.3u3000获得iOS设备的屏幕信息u3000u3000183
8.2u3000Size Class与iOS多屏幕适配u3000u3000184
8.2.1u3000在Xcode 6和Xcode 7中使用SizeClass技术u3000u3000184
8.2.2u3000Size Class的九宫格u3000u3000185
8.2.3u3000Size Class的四个象限u3000u3000186
8.2.4u3000在Xcode 8中使用Size Classu3000u3000187
8.2.5u3000案例:使用Size Classu3000u3000190
8.3u3000资源目录与图片资源适配u3000u3000192
8.4u3000小结u3000u3000195
第9章u3000视图控制器与导航模式u3000u3000196
9.1u3000概述u3000u3000196
9.1.1u3000视图控制器的种类u3000u3000196
9.1.2u3000导航模式u3000u3000196
9.2u3000模态视图u3000u3000197
9.2.1u3000Interface Builder实现u3000u3000199
9.2.2u3000代码实现u3000u3000205
9.3u3000平铺导航u3000u3000206
9.3.1u3000应用场景u3000u3000206
9.3.2u3000基于分屏导航的实现u3000u3000208
9.3.3u3000基于电子书导航的实现u3000u3000213
9.4u3000标签导航u3000u3000219
9.4.1u3000应用场景u3000u3000219
9.4.2u3000Interface Builder实现u3000u3000220
9.4.3u3000代码实现u3000u3000223
9.5u3000树形结构导航u3000u3000225
9.5.1u3000应用场景u3000u3000225
9.5.2u3000Interface Builder实现u3000u3000226
9.5.3u3000代码实现u3000u3000233
9.6u3000组合使用导航模式u3000u3000235
9.6.1u3000应用场景u3000u3000235
9.6.2u3000Interface Builder实现u3000u3000236
9.6.3u3000代码实现u3000u3000243
9.7u3000小结u3000u3000246
第10章u3000iPad应用开发u3000u3000247
10.1u3000iPad与iPhone应用开发的差异u3000u3000247
10.1.1u3000应用场景不同u3000u3000247
10.1.2u3000导航模式不同u3000u3000247
10.1.3u3000API不同u3000u3000247
10.2u3000iPad树形结构导航u3000u3000248
10.2.1 “邮件”应用中的树形结构导航u3000u3000248
10.2.2u3000Master-Detail应用程序模板u3000u3000249
10.2.3u3000使用Interface Builder实现SplitViewSample案例u3000u3000254
10.2.4u3000使用代码实现SplitViewSample案例u3000u3000258
10.3u3000iPad模态视图u3000u3000261
10.3.1 “邮件”应用中的模态导航u3000u3000261
10.3.2u3000iPad模态导航相关APIu3000u3000262
10.3.3u3000使用Interface Builder实现ModalViewSample案例u3000u3000264
10.3.4u3000使用代码实现ModalViewSample案例u3000u3000268
10.4u3000Popover视图u3000u3000271
10.4.1u3000Popover相关APIu3000u3000272
10.4.2u3000PopoverViewSample案例u3000u3000272
10.5u3000分屏多任务u3000u3000276
10.5.1u3000Slide Over多任务u3000u3000276
10.5.2u3000分屏视图多任务u3000u3000278
10.5.3u3000画中画多任务u3000u3000280
10.6u3000iPad分屏多任务适配开发u3000u3000280
10.6.1u3000分屏多任务前提条件u3000u3000280
10.6.2u3000分屏多任务适配u3000u3000281
10.7u3000小结u3000u3000282
第11章u3000手势识别u3000u3000283
11.1u3000手势种类u3000u3000283
11.2u3000手势识别器u3000u3000284
11.2.1u3000视图对象与手势识别u3000u3000284
11.2.2u3000手势识别状态u3000u3000285
11.2.3u3000实例:识别Tap手势u3000u3000285
11.2.4u3000实例:识别Long Press手势u3000u3000290
11.2.5u3000实例:识别Pan手势u3000u3000291
11.2.6u3000实例:Swipe手势u3000u3000293
11.2.7u3000实例:Rotation手势u3000u3000295
11.2.8u3000实例:Pinch手势u3000u3000297
11.2.9u3000实例:Screen Edge Pan手势u3000u3000299
11.3u3000小结u3000u3000301
第12章u3000Quartz 2D绘图技术u3000u3000302
12.1u3000绘制技术基础u3000u3000302
12.1.1u3000视图绘制周期u3000u3000302
12.1.2u3000实例:填充屏幕u3000u3000302
12.1.3u3000填充与描边u3000u3000305
12.1.4u3000绘制图像和文本u3000u3000306
12.2u3000Quartz图形上下文u3000u3000308
12.3u3000Quartz路径u3000u3000309
12.3.1u3000Quartz路径概述u3000u3000309
12.3.2u3000实例:使用贝塞尔曲线u3000u3000311
12.4u3000Quartz坐标变换u3000u3000312
12.4.1u3000坐标系u3000u3000312
12.4.2u30002D图形的基本变换u3000u3000315
12.4.3u3000CTM变换u3000u3000317
12.4.4u3000仿射变换u3000u3000322
12.5u3000小结u3000u3000322
第13章u3000动画技术u3000u3000323
13.1u3000视图动画u3000u3000323
13.1.1u3000动画块u3000u3000323
13.1.2u3000动画结束的处理u3000u3000325
13.1.3u3000过渡动画u3000u3000326
13.2u3000Core Animation框架u3000u3000329
13.2.1u3000图层u3000u3000329
13.2.2u3000隐式动画u3000u3000331
13.2.3u3000显式动画u3000u3000333
13.2.4u3000关键帧动画u3000u3000335
13.2.5u3000使用路径u3000u3000336
13.3u3000小结u3000u3000338
第二部分u3000数据与网络通信篇
第14章u3000数据持久化u3000u3000340
14.1u3000概述u3000u3000340
14.1.1u3000沙箱目录u3000u3000340
14.1.2u3000持久化方式u3000u3000341
14.2u3000实例:MyNotes应用u3000u3000341
14.3u3000属性列表u3000u3000343
14.4u3000使用SQLite数据库u3000u3000349
14.4.1u3000SQLite数据类型u3000u3000350
14.4.2u3000添加SQLite3库u3000u3000350
14.4.3u3000配置Swift环境u3000u3000351
14.4.4u3000创建数据库u3000u3000351
14.4.5u3000查询数据u3000u3000353
14.4.6u3000修改数据u3000u3000355
14.5u3000iOS 10中的Core Data技术u3000u3000357
14.5.1u3000对象关系映射技术u3000u3000357
14.5.2u3000添加Core Data支持u3000u3000358
14.5.3u3000Core Data栈u3000u3000359
14.6u3000案例:采用Core Data重构MyNotes应用u3000u3000360
14.6.1u3000建模和生成实体u3000u3000360
14.6.2u3000Core Data栈DAOu3000u3000366
14.6.3u3000查询数据u3000u3000367
14.6.4u3000修改数据u3000u3000369
14.7u3000小结u3000u3000370
第15章u3000数据交换格式u3000u3000371
15.1u3000XML数据交换格式u3000u3000372
15.1.1u3000XML文档结构u3000u3000372
15.1.2u3000解析XML文档u3000u3000373
15.2u3000案例:MyNotes应用读取XML数据u3000u3000374
15.2.1u3000使用NSXML解析u3000u3000376
15.2.2u3000使用TBXML解析u3000u3000379
15.3u3000JSON数据交换格式u3000u3000385
15.3.1u3000JSON文档结构u3000u3000385
15.3.2u3000JSON数据编码/解码u3000u3000386
15.4u3000案例:MyNotes应用JSON解码u3000u3000387
15.5u3000小结u3000u3000388
第16章u3000REST Web Serviceu3000u3000389
16.1u3000概述u3000u3000389
16.1.1u3000REST Web Service概念u3000u3000389
16.1.2u3000HTTP协议u3000u3000389
16.1.3u3000HTTPS协议u3000u3000390
16.1.4u3000苹果ATS限制u3000u3000390
16.2u3000使用NSURLSessionu3000u3000391
16.2.2u3000简单会话实现GET请求u3000u3000393
16.2.3u3000默认会话实现GET请求u3000u3000396
16.2.4u3000实现POST请求u3000u3000397
16.2.5u3000下载数据u3000u3000398
16.3u3000实例:使用NSURLSession重构MyNotes案例u3000u3000400
16.3.1u3000插入方法u3000u3000401
16.3.2u3000修改方法u3000u3000402
16.3.3u3000删除方法u3000u3000402
16.4u3000使用AFNetworking框架u3000u3000405
16.4.1u3000比较ASIHTTPRequest、AFNetwork-ing和MKNetworkKitu3000u3000405
16.4.2u3000安装和配置AFNetworking框架u3000u3000405
16.4.3u3000实现GET请求u3000u3000407
16.4.4u3000实现POST请求u3000u3000408
16.4.5u3000下载数据u3000u3000408
16.4.6u3000上传数据u3000u3000410
16.5u3000使用为Swift设计的网络框架:Alamofireu3000u3000412
16.5.1u3000安装和配置Alamofire框架u3000u3000412
16.5.2u3000实现GET请求u3000u3000413
16.5.3u3000实现POST请求u3000u3000414
16.5.4u3000下载数据u3000u3000414
16.5.5u3000上传数据u3000u3000415
16.6u3000反馈网络信息改善用户体验u3000u3000416
16.6.1u3000使用下拉刷新控件改善用户体验u3000u3000416
16.6.2u3000使用活动指示器控件u3000u3000419
16.6.3u3000使用网络活动指示器u3000u3000420
16.7u3000小结u3000u3000421
第三部分u3000进u3000阶u3000篇
第17章u3000定位服务u3000u3000424
17.1u3000定位服务概述u3000u3000424
17.1.1u3000定位服务编程u3000u3000425
17.1.2u3000测试定位服务u3000u3000428
17.2u3000管理定位服务u3000u3000432
17.2.1u3000应用启动与停止下的定位服务管理u3000u3000432
17.2.2u3000视图切换下的定位服务管理u3000u3000432
17.2.3u3000应用前后台切换下的定位服务管理u3000u3000433
17.2.4u3000设置自动暂停位置服务u3000u3000436
17.2.5u3000后台位置服务管理u3000u3000436
17.3u3000地理信息编码与反编码u3000u3000437
17.3.1u3000地理信息反编码u3000u3000437
17.3.2u3000实例:地理信息反编码u3000u3000437
17.3.3u3000地理信息编码查询u3000u3000438
17.3.4u3000实例:地理信息编码查询u3000u3000439
17.4u3000小结u3000u3000440
第18章u3000苹果地图应用u3000u3000441
18.1u3000使用iOS苹果地图u3000u3000441
18.1.1u3000显示地图u3000u3000441
18.1.2u3000显示3D地图u3000u3000445
18.2u3000添加标注u3000u3000446
18.2.1u3000实现查询u3000u3000447
18.2.2u3000在地图上添加标注u3000u3000449
18.3u3000跟踪用户位置变化u3000u3000450
18.4u3000使用程序外地图u3000u3000451
18.5u3000小结u3000u3000454
第19章u3000访问通讯录u3000u3000455
19.1u3000通讯录的安全访问设置u3000u3000455
19.2u3000使用Contacts框架读取联系人信息u3000u3000456
19.2.1u3000查询联系人u3000u3000457
19.2.2u3000读取单值属性u3000u3000460
19.2.3u3000读取多值属性u3000u3000461
19.2.4u3000读取图片属性u3000u3000464
19.3u3000使用Contacts框架写入联系人信息u3000u3000464
19.3.1u3000创建联系人u3000u3000465
19.3.2u3000修改联系人u3000u3000467
19.3.3u3000删除联系人u3000u3000468
19.4u3000使用系统提供的界面u3000u3000469
19.4.1u3000选择联系人u3000u3000470
19.4.2u3000显示和修改联系人u3000u3000472
19.5u3000小结u3000u3000475
第20章u3000iOS 10应用扩展u3000u3000476
20.1u3000应用扩展概述u3000u3000476
20.1.1u3000iOS 10应用扩展种类u3000u3000476
20.1.2u3000应用扩展工作原理u3000u3000477
20.1.3u3000应用扩展的生命周期u3000u3000478
20.2u3000Today应用扩展u3000u3000478
20.2.1u3000使用Today应用扩展u3000u3000479
20.2.2u3000实例:奥运会倒计时牌u3000u3000480
20.3u3000开发表情包u3000u3000483
20.3.1u3000iMessage应用u3000u3000483
20.3.2u3000表情包u3000u3000484
20.3.3u3000实例:开发表情包u3000u3000484
20.4u3000Message框架u3000u3000488
20.4.1u3000Message框架的主要APIu3000u3000488
20.4.2u3000消息布局u3000u3000488
20.4.3u3000消息扩展界面的收缩和展开u3000u3000489
20.4.4u3000消息应用的生命周期u3000u3000490
20.4.5u3000消息会话u3000u3000490
20.4.6u3000实例:高斯模糊滤镜u3000u3000491
20.5u3000小结u3000u3000494
第21章u3000重装上阵的iOS 10用户通知u3000u3000495
21.1u3000用户通知概述u3000u3000495
21.1.1u3000通知种类u3000u3000495
21.1.2u3000通知界面u3000u3000495
21.1.3u3000设置通知u3000u3000497
21.2u3000开发本地通知u3000u3000498
21.2.1u3000开发本地通知案例u3000u3000498
21.2.2u3000请求授权u3000u3000500
21.2.3u3000通知的创建与发送u3000u3000501
21.2.4u3000通知接收后的处理u3000u3000503
21.3u3000开发推送通知u3000u3000503
21.3.1u3000推送通知机理u3000u3000504
21.3.2u3000生成SSL证书u3000u3000504
21.3.3u3000iOS客户端编程u3000u3000513
21.3.4u3000在iOS设备上运行客户端u3000u3000515
21.3.5u3000内容提供者推送通知u3000u3000518
21.4u3000小结u3000u3000519
第四部分u3000测试、调试和优化篇
第22章u3000找出程序中的bug——调试u3000u3000522
22.1u3000Xcode调试工具u3000u3000522
22.1.1u3000定位编译错误u3000u3000522
22.1.2u3000查看和显示日志u3000u3000523
22.1.3u3000设置和查看断点u3000u3000524
22.1.4u3000调试工具u3000u3000530
22.1.5u3000输出窗口u3000u3000532
22.1.6u3000变量查看窗口u3000u3000532
22.1.7u3000查看线程u3000u3000533
22.2u3000LLDB调试工具u3000u3000535
22.2.1u3000断点命令u3000u3000535
22.2.2u3000观察点命令u3000u3000537
22.2.3u3000查看变量和计算表达式命令u3000u3000538
22.3u3000日志与断言输出u3000u3000541
22.3.1u3000使用NSLog函数u3000u3000541
22.3.2u3000使用断言u3000u3000542
22.4u3000异常栈报告分析u3000u3000543
22.4.1u3000跟踪异常栈u3000u3000543
22.4.2u3000分析栈报告u3000u3000545
22.5u3000在iOS设备上调试u3000u3000546
22.5.1u3000Xcode设置u3000u3000546
22.5.2u3000设备设置u3000u3000546
22.6u3000Xcode设备管理工具u3000u3000548
22.6.1u3000查看设备上的应用程序u3000u3000548
22.6.2u3000设备日志u3000u3000550
22.7u3000小结u3000u3000551
第23章u3000iOS测试驱动与单元测试u3000u3000552
23.1u3000测试驱动的软件开发概述u3000u3000552
23.1.1u3000测试驱动的软件开发流程u3000u3000552
23.1.2u3000测试驱动的软件开发案例u3000u3000553
23.1.3u3000iOS单元测试框架u3000u3000555
23.2u3000使用XCTest测试框架u3000u3000555
23.2.1u3000添加XCTest到工程u3000u3000555
23.2.2u3000编写XCTest测试方法u3000u3000558
23.2.3u3000运行测试用例目标u3000u3000561
23.2.4u3000分析测试报告u3000u3000562
23.3u3000异步单元测试u3000u3000564
23.4u3000性能测试u3000u3000567
23.4.1u3000测试用例代码u3000u3000568
23.4.2u3000分析测试结果u3000u3000568
23.5u3000小结u3000u3000571
第24章u3000iOS应用UI测试u3000u3000572
24.1u3000UI测试概述u3000u3000572
24.2u3000添加UI测试到工程u3000u3000572
24.2.1u3000创建工程时添加UI测试框架u3000u3000572
24.2.2u3000在现有工程中添加UI测试用例目标u3000u3000573
24.3u3000录制脚本u3000u3000575
24.3.1u3000录制之前的准备u3000u3000575
24.3.2u3000录制过程u3000u3000575
24.3.3u3000修改录制脚本u3000u3000577
24.4u3000访问UI元素u3000u3000577
24.4.1u3000UI元素的层次结构树u3000u3000577
24.4.2u3000UI测试中相关APIu3000u3000579
24.5u3000表示逻辑组件测试最佳实践u3000u3000579
24.5.1u3000备忘录查询操作u3000u3000580
24.5.2u3000增加备忘录操作u3000u3000580
24.5.3u3000删除备忘录操作u3000u3000581
24.5.4u3000显示备忘录详细信息操作u3000u3000582
24.6u3000小结u3000u3000582
第25章u3000让你的程序“飞”起来——性能优化u3000u3000583
25.1u3000内存优化u3000u3000583
25.1.1u3000内存管理u3000u3000583
25.1.2u3000使用Analyze工具检查内存泄漏u3000u3000583
25.1.3u3000使用Instruments工具检查内存泄漏u3000u3000587
25.1.4u3000使用Instruments工具检查僵尸对象u3000u3000592
25.1.5u3000autorelease的使用问题u3000u3000594
25.1.6u3000响应内存警告u3000u3000595
25.2u3000优化资源文件u3000u3000596
25.2.1u3000图片文件优化u3000u3000597
25.2.2u3000音频文件优化u3000u3000598
25.3u3000延迟加载u3000u3000599
25.3.1u3000资源文件的延迟加载u3000u3000599
25.3.2u3000故事板文件的延迟加载u3000u3000603
25.3.3u3000XIB文件的延迟加载u3000u3000605
25.4u3000数据持久化的优化u3000u3000607
25.4.1u3000使用文件u3000u3000607
25.4.2u3000使用SQLite数据库u3000u3000611
25.4.3u3000使用Core Datau3000u3000612
25.5u3000可重用对象的使用u3000u3000613
25.5.1u3000表视图中的可重用对象u3000u3000614
25.5.2u3000集合视图中的可重用对象u3000u3000615
25.5.3u3000地图视图中的可重用对象u3000u3000617
25.6u3000并发处理u3000u3000618
25.6.1u3000一些概念u3000u3000618
25.6.2u3000主线程阻塞问题u3000u3000618
25.6.3u3000选择NSThread、NSOperation还是GCDu3000u3000619
25.6.4u3000GCD技术u3000u3000619
25.7u3000小结u3000u3000620
第五部分u3000实u3000战u3000篇
第26章u3000管理好你的程序代码——代码版本控制u3000u3000622
26.1u3000概述u3000u3000622
26.1.1u3000版本控制历史u3000u3000622
26.1.2u3000基本概念u3000u3000623
26.2u3000Git代码版本控制u3000u3000623
26.2.1u3000服务器搭建u3000u3000623
26.2.2u3000Gitolite服务器管理u3000u3000625
26.2.3u3000Git常用命令u3000u3000627
26.2.4u3000Git分支u3000u3000628
26.2.5u3000Git协同开发u3000u3000632
26.2.6u3000Xcode中Git的配置与使用u3000u3000634
26.3u3000GitHub代码托管服务u3000u3000642
26.3.1u3000创建和配置GitHub账号u3000u3000642
26.3.2u3000创建代码库u3000u3000645
26.3.3u3000删除代码库u3000u3000646
26.3.4u3000派生代码库u3000u3000647
26.3.5u3000管理组织u3000u3000650
26.4u3000小结u3000u3000653
第27章u3000项目依赖管理u3000u3000654
27.1u3000使用CocoaPods工具管理依赖u3000u3000654
27.1.1u3000安装CocoaPodsu3000u3000654
27.1.2u3000搜索库u3000u3000655
27.1.3u3000项目与第三方库搭配形式u3000u3000656
27.1.4u3000实例:静态链接库形式管理依赖u3000u3000657
27.1.5u3000实例:框架形式管理依赖u3000u3000659
27.2u3000使用Carthage工具管理依赖u3000u3000660
27.2.1u3000安装Carthageu3000u3000660
27.2.2u3000项目与第三方库搭配形式u3000u3000661
27.2.3u3000Cartfile文件u3000u3000661
27.2.4u3000实例:重构MyNotes依赖关系u3000u3000662
27.3u3000小结u3000u3000664
第28章u3000把应用放到App Store上u3000u3000665
28.1u3000收官u3000u3000665
28.1.1u3000在Xcode 中添加图标u3000u3000665
28.1.2u3000在Xcode中添加启动界面u3000u3000668
28.1.3u3000调整Identity和Deployment Info属性u3000u3000671
28.2u3000为发布进行编译u3000u3000672
28.2.1u3000创建开发者证书u3000u3000672
28.2.2u3000创建App IDu3000u3000675
28.2.3u3000创建描述文件u3000u3000676
28.2.4u3000发布编译u3000u3000679
28.3u3000发布上架u3000u3000680
28.3.1u3000创建应用u3000u3000681
28.3.2u3000应用定价u3000u3000683
28.3.3u3000基本信息输入u3000u3000684
28.3.4u3000上传应用u3000u3000687
28.3.5u3000提交审核u3000u3000689
28.4u3000常见审核不通过的原因u3000u3000691
28.4.1u3000功能问题u3000u3000691
28.4.2u3000用户界面问题u3000u3000691
28.4.3u3000商业问题u3000u3000691
28.4.4u3000不当内容u3000u3000691
28.4.5u3000其他问题u3000u3000692
28.5u3000小结u3000u3000692
第29章u3000iOS开发项目实战——2020东京奥运会应用开发及 App Store发布u3000u3000693
29.1u3000应用分析与设计u3000u3000693
29.1.1u3000应用概述u3000u3000693
29.1.2u3000需求分析u3000u3000693
29.1.3u3000原型设计u3000u3000694
29.1.4u3000数据库设计u3000u3000694
29.2u3000任务1:创建应用工程u3000u3000695
29.2.1u3000迭代1.1:创建工程u3000u3000696
29.2.2u3000迭代1.2:发布到GitHubu3000u3000696
29.3u3000任务2:数据库与数据持久化逻辑组件开发u3000u3000696
29.3.1u3000迭代2.1:编写数据库DDL脚本u3000u3000696
29.3.2u3000迭代2.2:插入初始数据到数据库u3000u3000697
29.3.3u3000迭代2.3:数据库版本控制u3000u3000697
29.3.4u3000迭代2.4:配置数据持久化逻辑组件u3000u3000698
29.3.5u3000迭代2.5:编写实体类u3000u3000698
29.3.6u3000迭代2.6:编写DAO类u3000u3000700
29.3.7u3000迭代2.7:数据库帮助类DBHelperu3000u3000704
29.3.8u3000迭代2.8:发布到GitHubu3000u3000706
29.4u3000任务3:表示逻辑组件开发u3000u3000706
29.4.1u3000迭代3.1:使用资源目录管理图片和图标资源u3000u3000707
29.4.2u3000迭代3.2:根据原型设计初步设计故事板u3000u3000708
29.4.3u3000迭代3.3:“首页”模块u3000u3000709
29.4.4u3000迭代3.4:“比赛项目”模块u3000u3000710
29.4.5u3000迭代3.5:“比赛日程”模块u3000u3000714
29.4.6u3000迭代3.6:“倒计时”模块u3000u3000718
29.4.7u3000迭代3.7:“关于我们”模块u3000u3000719
29.4.8u3000迭代3.8:发布到GitHubu3000u3000720
29.5u3000任务4:收工u3000u3000720
29.5.1u3000迭代4.1:添加图标u3000u3000720
29.5.2u3000迭代4.2:设计和添加启动界面u3000u3000720
29.5.3u3000迭代4.3:性能测试与改善u3000u3000721
29.5.4u3000迭代4.4:发布到GitHubu3000u3000722
29.5.5u3000迭代4.5:在App Store上发布应用u3000u3000722
29.6u3000小结u3000u3000722

相关资源

发表评论

点 击 提 交