计算机
类型
7.1
豆瓣评分
可以朗读
语音朗读
689千字
字数
2014-04-01
发行日期
展开全部
主编推荐语
本书分为基础、网络、进阶与实战篇,涵盖iOS开发全面知识,实用技巧,实战案例。
内容简介
本书共分为四个部分:第一部分为基础篇,介绍了iOS的一些基础知识;第二部分为网络篇,介绍了iOS网络开发相关的知识;第三部分为进阶篇,介绍了iOS高级内容、商业思考等;第四部分为实战篇,从无到有地介绍了几个真实的iOS应用,如MyNotes应用和2016里约热内卢奥运会应用,带领读者身临其境地完成一个项目的开发,了解整个开发过程,掌握开发中的实用技巧。
目录
- 封面
- 目录
- 扉页
- 版权
- 前言
- 第一部分 基础篇
- 第1章 开篇综述
- 1.1 iOS概述
- 1.1.1 iOS介绍
- 1.1.2 iOS 7新特性
- 1.2 开发环境及开发工具
- 1.3 本书中的约定
- 1.3.1 案例代码约定
- 1.3.2 图示的约定
- 第2章 第一个iOS应用程序
- 2.1 创建HelloWorld工程
- 2.1.1 创建工程
- 2.1.2 Xcode中的iOS工程模板
- 2.1.3 应用剖析
- 2.2 HelloWorld工程中故事板文件Main.storyboard
- 2.2.1 故事板的导航特点
- 2.2.2 故事板中的Scene和Segue
- 2.3 应用生命周期
- 2.3.1 非运行状态——应用启动场景
- 2.3.2 点击Home键——应用退出场景
- 2.3.3 挂起重新运行场景
- 2.3.4 内存清除——应用终止场景
- 2.4 视图生命周期
- 2.4.1 视图生命周期与视图控制器关系
- 2.4.2 iOS UI状态保持和恢复
- 2.5 设置产品属性
- 2.5.1 Xcode中的Project和Target
- 2.5.2 设置常用的产品属性
- 2.6 iOS API简介
- 2.6.1 API概述
- 2.6.2 如何使用API帮助
- 2.7 小结
- 第3章 UIView与控件
- 3.1 视图“始祖”——UIView
- 3.1.1 UIView“家族”
- 3.1.2 应用界面的构建层次
- 3.1.3 视图分类
- 3.2 标签控件和按钮控件
- 3.2.1 标签控件
- 3.2.2 按钮控件
- 3.2.3 动作和输出口
- 3.3 TextField控件和TextView控件
- 3.3.1 TextField控件
- 3.3.2 TextView控件
- 3.3.3 键盘的打开和关闭
- 3.3.4 关闭和打开键盘的通知
- 3.3.5 键盘的种类
- 3.4 开关控件、滑块控件和分段控件
- 3.4.1 开关控件
- 3.4.2 滑块控件
- 3.4.3 分段控件
- 3.5 网页控件WebView
- 3.5.1 WebView介绍
- 3.5.2 使用WebView构建Hybrid应用
- 3.6 屏幕滚动控件ScrollView
- 3.6.1 ScrollView属性的设置
- 3.6.2 键盘与其他控件的协同
- 3.7 等待相关的控件与进度条
- 3.7.1 活动指示器ActivityIndicatorView
- 3.7.2 进度条ProgressView
- 3.8 警告框和操作表
- 3.8.1 警告框AlertView
- 3.8.2 操作表ActionSheet
- 3.9 工具栏和导航栏
- 3.9.1 工具栏
- 3.9.2 导航栏
- 3.10 屏幕布局
- 3.10.1 iPad、iPhone和iPhone 5屏幕布局
- 3.10.2 绝对布局和相对布局
- 3.10.3 使用AutoLayout布局
- 3.10.4 旋转你的屏幕
- 3.11 选择器
- 3.11.1 日期选择器
- 3.11.2 普通选择器
- 3.11.3 数据源协议与委托协议
- 3.12 集合视图
- 3.12.1 集合视图介绍
- 3.12.2 集合视图单元格
- 3.12.3 数据源协议与委托协议
- 3.13 小结
- 第4章 表视图
- 4.1 概述
- 4.1.1 表视图的组成
- 4.1.2 表视图的相关类
- 4.1.3 表视图分类
- 4.1.4 单元格的组成和样式
- 4.1.5 数据源协议与委托协议
- 4.2 简单表视图
- 4.2.1 创建简单表视图
- 4.2.2 自定义单元格
- 4.2.3 添加搜索栏
- 4.3 分节表视图
- 4.3.1 添加索引
- 4.3.2 分组与静态表
- 4.4 修改单元格
- 4.4.1 删除和插入单元格
- 4.4.2 移动单元格
- 4.5 表视图UI设计模式
- 4.5.1 分页模式
- 4.5.2 下拉刷新模式
- 4.5.3 iOS 7下拉刷新控件
- 4.6 小结
- 第5章 视图控制器与导航模式
- 5.1 概述
- 5.1.1 视图控制器的种类
- 5.1.2 导航模式
- 5.1.3 模态视图
- 5.2 平铺导航
- 5.2.1 应用场景
- 5.2.2 基于分屏导航的实现
- 5.2.3 基于分页导航的实现
- 5.3 标签导航
- 5.3.1 应用场景
- 5.3.2 实现
- 5.4 树形结构导航
- 5.4.1 应用场景
- 5.4.2 实现
- 5.5 组合使用导航模式
- 5.5.1 应用场景
- 5.5.2 实现
- 5.6 小结
- 第6章 iOS常用设计模式
- 6.1 单例模式
- 6.1.1 问题提出
- 6.1.2 实现原理
- 6.1.3 应用案例
- 6.2 委托模式
- 6.2.1 问题提出
- 6.2.2 实现原理
- 6.2.3 应用案例
- 6.3 观察者模式
- 6.3.1 问题提出
- 6.3.2 实现原理
- 6.3.3 通知机制和KVO机制
- 6.4 MVC模式
- 6.4.1 MVC模式概述
- 6.4.2 Cocoa Touch中的MVC模式
- 6.5 小结
- 第7章 iPhone与iPad应用开发的差异
- 7.1 概述
- 7.1.1 应用场景差异
- 7.1.2 设计和开发需注意的问题
- 7.1.3 构建自适应的iPhone和iPad工程
- 7.2 iPad专用API
- 7.2.1 UIPopoverController控制器
- 7.2.2 UISplitViewController控制器
- 7.2.3 模态视图专用属性
- 7.3 小结
- 第8章 iOS分层架构设计
- 8.1 低耦合企业级系统架构设计
- 8.2 iOS分层架构设计
- 8.2.1 基于同一工程的分层
- 8.2.2 基于一个工作空间不同工程的分层
- 8.3 小结
- 第9章 iOS 7中文字排版和渲染 引擎——Text Kit
- 9.1 Text Kit基础
- 9.1.1 文字的排版和渲染
- 9.1.2 Text Kit架构
- 9.1.3 Text Kit中的核心类
- 9.1.3 实例:凸版印刷效果
- 9.2 文字图片混合排版
- 9.3 动态字体
- 9.4 小结
- 第10章 应用程序设置
- 10.1 概述
- 10.1.1 设置
- 10.1.2 配置
- 10.2 应用程序设置包
- 10.3 设置项目种类
- 10.3.1 文本字段
- 10.3.2 开关
- 10.3.3 滑块
- 10.3.4 值列表
- 10.3.5 子界面
- 10.4 读取设置
- 10.5 小结
- 第11章 国际化
- 11.1 概述
- 11.1.1 需要国际化的内容
- 11.1.2 国际化目录结构
- 11.2 文本信息国际化
- 11.2.1 系统按钮和信息国际化
- 11.2.2 应用名称国际化
- 11.2.3 程序代码输出的静态文本国际化
- 11.2.4 使用genstring工具
- 11.3 xib和故事板文件国际化
- 11.3.1 使用Base国际化技术
- 11.3.2 AutoLayout与国际化
- 11.4 资源文件国际化
- 11.4.1 图片资源文件国际化
- 11.4.2 声音资源文件国际化
- 11.5 小结
- 第12章 数据持久化
- 12.1 概述
- 12.1.1 沙箱目录
- 12.1.2 持久化方式
- 12.2 属性列表
- 12.3 对象归档
- 12.4 使用SQLite数据库
- 12.4.1 SQLite数据类型
- 12.4.2 创建数据库
- 12.4.3 查询数据
- 12.4.4 修改数据
- 12.5 Core Data
- 12.5.1 ORM
- 12.5.2 Core Data堆栈
- 12.5.3 建模和生成实体
- 12.5.4 采用Core Data分层架构设计
- 12.5.5 查询数据
- 12.5.6 修改数据
- 12.6 小结
- 第13章 访问通讯录
- 13.1 概述
- 13.2 读取联系人信息
- 13.2.1 查询联系人记录
- 13.2.2 读取单值属性
- 13.2.3 读取多值属性
- 13.2.4 读取图片属性
- 13.3 写入联系人信息
- 13.3.1 创建联系人
- 13.3.2 修改联系人
- 13.3.3 删除联系人
- 13.4 高级API
- 13.4.1 选择联系人
- 13.4.2 显示和修改联系人
- 13.4.3 创建联系人
- 13.5 小结
- 第二部分 网络篇
- 第14章 访问Web Service
- 14.1 概述
- 14.2 数据交换格式
- 14.2.1 XML文档结构
- 14.2.2 解析XML文档
- 14.2.3 JSON文档结构
- 14.2.4 JSON数据解码
- 14.3 REST Web Service
- 14.3.1 HTTP和HTTPS协议
- 14.3.2 同步GET请求方法
- 14.3.3 异步GET请求方法
- 14.3.4 POST请求方式
- 14.3.5 调用REST Web Service的插入、修改和删除方法
- 14.4 使用轻量级网络请求框架MKNetworkKit
- 14.4.1 ASIHTTPRequest、AFNetworking和MKNetworkKit比较
- 14.4.2 安装和配置MKNetworkKit框架
- 14.4.3 网络请求
- 14.4.4 下载数据
- 14.4.5 上传数据
- 14.5 反馈网络信息改善用户体验
- 14.5.1 使用下拉刷新控件改善用户体验
- 14.5.2 使用等待指示器控件
- 14.5.3 使用网络等待指示器
- 14.6 小结
- 第15章 定位服务与地图应用
- 15.1 定位服务
- 15.1.1 定位服务编程
- 15.1.2 地理信息反编码
- 15.1.3 地理信息编码查询
- 15.1.4 关于定位服务的测试
- 15.2 使用iOS苹果地图
- 15.2.1 显示地图
- 15.2.2 添加标注
- 15.2.3 跟踪用户位置变化
- 15.3 使用程序外地图
- 15.3.1 调用iOS苹果地图
- 15.3.2 调用谷歌Web地图
- 15.4 小结
- 第三部分 进阶篇
- 第16章 升级?
- 16.1 从iOS 6到iOS 7的升级
- 16.1.1 iOS 7全新的扁平化设计
- 16.1.2 屏幕适配问题
- 16.1.3 iOS 7状态栏隐藏
- 16.1.4 iOS 7状态栏样式设置
- 16.2 从Xcode 4到Xcode 5的升级
- 16.2.1 ARC与MRC之争
- 16.2.2 故事板与xib之争
- 16.2.3 找回普通显示屏的模拟器
- 16.2.4 找回老版本的Interface Builder
- 16.2.5 使用资源目录管理图片
- 16.3 从iPhone 4到iPhone 5的升级
- 16.3.1 屏幕适配问题
- 16.3.2 从32位到64位的升级
- 16.4 小结
- 第17章 iOS中的商业模式
- 17.1 收费策略
- 17.1.1 iOS如何赚钱
- 17.1.2 避免定价策略误区
- 17.1.3 免费软件的艺术
- 17.1.4 在适当的时间、适当的地点植入广告
- 17.1.5 尝试不同的盈利模式
- 17.2 使用苹果iAd广告
- 17.2.1 横幅广告
- 17.2.2 插页广告
- 17.2.3 查看你的收入
- 17.3 使用谷歌AdMob广告
- 17.3.1 注册AdMob账号和管理应用
- 17.3.2 下载谷歌AdMob Ads SDK和示例代码
- 17.3.3 添加AdMob横幅广告
- 17.3.4 添加AdMob插页广告
- 17.3.5 为广告提交用户和位置信息
- 17.3.6 搜索广告
- 17.3.7 查看你的收入
- 17.4 应用内购买
- 17.4.1 概述
- 17.4.2 测试环境搭建
- 17.4.3 在程序中实现应用内购买
- 17.4.4 测试应用内购买
- 17.5 小结
- 第18章 找出程序中的bug——调试
- 18.1 Xcode调试工具
- 18.1.1 定位编译错误
- 18.1.2 查看和显示日志
- 18.1.3 设置和查看断点
- 18.1.4 调试工具栏
- 18.1.5 输出窗口
- 18.1.6 变量查看窗口
- 18.1.7 查看线程
- 18.2 日志与断言输出
- 18.2.1 使用NSLog函数
- 18.2.2 使用NSAssert宏
- 18.2.3 移除NSLog和NSAssert
- 18.3 LLDB调试工具
- 18.3.1 断点命令
- 18.3.2 观察点命令
- 18.3.3 查看变量和计算表达式命令
- 18.4 异常堆栈报告分析
- 18.4.1 跟踪异常堆栈
- 18.4.2 分析堆栈报告
- 18.5 在iOS设备上调试
- 18.5.1 创建开发者证书
- 18.5.2 设备注册
- 18.5.3 创建App ID
- 18.5.4 创建配置概要文件
- 18.5.5 设备调试
- 18.6 Xcode设备管理工具
- 18.6.1 管理设备配置概要文件
- 18.6.2 查看设备上的应用程序
- 18.6.3 设备控制台
- 18.6.4 设备日志
- 18.7 小结
- 第19章 测试驱动下的iOS应用开发
- 19.1 测试驱动的软件开发概述
- 19.1.1 测试驱动的软件开发流程
- 19.1.2 测试驱动的软件开发案例
- 19.1.3 iOS 7单元测试框架
- 19.2 使用XCTest测试框架
- 19.2.1 添加XCTest到工程
- 19.2.2 编写XCTest测试方法
- 19.2.3 运行测试程序
- 19.2.4 分析测试报告
- 19.3 iOS单元测试最佳实践
- 19.3.1 测试数据持久层
- 19.3.2 测试业务逻辑层
- 19.3.3 测试表示层
- 19.4 小结
- 第20章 让你的程序“飞”起来——性能优化
- 20.1 内存优化
- 20.1.1 内存泄漏问题的解决
- 20.1.2 查找和解决僵尸对象
- 20.1.3 autorelease的使用问题
- 20.1.4 响应内存警告
- 20.1.5 选择xib还是故事板
- 20.2 优化资源文件
- 20.2.1 图片文件优化
- 20.2.2 音频文件优化
- 20.3 延迟加载
- 20.3.1 资源文件的延迟加载
- 20.3.2 故事板和xib文件的延迟加载
- 20.4 数据持久化的优化
- 20.4.1 使用文件
- 20.4.2 使用SQLite数据库
- 20.4.3 使用Core Data
- 20.5 可重用对象的使用
- 20.5.1 表视图中的可重用对象
- 20.5.2 集合视图中的可重用对象
- 20.5.3 地图视图中的可重用对象
- 20.6 并发处理与多核CPU
- 20.6.1 主线程阻塞问题
- 20.6.2 选择NSThread还是GCD
- 20.7 编译参数
- 20.8 小结
- 第21章 管理好你的程序代码——代码版本控制
- 21.1 概述
- 21.1.1 版本控制历史
- 21.1.2 基本概念
- 21.2 Git代码版本控制
- 21.2.1 服务器搭建
- 21.2.2 Gitolite服务器管理
- 21.2.3 Git常用命令
- 21.2.4 Git分支
- 21.2.5 Git协同开发
- 21.2.6 Xcode 5中Git的配置与使用
- 21.3 GitHub代码托管服务
- 21.3.1 创建和配置GitHub账号
- 21.3.2 创建代码库
- 21.3.3 派生代码库
- 21.3.4 使用GitHub协同开发
- 21.3.5 管理组织
- 21.4 小结
- 第22章 把你的应用放到App Store上
- 22.1 收官
- 22.1.1 在Xcode 5下添加图标
- 22.1.2 Xcode 5添加启动界面
- 22.1.3 调整Identity和Deployment Info属性
- 22.1.4 为发布进行编译
- 22.1.5 应用打包
- 22.2 发布流程
- 22.2.1 创建应用及基本信息
- 22.2.2 应用定价信息
- 22.2.3 最后的信息输入
- 22.2.4 上传应用
- 22.3 审核不通过的常见原因
- 22.4 小结
- 第四部分 实战篇
- 第23章 重构MyNotes应用——iOS网络通信中的设计模式与架构设计
- 23.1 移动网络通信应用的分层架构设计
- 23.2 基于委托模式实现
- 23.2.1 网络通信与委托模式
- 23.2.2 在异步网络通信中使用委托模式实现分层架构设计
- 23.2.3 类图
- 23.2.4 时序图
- 23.2.5 数据持久层重构
- 23.2.6 业务逻辑层的代码实现
- 23.2.7 表示层的代码实现
- 23.3 基于观察者模式的通知机制实现
- 23.3.1 观察者模式的通知机制回顾
- 23.3.2 异步网络通信中通知机制的分层架构设计
- 23.3.3 类图
- 23.3.4 时序图
- 23.3.5 数据持久层的重构
- 23.3.6 业务逻辑层的代码实现
- 23.3.7 表示层的代码实现
- 23.4 小结
- 第24章 iOS敏捷开发项目实战——2016里约热内卢奥运会应用开发及App Store发布
- 24.1 应用分析与设计
- 24.1.1 应用概述
- 24.1.2 需求分析
- 24.1.3 原型设计
- 24.1.4 数据库设计
- 24.1.5 架构设计
- 24.2 iOS敏捷开发
- 24.2.1 敏捷开发宣言
- 24.2.2 iOS适合敏捷开发吗
- 24.2.3 iOS敏捷开发最佳实践
- 24.3 任务1:创建应用基本工作空间
- 24.4 任务2:信息系统层与持久层开发
- 24.4.1 迭代2.1:编写数据库DDL脚本
- 24.4.2 迭代2.2:插入初始数据到数据库
- 24.4.3 迭代2.3:编写实体类
- 24.4.4 迭代2.4:DAO类XCTest单元测试
- 24.4.5 迭代2.5:编写DAO类
- 24.4.6 迭代2.6:发布到GitHub
- 24.5 任务3:业务逻辑层开发
- 24.5.1 迭代3.1:比赛项目业务逻辑类XCTest单元测试
- 24.5.2 迭代3.2:编写比赛项目业务逻辑类
- 24.5.3 迭代3.3:比赛日程业务逻辑类XCTest单元测试
- 24.5.4 迭代3.4:编写比赛日程业务逻辑类
- 24.5.5 迭代3.5:发布到GitHub
- 24.6 任务4:表示层开发
- 24.6.1 迭代4.1:使用资源目录管理图片和图标资源
- 24.6.2 迭代4.3:根据原型设计初步设计iPad故事板
- 24.6.3 迭代4.3:根据原型设计初步设计iPhone故事板
- 24.6.4 迭代4.4:首页模块
- 24.6.5 迭代4.5:比赛项目模块
- 24.6.6 迭代4.6:比赛日程模块
- 24.6.7 迭代4.7:倒计时模块表示层
- 24.6.8 迭代4.8:关于我们模块表示层
- 24.6.9 迭代4.9:发布到GitHub
- 24.7 任务5:收工
- 24.7.1 迭代5.1:添加图标
- 24.7.2 迭代5.2:设计和添加启动界面
- 24.7.3 迭代5.3:植入谷歌AdMob横幅广告
- 24.7.4 迭代5.4:性能测试与改善
- 24.7.5 迭代5.5:发布到GitHub
- 24.7.6 迭代5.6:在App Store上发布应用
- 24.8 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。