《iOS开发指南:从零基础到App Store上架(第2版)》内容介绍
《iOS开发指南:从零基础到App Store上架(第2版)》内容介绍
《iOS开发指南:从零基础到App Store上架(第2版)》
基本信息
作者: 关东升
丛书名: 图灵原创
出版社:人民邮电出版社
ISBN:9787115348029
上架时间:2014-3-5
出版日期:2014 年3月
开本:16开
页码:1
版次:1-1
所属分类:计算机
更多关于》》》《iOS开发指南:从零基础到App Store上架(第2版)》
编辑推荐
国内最新iOS 7开发详解,全面涵盖iOS 7新内容、新特性、新变化
数百个项目案例+两个真实项目开发全过程
涵盖iOS平台架构设计、测试驱动开发、性能优化、版本控制和程序调试等丰富内容
内容简介
书籍
计算机书籍
《ios开发指南:从零基础到app store上架(第2版)》采用全新的ios 7 api,详细介绍了最新的ios 7 开发相关的知识点。本书共分为4 个部分:第一部分为基础篇,介绍了ios 的一些基础知识;第二部分为网络篇,介绍了ios 网络开发相关的知识;第三部分为进阶篇,介绍了ios高级内容、商业思考等;第四部分为实战篇,从无到有地介绍了两个真实的ios 应用:mynotes 应用和2016 里约热内卢奥运会应用。书中包括了100 多个完整的案例项目源代码,大家可以到本书网站http://www.iosbook1.com 下载。
《ios开发指南:从零基础到app store上架(第2版)》适合ios 开发人员阅读。
媒体评论
“本书是为广大iOS开发者编写的教程,上一版就得到了广大开发者的好评。书中不仅从易到难详细讲述了iOS开发的方方面面,而且专门针对iOS 7的新特性作了全面而详细的介绍。本书重点突出,知识点多是企业项目中常用的技术要点,且包含大量的实例代码和丰富的插图,可以帮助开发者很好地理解书中内容。因此,它不仅适合作为初级开发者的入门教程,而且也可作为高级开发者在闲暇之余翻阅的工具书。”
——CocoaChina社区
“本书上一版自发行以来,受到了51CTO社区广大iOS开发者和爱好者的好评和认可。它介绍了iOS全新的设计理念,以及iOS 7开发中常用的新特性、新功能,不仅可以帮助iOS初学者迅速掌握iOS开发技能,而且可以帮助程序员系统全面地梳理知识,提高开发水平。在iOS开发的道路上,它定能助你一臂之力。”
——51CTO博客总编、51CTO学院高级产品运营经理曹亚莉
“本书结合大量案例讲述了iOS应用开发技巧,无疑是一本值得初学者认真阅读的从入门到精通的教材。第2版在上一版的基础上增加了iOS 7的新技术,并突出了扁平化的设计理念。这本书将是你踏入iOS殿堂的黄金阶梯1
——9Tech开发者社区
“本书通俗易懂,全面覆盖了iOS 7的新特性及要点,书中的案例和演示均以iOS 7重新实现,详细讲解了从iOS 6升级到iOS 7后出现的问题及解决方法,可见作者用心良苦。在“iOS分层架构设计”等章节中,作者总结并分享了以往开发过程中的经验和心得,很值得借鉴。相信本书对广大iOS开发者会有很大的帮助。”
——智捷iOS课堂
目录
《ios开发指南:从零基础到app store上架(第2版)》
第一部分 基 础 篇
第1章开篇综述2
1.1 ios概述2
1.1.1 ios介绍2
1.1.2 ios 7新特性2
1.2 开发环境及开发工具3
1.3 本书中的约定4
1.3.1 案例代码约定5
1.3.2 图示的约定5
第2章第一个ios应用程序7
2.1 创建helloworld工程7
2.1.1 创建工程7
2.1.2 xcode中的ios工程模板12
2.1.3 应用剖析13
2.2 helloworld工程中故事板文件main.storyboard16
2.2.1 故事板的导航特点16
2.2.2 故事板中的scene和segue17
2.3 应用生命周期17
2.3.1 非运行状态——应用启动场景19
2.3.2 点击home键——应用退出场景20
2.3.3 挂起重新运行场景21
2.3.4 内存清除——应用终止场景22
2.4 视图生命周期22
2.4.1 视图生命周期与视图控制器关系23
2.4.2 ios ui状态保持和恢复24
2.5 设置产品属性26
2.5.1 xcode中的project和target26
2.5.2 设置常用的产品属性28
2.6 ios api简介30
2.6.1 api概述30
2.6.2 如何使用api帮助32
2.7 小结34
第3章uiview与控件35
3.1 视图“始祖”——uiview35
3.1.1 uiview“家族”35
3.1.2 应用界面的构建层次37
3.1.3 视图分类38
3.2 标签控件和按钮控件38
3.2.1 标签控件39
3.2.2 按钮控件39
3.2.3 动作和输出口41
3.3 textfield控件和textview控件43
3.3.1 textfield控件44
3.3.2 textview控件44
3.3.3 键盘的打开和关闭45
3.3.4 关闭和打开键盘的通知46
3.3.5 键盘的种类47
3.4 开关控件、滑块控件和分段控件48
3.4.1 开关控件49
3.4.2 滑块控件49
3.4.3 分段控件49
3.5 网页控件webview50
3.5.1 webview介绍50
3.5.2 使用webview构建hybrid应用53
3.6 屏幕滚动控件scrollview58
3.6.1 scrollview属性的设置58
3.6.2 键盘与其他控件的协同63
3.7 等待相关的控件与进度条65
3.7.1 活动指示器activityindicatorview66
3.7.2 进度条progressview66
3.8 警告框和操作表67
3.8.1 警告框alertview67
3.8.2 操作表actionsheet69
3.9 工具栏和导航栏70
3.9.1 工具栏70
3.9.2 导航栏73
3.10 屏幕布局77
3.10.1 ipad、iphone和iphone 5屏幕布局77
3.10.2 绝对布局和相对布局78
3.10.3 使用autolayout布局80
3.10.4 旋转你的屏幕82
3.11 选择器86
3.11.1 日期选择器86
3.11.2 普通选择器88
3.11.3 数据源协议与委托协议90
3.12 集合视图92
3.12.1 集合视图介绍92
3.12.2 集合视图单元格94
3.12.3 数据源协议与委托协议97
3.13 小结97
第4章表视图98
4.1 概述98
4.1.1 表视图的组成98
4.1.2 表视图的相关类99
4.1.3 表视图分类100
4.1.4 单元格的组成和样式103
4.1.5 数据源协议与委托协议105
4.2 简单表视图106
4.2.1 创建简单表视图106
4.2.2 自定义单元格110
4.2.3 添加搜索栏114
4.3 分节表视图119
4.3.1 添加索引119
4.3.2 分组与静态表122
4.4 修改单元格126
4.4.1 删除和插入单元格126
4.4.2 移动单元格132
4.5 表视图ui设计模式134
4.5.1 分页模式134
4.5.2 下拉刷新模式134
4.5.3 ios 7下拉刷新控件135
4.6 小结137
第5章视图控制器与导航模式138
5.1 概述138
5.1.1 视图控制器的种类138
5.1.2 导航模式138
5.1.3 模态视图139
5.2 平铺导航145
5.2.1 应用场景145
5.2.2 基于分屏导航的实现147
5.2.3 基于分页导航的实现150
5.3 标签导航156
5.3.1 应用场景157
5.3.2 实现157
5.4 树形结构导航159
5.4.1 应用场景160
5.4.2 实现161
5.5 组合使用导航模式165
5.5.1 应用场景166
5.5.2 实现166
5.6 小结173
第6章ios常用设计模式174
6.1 单例模式174
6.1.1 问题提出174
6.1.2 实现原理174
6.1.3 应用案例175
6.2 委托模式177
6.2.1 问题提出177
6.2.2 实现原理178
6.2.3 应用案例181
6.3 观察者模式184
6.3.1 问题提出184
6.3.2 实现原理185
6.3.3 通知机制和kvo机制187
6.4 mvc模式193
6.4.1 mvc模式概述193
6.4.2 cocoa touch中的mvc模式194
6.5 小结196
第7章iphone与ipad应用开发的差异197
7.1 概述197
7.1.1 应用场景差异197
7.1.2 设计和开发需注意的问题197
7.1.3 构建自适应的iphone和ipad工程200
7.2 ipad专用api202
7.2.1 uipopovercontroller控制器202
7.2.2 uisplitviewcontroller控制器205
7.2.3 模态视图专用属性211
7.3 小结215
第8章ios分层架构设计216
8.1 低耦合企业级系统架构设计216
8.2 ios分层架构设计217
8.2.1 基于同一工程的分层217
8.2.2 基于一个工作空间不同工程的分层222
8.3 小结227
第9章ios 7中文字排版和渲染引擎——text kit228
9.1 text kit基础228
9.1.1 文字的排版和渲染228
9.1.2 text kit架构228
9.1.3 text kit中的核心类229
9.1.3 实例:凸版印刷效果231
9.2 文字图片混合排版233
9.3 动态字体236
9.4 小结239
第10章应用程序设置240
10.1 概述240
10.1.1 设置240
10.1.2 配置241
10.2 应用程序设置包243
10.3 设置项目种类244
10.3.1 文本字段247
10.3.2 开关249
10.3.3 滑块250
10.3.4 值列表252
10.3.5 子界面253
10.4 读取设置255
10.5 小结256
第11章国际化257
11.1 概述257
11.1.1 需要国际化的内容257
11.1.2 国际化目录结构259
11.2 文本信息国际化260
11.2.1 系统按钮和信息国际化260
11.2.2 应用名称国际化261
11.2.3 程序代码输出的静态文本国际化263
11.2.4 使用genstring工具265
11.3 xib和故事板文件国际化266
11.3.1 使用base国际化技术266
11.3.2 autolayout与国际化268
11.4 资源文件国际化270
11.4.1 图片资源文件国际化270
11.4.2 声音资源文件国际化271
11.5 小结271
第12章数据持久化272
12.1 概述272
12.1.1 沙箱目录272
12.1.2 持久化方式273
12.2 属性列表273
12.3 对象归档278
12.4 使用sqlite数据库282
12.4.1 sqlite数据类型283
12.4.2 创建数据库283
12.4.3 查询数据285
12.4.4 修改数据288
12.5 core data290
12.5.1 orm290
12.5.2 core data堆栈290
12.5.3 建模和生成实体294
12.5.4 采用core data分层架构设计297
12.5.5 查询数据298
12.5.6 修改数据300
12.6 小结301
第13章访问通讯录302
13.1 概述303
13.2 读取联系人信息303
13.2.1 查询联系人记录304
13.2.2 读取单值属性306
13.2.3 读取多值属性308
13.2.4 读取图片属性310
13.3 写入联系人信息310
13.3.1 创建联系人312
13.3.2 修改联系人314
13.3.3 删除联系人315
13.4 高级api316
13.4.1 选择联系人316
13.4.2 显示和修改联系人319
13.4.3 创建联系人322
13.5 小结325
第二部分 网 络 篇
第14章访问web service328
14.1 概述328
14.2 数据交换格式328
14.2.1 xml文档结构330
14.2.2 解析xml文档331
14.2.3 json文档结构338
14.2.4 json数据解码339
14.3 rest web service341
14.3.1 http和https协议341
14.3.2 同步get请求方法342
14.3.3 异步get请求方法346
14.3.4 post请求方式347
14.3.5 调用rest web service的插入、修改和删除方法348
14.4 使用轻量级网络请求框架mknetworkkit352
14.4.1 asihttprequest、afnetworking和mknetworkkit比较353
14.4.2 安装和配置mknetworkkit框架353
14.4.3 网络请求354
14.4.4 下载数据356
14.4.5 上传数据358
14.5 反馈网络信息改善用户体验359
14.5.1 使用下拉刷新控件改善用户体验359
14.5.2 使用等待指示器控件362
14.5.3 使用网络等待指示器365
14.6 小结366
第15章定位服务与地图应用367
15.1 定位服务367
15.1.1 定位服务编程368
15.1.2 地理信息反编码372
15.1.3 地理信息编码查询373
15.1.4 关于定位服务的测试375
15.2 使用ios苹果地图378
15.2.1 显示地图378
15.2.2 添加标注380
15.2.3 跟踪用户位置变化383
15.3 使用程序外地图384
15.3.1 调用ios苹果地图384
15.3.2 调用谷歌web地图387
15.4 小结388
第三部分 进 阶 篇
第16章升级?390
16.1 从ios 6到ios 7的升级390
16.1.1 ios 7全新的扁平化设计391
16.1.2 屏幕适配问题394
16.1.3 ios 7状态栏隐藏396
16.1.4 ios 7状态栏样式设置397
16.2 从xcode 4到xcode 5的升级399
16.2.1 arc与mrc之争399
16.2.2 故事板与xib之争402
16.2.3 找回普通显示屏的模拟器407
16.2.4 找回老版本的interface builder408
16.2.5 使用资源目录管理图片409
16.3 从iphone 4到iphone 5的升级412
16.3.1 屏幕适配问题413
16.3.2 从32位到64位的升级416
16.4 小结417
第17章ios中的商业模式418
17.1 收费策略418
17.1.1 ios如何赚钱418
17.1.2 避免定价策略误区419
17.1.3 免费软件的艺术419
17.1.4 在适当的时间、适当的地点植入广告419
17.1.5 尝试不同的盈利模式419
17.2 使用苹果iad广告420
17.2.1 横幅广告420
17.2.2 插页广告425
17.2.3 查看你的收入430
17.3 使用谷歌admob广告432
17.3.1 注册admob账号和管理应用432
17.3.2 下载谷歌admob ads sdk和示例代码435
17.3.3 添加admob横幅广告437
17.3.4 添加admob插页广告442
17.3.5 为广告提交用户和位置信息445
17.3.6 搜索广告446
17.3.7 查看你的收入448
17.4 应用内购买449
17.4.1 概述449
17.4.2 测试环境搭建450
17.4.3 在程序中实现应用内购买455
17.4.4 测试应用内购买461
17.5 小结463
第18章找出程序中的bug——调试464
18.1 xcode调试工具464
18.1.1 定位编译错误464
18.1.2 查看和显示日志465
18.1.3 设置和查看断点466
18.1.4 调试工具栏470
18.1.5 输出窗口471
18.1.6 变量查看窗口473
18.1.7 查看线程474
18.2 日志与断言输出475
18.2.1 使用nslog函数475
18.2.2 使用nsassert宏476
18.2.3 移除nslog和nsassert477
18.3 lldb调试工具479
18.3.1 断点命令480
18.3.2 观察点命令482
18.3.3 查看变量和计算表达式命令483
18.4 异常堆栈报告分析485
18.4.1 跟踪异常堆栈485
18.4.2 分析堆栈报告488
18.5 在ios设备上调试488
18.5.1 创建开发者证书489
18.5.2 设备注册493
18.5.3 创建app id495
18.5.4 创建配置概要文件497
18.5.5 设备调试501
18.6 xcode设备管理工具502
18.6.1 管理设备配置概要文件503
18.6.2 查看设备上的应用程序504
18.6.3 设备控制台505
18.6.4 设备日志505
18.7 小结506
第19章测试驱动下的ios应用开发507
19.1 测试驱动的软件开发概述507
19.1.1 测试驱动的软件开发流程507
19.1.2 测试驱动的软件开发案例508
19.1.3 ios 7单元测试框架513
19.2 使用xctest测试框架513
19.2.1 添加xctest到工程514
19.2.2 编写xctest测试方法515
19.2.3 运行测试程序521
19.2.4 分析测试报告521
19.3 ios单元测试最佳实践523
19.3.1 测试数据持久层523
19.3.2 测试业务逻辑层527
19.3.3 测试表示层529
19.4 小结531
第20章让你的程序“飞”起来——性能优化532
20.1 内存优化532
20.1.1 内存泄漏问题的解决532
20.1.2 查找和解决僵尸对象540
20.1.3autorelease的使用问题543
20.1.4 响应内存警告543
20.1.5 选择xib还是故事板545
20.2 优化资源文件545
20.2.1 图片文件优化546
20.2.2 音频文件优化548
20.3 延迟加载549
20.3.1 资源文件的延迟加载549
20.3.2 故事板和xib文件的延迟加载553
20.4 数据持久化的优化555
20.4.1 使用文件555
20.4.2 使用sqlite数据库559
20.4.3 使用core data560
20.5 可重用对象的使用562
20.5.1 表视图中的可重用对象562
20.5.2 集合视图中的可重用对象564
20.5.3 地图视图中的可重用对象565
20.6 并发处理与多核cpu565
20.6.1 主线程阻塞问题566
20.6.2 选择nsthread还是gcd566
20.7 编译参数568
20.8 小结569
第21章管理好你的程序代码——代码版本控制570
21.1 概述570
21.1.1 版本控制历史570
21.1.2 基本概念571
21.2 git代码版本控制571
21.2.1 服务器搭建571
21.2.2 gitolite服务器管理573
21.2.3 git常用命令575
21.2.4 git分支577
21.2.5 git协同开发581
21.2.6 xcode 5中git的配置与使用583
21.3 github代码托管服务590
21.3.1 创建和配置github账号590
21.3.2 创建代码库592
21.3.3 派生代码库595
21.3.4 使用github协同开发597
21.3.5 管理组织601
21.4 小结605
第22章把你的应用放到app store上606
22.1 收官606
22.1.1 在xcode 5下添加图标606
22.1.2 xcode 5添加启动界面608
22.1.3 调整identity和deployment info属性611
22.1.4 为发布进行编译612
22.1.5 应用打包618
22.2 发布流程619
22.2.1 创建应用及基本信息620
22.2.2 应用定价信息621
22.2.3 最后的信息输入622
22.2.4 上传应用625
22.3 审核不通过的常见原因627
22.4 小结628
第四部分 实 战 篇
第23章重构mynotes应用——ios网络通信中的设计模式与架构设计630
23.1 移动网络通信应用的分层架构设计630
23.2 基于委托模式实现631
23.2.1 网络通信与委托模式631
23.2.2 在异步网络通信中使用委托模式实现分层架构设计631
23.2.3 类图632
23.2.4 时序图634
23.2.5 数据持久层重构637
23.2.6 业务逻辑层的代码实现640
23.2.7 表示层的代码实现642
23.3 基于观察者模式的通知机制实现646
23.3.1 观察者模式的通知机制回顾646
23.3.2 异步网络通信中通知机制的分层架构设计647
23.3.3 类图647
23.3.4 时序图648
23.3.5 数据持久层的重构651
23.3.6 业务逻辑层的代码实现653
23.3.7 表示层的代码实现653
23.4 小结658
第24章ios敏捷开发项目实战——2016里约热内卢奥运会应用开发及app store发布659
24.1 应用分析与设计659
24.1.1 应用概述659
24.1.2 需求分析659
24.1.3 原型设计660
24.1.4 数据库设计660
24.1.5 架构设计662
24.2 ios敏捷开发662
24.2.1 敏捷开发宣言662
24.2.2 ios适合敏捷开发吗663
24.2.3 ios敏捷开发最佳实践663
24.3 任务1:创建应用基本工作空间665
24.4 任务2:信息系统层与持久层开发666
24.4.1 迭代2.1:编写数据库ddl脚本666
24.4.2 迭代2.2:插入初始数据到数据库667
24.4.3 迭代2.3:编写实体类667
24.4.4 迭代2.4:dao类xctest单元测试668
24.4.5 迭代2.5:编写dao类672
24.4.6 迭代2.6:发布到github676
24.5 任务3:业务逻辑层开发676
24.5.1 迭代3.1:比赛项目业务逻辑类xctest单元测试676
24.5.2 迭代3.2:编写比赛项目业务逻辑类677
24.5.3 迭代3.3:比赛日程业务逻辑类xctest单元测试678
24.5.4 迭代3.4:编写比赛日程业务逻辑类679
24.5.5 迭代3.5:发布到github681
24.6 任务4:表示层开发681
24.6.1 迭代4.1:使用资源目录管理图片和图标资源682
24.6.2 迭代4.3:根据原型设计初步设计ipad故事板683
24.6.3 迭代4.3:根据原型设计初步设计iphone故事板684
24.6.4 迭代4.4:首页模块684
24.6.5 迭代4.5:比赛项目模块685
24.6.6 迭代4.6:比赛日程模块690
24.6.7 迭代4.7:倒计时模块表示层692
24.6.8 迭代4.8:关于我们模块表示层694
24.6.9 迭代4.9:发布到github694
24.7 任务5:收工694
24.7.1 迭代5.1:添加图标695
24.7.2 迭代5.2:设计和添加启动界面695
24.7.3 迭代5.3:植入谷歌admob横幅广告695
24.7.4 迭代5.4:性能测试与改善696
24.7.5 迭代5.5:发布到github697
24.7.6 迭代5.6:在app store上发布应用697
24.8 小结699
本图书信息来源:互动出版网