《iOS开发指南》正式出版-源码-样章-目录,欢迎大家提出宝贵意见
智捷iOS课堂-关东升老师最新作品:《iOS开发指南-从0基础到AppStore上线》正式出版了
iOS架构设计、iOS性能优化、iOS测试驱动、iOS调试、iOS团队协作版本控制。。。。。。应有尽有
京东销售地址:http://item.jd.com/11288969.html
当当销售地址:http://product.dangdang.com/product.aspx?product_id=23290237
亚马逊销售:地址太长了,直接连接了
图灵社区在线阅读,购买地址:http://www.ituring.com.cn/book/1160
源码和章节和大家分享一下!
《iOS开发指南-从0基础到AppStore上线》书籍源码下载地址(免费下载):
源码比较大,打了3个包。
http://down.51cto.com/data/830337
http://down.51cto.com/data/830338
http://down.51cto.com/data/830339
试读章节下载地址
http://down.51cto.com/data/830349
iOS入门开发,iOS进阶开发相关教学视频,请观看,51CTO视频课程
http://edu.51cto.com/lecturer/user_id-701759.html
可以通过微博在线沟通
读书交流群:286411514/204462948
本书最新动态可以关注我的微博@tony_关东升 或者@智捷iOS课堂
本书网站:http://www.iosbook1.com,有部分内容和勘误问题讨论区等
目录大纲
基础篇
1 开篇综述
1.1iOS概述
1.1.1iOS是什么?
1.1.2iOS6新特性
1.2 开发环境及开发工具
1.3 本书中的约定
1.3.1 案例代码约定
1.3.2 图示的约定
2 第一个iOS应用程序
2.1 创建基于nib的HelloWorld工程
2.1.1 创建工程
2.1.2Xcode中的iOS工程模板
2.1.3 应用剖析
2.2 基于故事板的HelloWorld工程
2.2.1 使用故事板重构HelloWorld
2.2.2nib、xib与故事板
2.2.3 故事板中的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 iOS6 UI状态保持和恢复
2.5 设置产品属性
2.5.1Xcode中Project和Target
2.5.2 设置常用的产品属性
2.6iOS API的介绍
2.6.1API概述
2.6.2 如何使用API帮助
3 iOS常用设计模式
3.1 单例模式
3.1.1 问题提出
3.1.2 实现原理
3.1.3 应用案例
3.2 委托模式
3.2.1 问题提出
3.2.2 实现原理
3.2.3 应用案例
3.3 观察者模式
3.3.1 问题提出
3.3.2 实现原理
3.3.3 通知机制
3.3.4KVO机制
3.4MVC模式
3.4.1MVC模式概述
3.4.2Cocoa Touch中的MVC模式
4 UIView与控件
4.1 视图“始祖”——UIView
4.1.1UIView“家族”
4.1.2 应用画面的构建层次
4.1.3 视图分类
4.2 标签控件和按钮控件
4.2.1 标签控件
4.2.2 按钮控件
4.2.3 动作和输出口
4.3TextField控件和TextView控件
4.3.1TextField控件
4.3.2TextView控件
4.3.3 键盘的打开和关闭
4.3.4 关闭和打开键盘的通知
4.3.5 键盘的种类
4.4 开关控件、滑块控件和分段控件
4.4.1 开关控件
4.4.2 滑块控件
4.4.3 分段控件
4.5 网页控件WebView
4.5.1WebView介绍
4.5.2 使用WebView构建Hybrid应用
4.5.3 本地代码调用JavaScript
4.5.4JavaScript调用本地代码
4.6 屏幕滚动控件ScrollView
4.6.1ScrollView属性的设置
4.6.2 键盘与其它控件的协同
4.7 等待相关的控件与进度条
4.7.1 等待控件ActivityIndicatorView
4.7.2 进度条ProgressView
4.7 警告和动作选单
4.7.1 警告框AlertView
4.7.2 动作选单ActionSheet
4.8 工具栏和导航栏
4.8.1 工具栏
4.8.2 导航栏
4.9 屏幕布局
4.9.1iPad与iPhone屏幕布局
4.9.2 绝对布局和相对布局
4.9.3 使用iOS6 AutoLayout布局
4.9.4 旋转你的屏幕
4.10 拨选器
4.10.1 日期拨选器
4.10.2 普通拨选器
4.10.3 数据源协议与委托协议
4.11iOS6中的Collection视图
4.11.1Collection视图介绍
4.11.2Collection视图单元格
4.11.3 数据源协议与委托协议
5 表视图
5.1 概述
5.1.1 表视图的组成
5.1.2 表视图相关类的构成
5.1.3 表视图分类
5.1.4 单元格组成和样式
5.1.5 数据源协议与委托协议
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 表视图UI设计模式
5.5.1 分页模式
5.5.2 下拉刷新模式
5.5.3iOS6下来刷新控件
6 视图控制器与导航模式
6.1 概述
6.1.1 视图控制器种类
6.1.2 导航模式
6.1.3 模态视图
6.2 平铺页面导航
6.2.1 应用场景
6.2.2 基于分屏控件的导航实现
6.2.3 基于Page的导航实现
6.3 标签导航
6.3.1 应用场景
6.3.2nib实现
6.3.3 故事板实现
6.4 树形结构导航
6.4.1 应用场景
6.4.2nib实现
6.4.3 故事板实现
6.5 组合使用导航模式
6.5.1 应用场景
6.5.2 故事板实现
7 iPhone与iPad应用开发的差异
7.1 概述
7.1.1 应用场景差异
7.1.2 设计和开发需注意的问题
7.1.3 构建自适应iPhone和iPad工程
7.2iPad专用API
7.2.1UIPopoverController控制器
7.2.2UISplitViewController控制器
7.2.3 模态视图专用属性
7.3Master-Detail应用程序模板
7.3.1nib实现模板
7.3.2 故事板实现模板
7.4Utility应用程序模板
7.4.1nib实现模板
7.4.2 故事板实现模板
7.5 移动平台的分层架构设计
7.5.1 低耦合企业级系统架构设计
7.5.2 移动平台的分层架构设计
7.5.3 基于同一工程的分层
7.5.4 基于一个工作空间不同工程的分层
8 应用程序的设置
8.1 概述
8.1.1 设置
8.1.2 配置
8.2 应用程序设置包
8.3 设置项目种类
8.3.1 文本字段
8.3.2 开关
8.3.3 滑块
8.3.4 值列表
8.3.5 子画面
8.4 读取设置
9 应用程序本地化
9.1 概述
9.1.1 本地化内容
9.1.2 本地化目录结构
9.2 文本信息本地化
9.2.1 系统按钮和信息本地化
9.2.2 应用名称本地化
9.2.3 程序代码输出的静态文本本地化
9.2.4 使用genstring工具
9.3nib和故事板文件本地化
9.3.1 添加本地化
9.3.2 开关使用ibtool工具
9.4 资源文件本地化
10 数据持久化
10.1 概述
10.1.1 沙箱目录
10.1.2 持久化方式
10.2 属性列表
10.3 对象归档
10.4 使用SQLite数据库
10.4.1SQLite数据类型
10.4.2 创建数据库
10.4.3 查询数据
10.4.4 修改数据
10.5Core Data
10.5.1ORM(对象关系映射)
10.5.2CoreData堆栈
10.5.3 建模和生成实体
10.5.4 采用Core Data分层架构设计
10.5.5 查询数据
10.5.6 修改数据
11 访问通讯录
11.1 概述
11.2 读取联系人信息
11.2.1 查询联系人记录
11.2.2 读取单值属性
11.2.3 读取多值属性
11.2.4 读取图片属性
11.3 写入联系人信息
11.3.1 创建联系人
11.3.2 修改联系人
11.3.3 删除联系人
11.4AddressBook高级API
11.4.1 选择联系人
11.4.2 显示和修改联系人
11.4.3 创建联系人
网络篇
12 访问Web Service
12.1 概述
12.2 数据交换格式
12.2.1XML文档结构
12.2.2 解析XML文档
12.2.3JSON文档结构
12.2.4JSON数据解码
12.3REST Web Service
12.3.1HTTP和HTTPS协议
12.3.2 同步GET方法请求编程
12.3.3 异步GET方法请求编程
12.3.4POST方法请求编程
12.3.5 调用REST Web Service的插入、修改和删除方法
12.4ASIHTTPRequest框架使用
12.4.1 安装和配置ASIHTTPRequest框架
12.4.2 同步请求
12.4.3 异步请求
12.4.4 使用请求队列
12.4.5 上传数据
12.5 反馈网络信息改善用户体验
12.5.1iOS6表视图刷新控件的使用
12.5.2 使用等待指示器控件
12.5.3 使用网络等待指示器
13 定位服务与地图应用开发
13.1 定位服务
13.1.1 定位服务编程
13.1.2 地理信息反编码
13.1.3 地理信息编码查询
13.1.4 关于定位服务的测试
13.2 使用iOS6苹果地图
13.2.1 显示地图
13.2.2 添加标注
13.2.3 跟踪用户位置变化
13.3 使用程序外地图
13.3.1 调用iOS6苹果地图
13.3.2 调用谷歌Web地图
进阶篇
14 iOS中的商业模式
14.1 收费策略
14.1.1iOS如何赚钱
14.1.2 避免定价策略误区
14.1.3 免费软件的艺术
14.1.4 适当的时间适当的地点植入你的广告
14.1.5 尝试不同的盈利模式
14.2 使用苹果iAd广告
14.2.1 横幅广告
14.2.2 插页广告
14.2.3 查看你的收入
14.3 使用谷歌AdMob广告
14.3.1 注册AdMob帐号和管理应用
14.3.2 下载谷歌AdMob Ads SDK和示例代码
14.3.3 添加AdMob横幅广告
14.3.4 添加AdMob插页广告
14.3.5 为广告提交用户和位置信息
14.3.6 搜索广告
14.3.7 查看你的收入
14.4 应用内购买
14.4.1 概述
14.4.2 测试环境搭建
14.4.3 在程序中添加实现应用内购买
14.4.4 测试应用内购买
15 找出你程序中的BUG-调试
15.1Xcode调试工具
15.1.1 定位编译错误
15.1.2 查看和显示日志
15.1.3 设置和查看断点
15.1.4 调试工具栏
15.1.5 输出窗口
15.1.6 变量查看窗口
15.1.7 查看线程
15.2 日志与断言输出
15.2.1 使用NSLog函数
15.2.2 使用NSAssert宏
15.2.3 移除NSLog和NSAssert
15.3LLDB调试工具
15.3.1 断点命令
15.3.2 观察点命令
15.3.3 查看变量和计算表达式命令
15.4 异常堆栈报告分析
15.4.1 跟踪异常堆栈
15.4.2 分析堆栈报告
15.5iOS设备上调试
15.5.1 创建开发者证书
15.5.2 设备注册
15.5.3 创建App ID
15.5.4 创建配置概要文件
15.5.5 设备调试
15.6Xcode设备管理工具
15.6.1 管理设备配置概要文件
15.6.2 查看设备上应用程序
15.6.3 设备控制台
15.6.4 设备日志
16 基于测试驱动的iOS开发
16.1 测试驱动的软件开发概述
16.1.1 测试驱动的软件开发流程
16.1.2 测试驱动的软件开发案例
16.2 使用OCUnit测试框架
16.2.1iOS单元测试框架
16.2.2 添加OCUnit到工程
16.2.3 应用测试和逻辑测试
16.2.4 编写OCUnit测试方法
16.2.5 分析测试报告
16.3 使用GHUnit测试框架
16.3.1 添加GHUnit到工程
16.3.2 编写GHUnit测试用例
16.3.3 分析测试报告
16.4 使用伪对象
16.4.1 添加OCMock到工程
16.4.2 使用OCMock
16.5iOS单元测试最佳实践
16.5.1iOS单元测试策略
16.5.2 测试数据持久层
16.5.3 测试业务逻辑层
16.5.4 测试表示层
17 让你的程序“飞”起来——性能优化
17.1 内存优化
17.1.1 内存泄漏问题的解决
17.1.2 查找和解决僵尸对象
17.1.3autorelease的使用问题
17.1.4 响应内存警告
17.1.5 选择nib还是故事板?
17.2 优化资源文件
17.2.1 图片文件优化
17.2.2 音频文件优化
17.3 延迟加载
17.3.1 资源文件的延迟加载
17.3.2 故事板和nib文件的延迟加载
17.4 数据持久化的优化
17.4.1 使用文件
17.4.2 使用SQLite数据库
17.4.3 使用CoreData
17.5 可重用对象的使用
17.5.1 表视图中的重用对象
17.5.2Collection视图中的重用对象
17.5.3 地图视图中的重用对象
17.6 并发处理与多核CPU
17.6.1 主线程阻塞问题
17.6.2 选择NSThread还是GCD?
17.7 编译器和编译参数
17.7.1GCC、LLVM GCC与Apple LLVM比较
17.7.2ARM架构
17.7.3Optimization Level
18 管理好你的程序代码——代码版本控制
18.1 概述
18.1.1 版本控制历史
18.1.2 基本概念
18.2Git代码版本控制
18.2.1 服务器搭建
18.2.2Gitolite服务器管理
18.2.3Git常用命令
18.2.3Git分支
18.2.4Git协同开发
18.2.5Xcode中Git的配置与使用
18.3GitHub代码托管服务
18.3.1 创建和配置GitHub账号
18.3.2 创建代码库
18.3.3 派生(fork)代码库
18.3.4 使用GitHub协同开发
18.3.5 管理组织
19 把你的应用放到App Store
19.1 收官
19.1.1 添加图标
19.1.2 添加启动画面
19.1.3 调整应用Target属性
19.1.4 为发布编译
19.1.5 应用打包
19.2 发布流程
19.2.1创建应用及基本信息
19.2.2应用定价信息
19.2.3最后信息输入
19.2.4上传应用
19.3常见审核不通过的原因
19.3.1 功能问题
19.3.2 用户界面问题
19.3.3 商业问题
19.3.4 不当内容
19.3.5 其它问题
实战篇
20 重构MyNotes应用——iOS网络通信中的设计模式与架构设计
20.1 移动网络通讯应用的分层架构设计
20.2 基于委托模式实现
20.2.1 网络通讯与委托模式
20.2.2 异步网络通讯中委托模式实现分层架构设计
20.2.3 类图
20.2.4 时序图
20.2.5 数据持久层代码实现
20.2.6 业务逻辑层代码实现
20.2.7 表示层代码实现
20.3 基于观察者模式通知机制实现
20.3.1 观察者模式的通知机制回顾
20.3.2 异步网络通讯中通知机制实现分层架构设计
20.3.3 类图
20.3.4 时序图
20.3.5 数据持久层代码实现
20.3.6 业务逻辑层代码实现
20.3.7 表示层代码实现
21 iOS敏捷开发项目实战——2016里约热内卢奥运会应用开发及App Store发布
21.1 应用分析与设计
21.1.1 应用概述
21.1.2 需求分析
21.1.3 原型设计
21.1.4 数据库设计
21.1.5 架构设计
21.2iOS敏捷开发
21.2.1 敏捷开发宣言
21.2.2iOS可以敏捷开发?
21.2.3iOS敏捷开发最佳实践
21.3 任务1:创建应用基本工作空间
21.3.1 迭代1.1 创建数据持久层工程
21.3.2 迭代1.2 创建业务逻辑层工程
21.3.3 迭代1.3 创建表示层工程
21.3.4 迭代1.4 提交代码到GitHub
21.4 任务2:信息系统层与持久层开发
21.4.1 迭代2.1 编写数据库DDL脚本
21.4.2 迭代2.2 插入初始数据到数据库
21.4.3 迭代2.3 编写实体类
21.4.4 迭代2.4 DAO类GHUnit单元测试
21.4.5 迭代2.5 编写DAO类
21.4.6 迭代2.6 提交代码到GitHub
21.5 任务3:业务逻辑层开发
21.5.1 迭代3.1 比赛项目业务逻辑类GHUnit单元测试
21.5.2 迭代3.2 编写比赛项目业务逻辑类
21.5.3 迭代3.3 比赛日程业务逻辑类GHUnit单元测试
21.5.4 迭代3.4 编写比赛日程业务逻辑类
21.5.5 迭代3.5 提交代码到GitHub
21.6 任务4:表示层开发
21.6.1 迭代4.1 根据原型设计初步设计iPad故事板
21.6.2 迭代4.2 根据原型设计初步设计iPhone故事板
21.6.3 迭代4.3 首页模块
21.6.4 迭代4.4 比赛项目模块
21.6.5 迭代4.5 比赛日程模块
21.6.6 迭代4.6 倒计时模块表示层
21.6.7 迭代4.7 关于我们模块表示层
21.6.8 迭代4.8 提交代码到GitHub
21.7 任务5:收工
21.7.1 迭代5.1 添加图标
21.7.2 迭代5.2 设计和添加启动画面
21.7.3 迭代5.3 植入谷歌AdMob横幅广告
21.7.4 迭代5.4 设备上测试
21.7.5 迭代5.5 提交代码到GitHub
21.7.6 迭代5.6 App Store应用发布
《iOS开发指南》正式出版-源码-样章-目录,欢迎大家提出宝贵意见
《iOS开发指南》正式出版-源码-样章-目录,欢迎大家提出宝贵意见的更多相关文章
- 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING
<Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th 2014 Email:skyseraph00@163.com 更多精彩请直接 ...
- 《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持
<Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店 ...
- linux epoll 开发指南-【ffrpc源码解析】
摘要 关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了.Epoll主要在服务器编程中使用,本文主要探讨服务器程序中epoll的使用技巧.Epoll一般 ...
- 《iOS开发指南》要改iOS8版本了,听听您的意见?
<iOS开发指南>要改iOS8版本了,听听您的意见?参加问卷同学均可获得智捷课堂50元代金卡一张,同时抽取一名同学赠送即将出版的基于iOS8的<iOS开发指南>一本,欢迎大家填 ...
- 《iOS开发指南:从零基础到App Store上架(第2版)》
<iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...
- iOS开发-定制多样式二维码
iOS开发-定制多样式二维码 二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...
- Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)
最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展, ...
- 一个功能齐全的IOS音乐播放器应用源码
该源码是在ios教程网拿过来的,一个不错的IOS音乐播放器应用源码,这个是我当时进公司时 我用了一晚上写的 图片都是在别的地方扒的,主要是歌词同步,及上一曲,下一曲,功能齐全了 ,大家可以学习一下吧 ...
- ios版弹珠游戏源码
这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op> <ignore_js_op&g ...
随机推荐
- Docker:使用Ambassador进行跨主机间容器通信
转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主 ...
- cocos2dx动画Animation介绍
一.帧动画 你能够通过一系列图片文件,像例如以下这样,创建一个动画: [cpp] CCAnimation *animation = CCAnimation::create(); //从本 ...
- [Angular2 Form] Create Radio Buttons for Angular 2 Forms
Using Radio Buttons in Angular 2 requires a basic understanding of forms as well as how their labels ...
- IOS之以UIBezierPath绘制饼状图
1.绘制的饼状图是通过多个扇形拼和而成,绘制一个扇形也是比较简单的,核心代码如下: 先画一条圆弧,再画半径,接着再画一条圆弧,最后闭合路径: UIBezierPath* aPath = [[UIBe ...
- Python 读写文件和file对象(转)
1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt ...
- boost.asio源码剖析(四) ---- asio中的泛型概念(concepts)
* Protocol(通信协议) Protocol,是asio在网络编程方面最重要的一个concept.在第一章中的levelX类图中可以看到,所有提供网络相关功能的服务和I/O对象都需要Protoc ...
- Cassandra目录
1. cassandra安装 2. 过滤文本文档中的数据并插入Cassandra数据库 3. 用Java实现向Cassandra数据库中插入和查询数据 4. Cassandra在CQL语言层面支持多种 ...
- 记录一下bing的图片 - 升级版冰糖葫芦
记录一下bing的图片 - 升级版冰糖葫芦
- mysql常用备注
一:One Table have only one Auto_Increment that column is must to be Primary key. (自增加的字段必须是主键且是数字类型) ...
- GNU C/C++ __attributes__ GCC中的弱符号与强符号
最近在看一些源代码,遇到了一些使用__attribute__修饰函数和变量的属性方面的代码,不是太了解,很是汗颜,再此做个总结: GCC使用__attribute__关键字来描述函数,变量和数据类 ...