iOS开发指南:从零基础到App Store上架

出版社:人民邮电出版社
出版日期:2013-8-1
ISBN:9787115324443
作者:关东升
页数:690页

内容概要

关东升
国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。精通iOS、Android和Windows Phone及HTML5等移动开发技术。曾先后主持开发大型网络游戏神农诀的iOS和Android客户端开发,国家农产品追溯系统的iPad客户端开发,酒店预订系统的iPhone客户端开发,金融系统微博的iOS、Windows Phone 7、Android客户端开发。在App Store上发布多款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。近期为中国移动研究院、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓普、上海财富168、天津港务局等企事业单位授课。
著有《iOS网络编程与云端应用最佳实践》、《iPhone与iPad开发实战——iOS经典应用剖析》、《Android开发案例驱动教程》、《Android网络游戏开发实战》、《移动平台用户体验设计》以及《JSP网络程序设计》等图书。

书籍目录

目 录

第一部分 基础篇
第1章 开篇综述  2
1.1  iOS概述  2
1.1.1  iOS介绍  2
1.1.2  iOS 6新特性  2
1.2  开发环境及开发工具  3
1.3  本书中的约定  4
1.3.1  案例代码约定  4
1.3.2  图示的约定  5
第2章 第一个iOS应用程序  7
2.1  创建基于nib的HelloWorld工程  7
2.1.1  创建工程  7
2.1.2  Xcode中的iOS工程模板  10
2.1.3  应用剖析  11
2.2  基于故事板的HelloWorld工程  13
2.2.1  使用故事板重构HelloWorld  14
2.2.2  nib、xib与故事板  15
2.2.3  故事板中的Scene和Segue  16
2.3  应用生命周期  17
2.3.1  非运行状态——应用启动场景  18
2.3.2  点击Home键——应用退出场景  19
2.3.3  挂起重新运行场景  20
2.3.4  内存清除——应用终止场景  21
2.4  视图生命周期  21
2.4.1  视图生命周期与视图控制器关系  22
2.4.2  iOS 6 UI状态保持和恢复  23
2.5  设置产品属性  25
2.5.1  Xcode中的Project和Target  25
2.5.2  设置常用的产品属性  27
2.6  iOS API简介  29
2.6.1  API概述  29
2.6.2  如何使用API帮助  31
2.7  小结  33
第3章 iOS常用设计模式  34
3.1  单例模式  34
3.1.1  问题提出  34
3.1.2  实现原理  34
3.1.3  应用案例  35
3.2  委托模式  37
3.2.1  问题提出  37
3.2.2  实现原理  39
3.2.3  应用案例  41
3.3  观察者模式  44
3.3.1  问题提出  44
3.3.2  实现原理  45
3.3.3  通知机制和KVO机制  47
3.4  MVC模式  53
3.4.1  MVC模式概述  53
3.4.2  Cocoa Touch中的MVC模式  54
3.5  小结  56
第4章 UIView与控件  57
4.1  视图“始祖”——UIView  57
4.1.1  UIView“家族”  57
4.1.2  应用界面的构建层次  59
4.1.3  视图分类  60
4.2  标签控件和按钮控件  60
4.2.1  标签控件  61
4.2.2  按钮控件  61
4.2.3  动作和输出口  63
4.3  TextField控件和TextView控件  66
4.3.1  TextField控件  66
4.3.2  TextView控件  67
4.3.3  键盘的打开和关闭  67
4.3.4  关闭和打开键盘的通知  68
4.3.5  键盘的种类  69
4.4  开关控件、滑块控件和分段控件  70
4.4.1  开关控件  71
4.4.2  滑块控件  71
4.4.3  分段控件  71
4.5  网页控件WebView  72
4.5.1  WebView介绍  72
4.5.2  使用WebView构建Hybrid应用  75
4.6  屏幕滚动控件ScrollView  80
4.6.1  ScrollView属性的设置  80
4.6.2  键盘与其他控件的协同  84
4.7  等待相关的控件与进度条  86
4.7.1  活动指示器ActivityIndicatorView  87
4.7.2  进度条ProgressView  88
4.8  警告框和操作表  88
4.8.1  警告框AlertView  89
4.8.2  操作表ActionSheet  90
4.9  工具栏和导航栏  92
4.9.1  工具栏  92
4.9.2  导航栏  94
4.10  屏幕布局  98
4.10.1  iPad与iPhone屏幕布局  98
4.10.2  绝对布局和相对布局  99
4.10.3  使用AutoLayout布局  102
4.10.4  旋转你的屏幕  103
4.11  选择器  108
4.11.1  日期选择器  108
4.11.2  普通选择器  110
4.11.3  数据源协议与委托协议  112
4.12  iOS 6中的集合视图  113
4.12.1  集合视图介绍  114
4.12.2  集合视图单元格  116
4.12.3  数据源协议与委托协议  118
4.13  小结  119
第5章 表视图  120
5.1  概述  120
5.1.1  表视图的组成  120
5.1.2  表视图的相关类  121
5.1.3  表视图分类  122
5.1.4  单元格的组成和样式  123
5.1.5  数据源协议与委托协议  124
5.2  简单表视图  125
5.2.1  创建简单表视图  125
5.2.2  自定义单元格  129
5.2.3  添加搜索栏  133
5.3  分节表视图  138
5.3.1  添加索引  138
5.3.2  分组与静态表  141
5.4  修改单元格  144
5.4.1  删除和插入单元格  144
5.4.2  移动单元格  150
5.5  表视图UI设计模式  152
5.5.1  分页模式  152
5.5.2  下拉刷新模式  152
5.5.3  iOS 6下拉刷新控件  153
5.6  小结  155
第6章 视图控制器与导航模式  156
6.1  概述  156
6.1.1  视图控制器的种类  156
6.1.2  导航模式  156
6.1.3  模态视图  157
6.2  平铺导航  163
6.2.1  应用场景  163
6.2.2  基于分屏导航的实现  165
6.2.3  基于分页导航的实现  168
6.3  标签导航  173
6.3.1  应用场景  174
6.3.2  nib实现  174
6.3.3  故事板实现  179
6.4  树形结构导航  182
6.4.1  应用场景  182
6.4.2  nib实现  183
6.4.3  故事板实现  189
6.5  组合使用导航模式  193
6.5.1  应用场景  193
6.5.2  故事板实现  194
6.6  小结  200
第7章 iPhone与iPad应用开发的差异  201
7.1  概述  201
7.1.1  应用场景差异  201
7.1.2  设计和开发需注意的问题  201
7.1.3  构建自适应的iPhone和iPad工程  204
7.2  iPad专用API  206
7.2.1  UIPopoverController控制器  206
7.2.2  UISplitViewController控制器  209
7.2.3  模态视图专用属性  215
7.3  Master-Detail应用程序模板  219
7.3.1  nib实现  220
7.3.2  故事板实现  225
7.4  Utility应用程序模板  228
7.4.1  nib实现  229
7.4.2  故事板实现  232
7.5  移动平台的分层架构设计  234
7.5.1  低耦合企业级系统架构设计  234
7.5.2  移动平台的分层架构设计  235
7.5.3  基于同一工程的分层  235
7.5.4  基于一个工作空间不同工程的分层  241
7.6  小结  244
第8章 应用程序设置  245
8.1  概述  245
8.1.1  设置  245
8.1.2  配置  246
8.2  应用程序设置包  247
8.3  设置项目种类  248
8.3.1  文本字段  251
8.3.2  开关  253
8.3.3  滑块  254
8.3.4  值列表  256
8.3.5  子界面  257
8.4  读取设置  259
8.5  小结  260
第9章 应用程序本地化  261
9.1  概述  261
9.1.1  本地化内容  261
9.1.2  本地化目录结构  263
9.2  文本信息本地化  263
9.2.1  系统按钮和信息本地化  263
9.2.2  应用名称本地化  265
9.2.3  程序代码输出的静态文本本地化  266
9.2.4  使用genstring工具  268
9.3  nib和故事板文件本地化  268
9.3.1  添加本地化  269
9.3.2  开关使用ibtool工具  270
9.4  资源文件本地化  271
9.5  小结  273
第10章 数据持久化  274
10.1  概述  274
10.1.1  沙箱目录  274
10.1.2  持久化方式  275
10.2  属性列表  275
10.3  对象归档  280
10.4  使用SQLite数据库  285
10.4.1  SQLite数据类型  285
10.4.2  创建数据库  285
10.4.3  查询数据  287
10.4.4  修改数据  290
10.5  Core Data  292
10.5.1  ORM  292
10.5.2  Core Data堆栈  293
10.5.3  建模和生成实体  296
10.5.4  采用Core Data分层架构设计  299
10.5.5  查询数据  301
10.5.6  修改数据  302
10.6  小结  304
第11章 访问通讯录  305
11.1  概述  305
11.2  读取联系人信息  306
11.2.1  查询联系人记录  307
11.2.2  读取单值属性  309
11.2.3  读取多值属性  311
11.2.4  读取图片属性  313
11.3  写入联系人信息  313
11.3.1  创建联系人  315
11.3.2  修改联系人  317
11.3.3  删除联系人  318
11.4  高级API  319
11.4.1  选择联系人  319
11.4.2  显示和修改联系人  322
11.4.3  创建联系人  324
11.5  小结  328
第二部分 网络篇
第12章 访问Web Service  330
12.1  概述  330
12.2  数据交换格式  330
12.2.1  XML文档结构  332
12.2.2  解析XML文档  333
12.2.3  JSON文档结构  340
12.2.4  JSON数据解码  341
12.3  REST Web Service  343
12.3.1  HTTP和HTTPS协议  343
12.3.2  同步GET请求方法  344
12.3.3  异步GET请求方法  348
12.3.4  POST请求方式  349
12.3.5  调用REST Web Service的插入、修改和删除方法  350
12.4  使用ASIHTTPRequest框架  355
12.4.1  安装和配置ASIHTTPRequest框架  355
12.4.2  同步请求  356
12.4.3  异步请求  358
12.4.4  使用请求队列  359
12.4.5  上传数据  362
12.5  反馈网络信息改善用户体验  364
12.5.1  iOS 6表视图刷新控件的使用  364
12.5.2  使用等待指示器控件  367
12.5.3  使用网络等待指示器  369
12.6  小结  370
第13章 定位服务与地图应用  371
13.1  定位服务  371
13.1.1  定位服务编程  371
13.1.2  地理信息反编码  376
13.1.3  地理信息编码查询  377
13.1.4  关于定位服务的测试  379
13.2  使用iOS 6苹果地图  382
13.2.1  显示地图  382
13.2.2  添加标注  384
13.2.3  跟踪用户位置变化  387
13.3  使用程序外地图  388
13.3.1  调用iOS 6苹果地图  388
13.3.2  调用谷歌Web地图  391
13.4  小结  392
第三部分 进阶篇
第14章 iOS中的商业模式  394
14.1  收费策略  394
14.1.1  iOS如何赚钱  394
14.1.2  避免定价策略误区  395
14.1.3  免费软件的艺术  395
14.1.4  在适当的时间、适当的地点植入广告  395
14.1.5  尝试不同的盈利模式  395
14.2  使用苹果iAd广告  396
14.2.1  横幅广告  396
14.2.2  插页广告  401
14.2.3  查看你的收入  406
14.3  使用谷歌AdMob广告  408
14.3.1  注册AdMob账号和管理应用  408
14.3.2  下载谷歌AdMob Ads SDK和示例代码  412
14.3.3  添加AdMob横幅广告  414
14.3.4  添加AdMob插页广告  418
14.3.5  为广告提交用户和位置信息  421
14.3.6  搜索广告  422
14.3.7  查看你的收入  424
14.4  应用内购买  425
14.4.1  概述  425
14.4.2  测试环境搭建  426
14.4.3  在程序中实现应用内购买  431
14.4.4  测试应用内购买  437
14.5  小结  439
第15章 找出程序中的bug——调试  440
15.1  Xcode调试工具  440
15.1.1  定位编译错误  440
15.1.2  查看和显示日志  441
15.1.3  设置和查看断点  442
15.1.4  调试工具栏  446
15.1.5  输出窗口  447
15.1.6  变量查看窗口  448
15.1.7  查看线程  449
15.2  日志与断言输出  450
15.2.1  使用NSLog函数  450
15.2.2  使用NSAssert宏  451
15.2.3  移除NSLog和NSAssert  452
15.3  LLDB调试工具  455
15.3.1  断点命令  455
15.3.2  观察点命令  457
15.3.3  查看变量和计算表达式命令  458
15.4  异常堆栈报告分析  461
15.4.1  跟踪异常堆栈  461
15.4.2  分析堆栈报告  463
15.5  在iOS设备上调试  464
15.5.1  创建开发者证书  465
15.5.2  设备注册  468
15.5.3  创建App ID  470
15.5.4  创建配置概要文件  471
15.5.5  设备调试  473
15.6  Xcode设备管理工具  474
15.6.1  管理设备配置概要文件  474
15.6.2  查看设备上的应用程序  475
15.6.3  设备控制台  477
15.6.4  设备日志  477
15.7  小结  479
第16章 基于测试驱动的iOS开发  480
16.1  测试驱动的软件开发概述  480
16.1.1  测试驱动的软件开发流程  480
16.1.2  测试驱动的软件开发案例  481
16.1.3  iOS单元测试框架  486
16.2  使用OCUnit测试框架  486
16.2.1  添加OCUnit到工程中  486
16.2.2  应用测试和逻辑测试  489
16.2.3  编写OCUnit测试方法  489
16.2.4  分析测试报告  494
16.3  使用GHUnit测试框架  495
16.3.1  添加GHUnit到工程  496
16.3.2  编写GHUnit测试用例  498
16.3.3  分析测试报告  500
16.4  使用伪对象  502
16.4.1  添加OCMock到工程  503
16.4.2  使用OCMock对象  505
16.5  iOS单元测试最佳实践  507
16.5.1  iOS单元测试策略  507
16.5.2  测试数据持久层  507
16.5.3  测试业务逻辑层  512
16.5.4  测试表示层  515
16.6  小结  522
第17章 让你的程序“飞”起来——性能优化  523
17.1  内存优化  523
17.1.1  内存泄漏问题的解决  523
17.1.2  查找和解决僵尸对象  531
17.1.3  autorelease的使用问题  534
17.1.4  响应内存警告  534
17.1.5  选择nib还是故事板  536
17.2  优化资源文件  537
17.2.1  图片文件优化  537
17.2.2  音频文件优化  538
17.3  延迟加载  539
17.3.1  资源文件的延迟加载  540
17.3.2  故事板和nib文件的延迟加载  543
17.4  数据持久化的优化  546
17.4.1  使用文件  546
17.4.2  使用SQLite数据库  549
17.4.3  使用Core Data  550
17.5  可重用对象的使用  552
17.5.1  表视图中的可重用对象  553
17.5.2  集合视图中的可重用对象  554
17.5.3  地图视图中的可重用对象  555
17.6  并发处理与多核CPU  556
17.6.1  主线程阻塞问题  556
17.6.2  选择NSThread还是GCD  557
17.7  编译器和编译参数  558
17.7.1  GCC、LLVM GCC与Apple LLVM比较  558
17.7.2  ARM架构  559
17.7.3  Optimization Level  561
17.8  小结  562
第18章 管理好你的程序代码——代码版本控制  563
18.1  概述  563
18.1.1  版本控制历史  563
18.1.2  基本概念  564
18.2  Git代码版本控制  564
18.2.1  服务器搭建  564
18.2.2  Gitolite服务器管理  566
18.2.3  Git常用命令  568
18.2.4  Git分支  570
18.2.5  Git协同开发  574
18.2.6  Xcode中Git的配置与使用  576
18.3  GitHub代码托管服务  583
18.3.1  创建和配置GitHub账号  584
18.3.2  创建代码库  586
18.3.3  派生代码库  589
18.3.4  使用GitHub协同开发  591
18.3.5  管理组织  596
18.4  小结  599
第19章 把你的应用放到App Store上  600
19.1  收官  600
19.1.1  添加图标  600
19.1.2  添加启动界面  602
19.1.3  调整Application Target属性  604
19.1.4  为发布进行编译  605
19.1.5  应用打包  609
19.2  发布流程  610
19.2.1  创建应用及基本信息  611
19.2.2  应用定价信息  612
19.2.3  最后信息输入  613
19.2.4  上传应用  616
19.3  常见审核不通过的原因  618
19.4  小结  619
第四部分 实战篇
第20章 重构MyNotes应用——iOS网络通信中的设计模式与架构设计  622
20.1  移动网络通信应用的分层架构设计  622
20.2  基于委托模式实现  623
20.2.1  网络通信与委托模式  623
20.2.2  在异步网络通信中使用委托模式实现分层架构设计  623
20.2.3  类图  624
20.2.4  时序图  626
20.2.5  数据持久层的代码实现  629
20.2.6  业务逻辑层的代码实现  631
20.2.7  表示层的代码实现  632
20.3  基于观察者模式的通知机制实现  637
20.3.1  观察者模式的通知机制回顾  637
20.3.2  异步网络通信中通知机制的分层架构设计  638
20.3.3  类图  638
20.3.4  时序图  639
20.3.5  数据持久层的代码实现  642
20.3.6  业务逻辑层的代码实现  643
20.3.7  表示层的代码实现  644
20.4  小结  649
第21章 iOS敏捷开发项目实战——2016里约热内卢奥运会应用开发及App Store发布  650
21.1  应用分析与设计  650
21.1.1  应用概述  650
21.1.2  需求分析  650
21.1.3  原型设计  651
21.1.4  数据库设计  652
21.1.5  架构设计  652
21.2  iOS敏捷开发  653
21.2.1  敏捷开发宣言  653
21.2.2  iOS适合敏捷开发?  654
21.2.3  iOS敏捷开发最佳实践  654
21.3  任务1:创建应用基本工作空间  656
21.4  任务2:信息系统层与持久层开发  657
21.4.1  迭代2.1:编写数据库DDL脚本  657
21.4.2  迭代2.2:插入初始数据到数据库  658
21.4.3  迭代2.3:编写实体类  658
21.4.4  迭代2.4:DAO类GHUnit单元测试  659
21.4.5  迭代2.5:编写DAO类  663
21.4.6  迭代2.6:发布到GitHub  666
21.5  任务3:业务逻辑层开发  667
21.5.1  迭代3.1:比赛项目业务逻辑类GHUnit单元测试  667
21.5.2  迭代3.2:编写比赛项目业务逻辑类  668
21.5.3  迭代3.3:比赛日程业务逻辑类GHUnit单元测试  669
21.5.4  迭代3.4:编写比赛日程业务逻辑类  670
21.5.5  迭代3.5:发布到GitHub  672
21.6  任务4:表示层开发  672
21.6.1  迭代4.1:根据原型设计初步设计iPad故事板  673
21.6.2  迭代4.2:根据原型设计初步设计iPhone故事板  674
21.6.3  迭代4.3:首页模块  674
21.6.4  迭代4.4:比赛项目模块  675
21.6.5  迭代4.5:比赛日程模块  679
21.6.6  迭代4.6:倒计时模块表示层  681
21.6.7  迭代4.7:关于我们模块表示层  683
21.6.8  迭代4.8:发布到GitHub  683
21.7  任务5:收工  684
21.7.1  迭代5.1:添加图标  684
21.7.2  迭代5.2:设计和添加启动界面  684
21.7.3  迭代5.3:植入谷歌AdMob横幅广告  685
21.7.4  迭代5.4:性能测试与改善  686
21.7.5  迭代5.5:发布到GitHub  687
21.7.6  迭代5.6:在App Store上发布应用  687
21.8  小结  690

作者简介

内 容 提 要
本书共4 部分:第一部分为基础篇,介绍了iOS 的一些基础知识;第二部分为网络篇,介绍了iOS 网络开发相关的知识;第三部分为进阶篇,介绍了iOS 高级内容、商业思考等;第四部分为实战篇,从无到有地介绍了两个真实的iOS 应用——MyNotes 应用和2016 里约热内卢奥运会应用。书中包括了100 多个完整的案例项目源代码,大家可以到本书网站http://www.iOSBook1.com 下载。
本书适合iOS 开发人员阅读。


 iOS开发指南:从零基础到App Store上架下载 更多精彩书评



发布书评

 
 


精彩书评 (总计4条)

  •     我购买的是iOS7版本的,因为确实很喜欢这本书,书如其名,真的能起到指南和手册的作用,所以在这里也评论一下。这本书写的很详细很全面,而且深度适宜。从字里行间,能明显的看出作者确实在移动开发领域经验颇丰,有深度也有自己的见解。 我阅读了大概好几本iOS开发教程,我认为这本算是中国作者里写的最棒的一本。美国人写的那几本经典教程当然也不错,但因为有延时性,或者看原版又相对速度慢一些,所以这本书我是极力推荐的。 有部分iOS初学同学不是特别推荐关东升这本书,可能是因为他没有以傻瓜式的一步一步的教你如何操作,部分操作细节略有疏忽,而且内容节奏较快,所以有些同学会略有不适。如果这样,建议初学的朋友可以先选择一本更肤浅一点的中国作者编写的iOS入门教程,待开发较为熟悉的时候再看这本书。 这本书内容涵盖比较完善,而且大部分内容都比较常用,所以学习和参考都不错!
  •     这书很厚足足700多页,方方面面都讲到了,很好,适合入门到精通,一本囊括了几乎全部知识点,结构清晰,再加上书中的源码部分,仔细研究后即可开始真实项目的演练了,感谢图灵的赠书 书数去年年度写的,如果出版再快点就好了,iOS7快出来了,建议尽快推出针对iOS7的升级版本
  •     这本书与其说是教科书,不如说是开发手册。所有知识点,基本没有循序渐进的讲解,而是迅速全面展开,直接深入核心。优点是帮助程序员系统性的全面梳理知识点,巩固提高已有的初级经验。缺点是对真正零基础的初学者,基本没有用。

精彩短评 (总计17条)

  •     凑合
  •     我购买的是最新的iOS7的版本,写的很详细很全面,而且深度适宜。从字里行间,能明显的看出作者确实在移动开发领域经验颇丰,有深度也有自己的见解。 我阅读了大概好几本iOS开发教程,我认为这本算是中国作者里写的最棒的一本。美国人写的那几本经典教程当然也不错,但因为有延时性,或者看原版又相对速度慢一些,所以这本书我是极力推荐的。 有部分iOS初学同学不是特别推荐关东升这本书,可能是因为他没有以傻瓜式的一步一步的教你如何操作,部分操作细节略有疏忽,而且内容节奏较快,所以有些同学会略有不适。如果这样,建议初学的朋友可以先选择一本更肤浅一点的中国作者编写的iOS入门教程,待开发较为熟悉的时候再看这本书。 这本书内容涵盖比较完善,而且大部分内容都比较常用,所以学习和参考都不错
  •     新手不建议阅读,作为有编程经验的IOS入门还可以,IOS开发嘛,无非都是这样,变化快,快速入门进行了,提高还要靠自己多项目实战。
  •     典型的中国式技术书籍,没什么深度,看看还行
  •     买来只粗略翻了一下,真的适合零基础入门。
  •     新手止步=_=
  •     很不错的一本书 讲解了各种组建的用法,还有一些实用的开发例子
  •     这本书其实是很不错的入门手册,说从零开发的人注定学不好IOS,至少他们从来不看书的目录就买了。
  •     中文的ios开发书籍本身就比较少 所以勉强给个4星哈 适合没有任何基础的人入门翻翻
  •     入门字典书
  •     对于刚上手的学习者,这是一本非常不友好的书。对于举得例子,几乎都没有什么解释说明,就算有,也是寥寥几个字,非常不认真。用这本书学习真是太辛苦了!千万不要买!
  •     内容空洞,几乎照抄iOS官方文档,毫无新意
  •     可以系统学习
  •     最近一直在参考的书,照着做了很多东西,但还是不太适合新手。
  •     讲解的方式有点问题,不过覆盖面确实十分广
  •     目录编排看来就觉得搞笑,高阶跟基础都分不清楚。
  •     内容太空泛了,没有什么精细的侧重点,走马观花的一个多小时看完了。我需要mac来测试和学习。后面的调试,上线,广告之类的当百科读了。整本书不太值,但是学习总是要交学费的。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024