展开全部

主编推荐语

本书分为基础、网络、进阶与实战篇,涵盖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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。