前 言
第一部分 基础篇
第1章 开篇综述
1.1 iOS概述
1.2 开发环境及开发工具
1.3 本书中的约定
第2章 第一个iOS应用程序
2.1 创建HelloWorld工程
2.2 HelloWorld工程中的故事板文件
2.3 应用生命周期
2.4 视图生命周期
2.5 设置产品属性
2.6 iOS API简介
2.7 小结
第3章 UIView与视图
3.1 视图“始祖”——UIView
3.2 标签与按钮
3.3 动作与输出口
3.4 TextField和TextView
3.5 开关控件、滑块控件和分段控件
3.6 网页视图WebView
3.7 等待相关的控件与进度条
3.8 警告框和操作表
3.9 工具栏和导航栏
3.10 小结
第4章 iOS 8多分辨率屏幕适配
4.1 iOS 8屏幕的多样性
4.2 iOS屏幕布局
4.3 Auto Layout布局
4.4 Size Class与iOS 8多屏幕适配
4.5 在屏幕滚动视图中使用Auto Layout和Size Class
4.6 使用资源目录(asset catalog)管理图片
4.7 小结
第5章 委托协议、数据源协议与高级视图
5.1 视图中的委托协议和数据源协议
5.2 选择器
5.3 集合视图
5.4 小结
第6章 表视图
6.1 概述
6.2 简单表视图
6.3 分节表视图
6.4 修改单元格
6.5 表视图UI设计模式
6.6 小结
第7章 视图控制器与导航模式
7.1 概述
7.2 平铺导航
7.3 标签导航
7.4 树形结构导航
7.5 组合使用导航模式
7.6 小结
第8章 iOS常用设计模式
8.1 单例模式
8.2 委托模式
8.3 观察者模式
8.4 MVC 模式
8.5 小结
第9章 iPhone与iPad应用开发的差异
9.1 概述
9.2 iPad专用API
9.3 小结
第10章 iOS分层架构设计
10.1 低耦合企业级系统架构设计
10.2 iOS分层架构设计
10.3 实例:MyNotes应用
10.4 基于同一工程的分层
10.5 基于同一工作空间静态链接库实现的WLSOO模式
10.6 基于同一工作空间框架实现的WFSSS模式
10.7 基于同一工作空间框架实现的WFOOO模式
10.8 基于同一工作空间框架实现的WFSOO模式
10.9 基于同一工作空间框架实现的WFOSS模式
10.10 小结
第11章 数据持久化
11.1 概述
11.2 属性列表
11.3 对象归档
11.4 使用SQLite数据库
11.5 Core Data
11.6 小结
第12章 应用程序设置
12.1 概述
12.2 应用程序设置包
12.3 设置项目种类
12.4 读取设置
12.5 小结
第13章 国际化
13.1 概述
13.2 文本信息国际化
13.3 xib和故事板文件国际化
13.4 资源文件国际化
13.5 小结
第14章 访问联系人
14.1 概述
14.2 读取联系人信息
14.3 写入联系人信息
14.4 高级API
14.5 小结
第二部分 网络篇
第15章 访问Web Service
15.1 概述
15.2 数据交换格式
15.3 REST Web Service
15.4 使用轻量级网络请求框架MKNetworkKit
15.5 反馈网络信息改善用户体验
15.6 小结
第16章 定位服务与地图应用
16.1 定位服务
16.2 使用iOS苹果地图
16.3 使用程序外地图
16.4 小结
第三部分 进阶篇
第17章 iOS中的商业模式
17.1 收费策略
17.2 使用苹果iAd 广告
17.3 使用谷歌AdMob广告
17.4 小结
第18章 找出程序中的bug——调试
18.1 Xcode调试工具
18.2 日志与断言输出
18.3 异常堆栈报告分析
18.4 在iOS设备上调试
18.5 Xcode设备管理工具
18.6 小结
第19章 测试驱动下的iOS应用开发
19.1 测试驱动的软件开发概述
19.2 使用XCTest测试框架
19.3 异步单元测试
19.4 性能测试
19.5 iOS单元测试最佳实践
19.6 小结
第20章 让你的程序“飞”起来——性能优化
20.1 内存优化
20.2 优化资源文件
20.3 延迟加载
20.4 数据持久化的优化
20.5 可重用对象的使用
20.6 并发处理与多核CPU
20.7 小结
第21章 管理好你的程序代码——代码版本控制
21.1 概述
21.2 Git代码版本控制
21.3 GitHub代码托管服务
21.4 小结
第22章 把你的应用放到App Store上
22.1 收官
22.2 发布流程
22.3 常见审核不通过的原因
22.4 小结
第四部分 实战篇
第23章 重构MyNotes应用——iOS网络通信中的设计模式与架构设计
23.1 移动网络通信应用的分层架构设计
23.2 Objective-C版本:在工作空间中添加和配置MKNetworkKit
23.3 基于委托模式实现
23.4 基于观察者模式的通知机制实现
23.5 小结
第24章 iOS敏捷开发项目实战——2016里约热内卢奥运会应用开发及App Store发布
24.1 应用分析与设计
24.2 iOS敏捷开发
24.3 任务1:创建应用工作空间和工程
24.4 任务2:信息系统层与持久层开发
24.5 任务3:业务逻辑层开发
24.6 任务4:表示层开发
24.7 任务5:收工
24.8 小结
★“本书前两版均受到了51CTO社区广大iOS开发者和爱好者的好评和认可。与前两版不同的是,本书采用Swift和Objective-C两种语言进行介绍,讨论了iOS 8开发中常用的新特性、新功能。这本书不仅可以帮助iOS初学者迅速掌握iOS开发技能,而且可以帮助程序员系统全面地梳理知识,提高开发水平。在iOS开发的道路上,它定能助你一臂之力。” ——曹亚莉,51CTO博客总编,51CTO学院高级产品运营经理
★“本书结合大量案例讲述了iOS应用开发的技巧,无疑是一本值得初学者认真阅读的从入门到精通的教材。第3版在前两版的基础上增加了iOS 8的新技术,对比介绍了Swift和Objective-C两种语言,使读者更容易掌握这两种语言的区别,同时突出了扁平化的设计理念。本书将是你踏入iOS殿堂的黄金阶梯!” ——9ria游戏开发者社区
★“本书通俗易懂,全面覆盖了iOS 8的新特性及要点,并且对比讲解了使用Objective-C和Swift来实现iOS 8开发的差异。在第三篇中,作者总结并分享了以往开发过程中的经验和心得,很值得借鉴。相信本书对广大iOS开发者会有很大的帮助。” ——智捷课堂