iOS开发指南 从零基础到App Store上架(第2版)pdf

图书网
图书网
图书网
10635
文章
1451
评论
2018年8月22日23:26:30 评论 357
摘要

国内新iOS 7开发详解,全面涵盖iOS 7新内容、新特性、新变化
数百个项目案例+两个真实项目开发全过程
涵盖iOS平台架构设计、测试驱动开发、性能优化、版本控制和程序调试等丰富内容

iOS开发指南 从零基础到App Store上架(第2版) 内容简介

《图灵原创·iOS开发指南:从零基础到App Store上架(第2版)》采用全新的iOS 7 API,详细介绍了iOS 7开发相关的知识点。本书共分为4个部分:第一部分为基础篇,介绍了iOS的一些基础知识;第二部分为网络篇,介绍了iOS网络开发相关的知识;第三部分为进阶篇,介绍了iOS高级内容、商业思考等;第四部分为实战篇,从无到有地介绍了两个真实的iOS应用:MyNotes应用和2016里约热内卢奥运会应用。

本书适用于iOS应用开发人员、大学老师、培训学员以及对于iOS开发感兴趣的群体使用,也可作为iOS培训教材使用。

iOS开发指南 从零基础到App Store上架(第2版) 目录

第一部分  基  础  篇

第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  小结

iOS开发指南 从零基础到App Store上架(第2版) 精彩文摘

第一部分为基础篇,共13章内容,介绍了iOS的一些基础知识。

第1章介绍了iOS的开发背景以及本书约定。

第2章使用故事板技术创建了HelloWorld,同时讨论了iOS工程模板、应用的运行机制和生命周期、视图器的生命周期等,最后介绍了如何使用API帮助文档和官方案例。

第3章首先说明了视图和控件之间的关系以及应用界面的构建层次,然后介绍了标签、按钮、文本框和导航栏等基本控件,接着介绍了屏幕布局的内容以及一个较为复杂的控件——选择器,最后探讨了iOS中的集合视图。

第4章探讨了表视图的组成、表视图类的构成和表视图的分类,使读者对表视图有一个整体上的认识。接下来介绍了如何实现简单表视图和分节表视图,以及表视图中索引、搜索栏和分组的使用,然后讲解了如何对表视图单元格进行删除、插入、移动等操作,最后介绍了表视图UI设计模式方面的内容。

第5章讨论了如何判断应用是否需要一个导航功能,并且知道在什么情况下选择平铺导航、标签导航、树形结构导航,或者同时综合使用这3种导航模式。

第6章讨论了iOS开发中4种常用的设计模式,分别为单例模式、委托模式、观察者模式和MVC模式。在介绍每种设计模式时,我们按照问题提出、实现原理、应用案例的结构介绍了其适用情况、实现原理及其用法。

第7章首先介绍了iPhone和iPad设备使用场景上的差异,然后深入介绍了iPad专用API,包括UIPopoverController控制器和UISplitViewController控制器。

第8章重点介绍了iOS平台的分层架构设计。

第9章介绍了iOS 7中的文字排版和渲染引擎Text Kit,以及如何利用Text Kit技术实现文本图片混合排版,设置动态字体。

第10章介绍了设置和配置的概念,然后通过对二者差异的探讨,介绍了什么样的项目适合放在设置里,什么样的项目适合放在配置里。

第11章介绍了国际化概念、内容和目录结构,并详细阐述了文本信息、nib及故事板、资源文件的国际化。

第12章讨论了iOS本地数据持久化的问题。首先分析了数据存取的几种方式以及每种数据存取方式适合什么样的场景,然后分别举例介绍了每种存取方式的实现。

第13章首先介绍了访问通讯录所需要的框架,然后介绍了使用AddressBook框架如何读取联系人的信息,具体包括联系人记录、单值多值属性、图片属性的读取;接着介绍了如何使用该框架将联系人信息写入数据库,具体包括联系人的创建、修改和删除;最后介绍了如何使用AddressBook高级API实现选择联系人、显示和修改联系人以及创建联系人的操作。

第二部分为网络篇,共两章,介绍了iOS网络开发的相关知识。

第14章介绍了数据交换格式,其中XML和JSON是主要的方式。这一章重点介绍了Web Service的访问以及ASIHTTPRequest框架。

第15章讨论了iOS中的定位服务技术,包括地理信息编码和反编码查询。之后介绍了iOS 6苹果地图的使用,包括了显示地图、在地图上添加标注以及跟踪用户位置的变化等。最后,介绍了程序外地图的使用,如何调用iOS 6苹果地图和谷歌Web地图。

第三部分为进阶篇,共7章,主要介绍了iOS高级内容和商业思考等。

第16章介绍了从iOS 6升级到iOS 7带来的变化、遇到的困难以及解决的方法。

第17章介绍了iOS中的商业模式,其中的收费策略值得广大读者借鉴。此外,还介绍了植入广告和应用内购买的API,其中植入广告包括苹果自己的iAd和谷歌的AdMob广告。

第18章首先介绍了一些常用的调试工具、异常堆栈报告分析,接下来讲解了如何在真机上调试应用,最后分析了Xcode设备管理工具的用法。

第19章讨论了测试驱动的iOS开发,介绍了测试驱动开发流程。此外,还介绍了单元测试框架OCUnit、GHUnit和OCMock的用法。

第20章介绍了iOS中的性能优化方法,其中包括内存优化、资源文件优化、延迟加载、持久化优化、使用可重用对象、多线程以及程序编译参数等。

第21章介绍了如何使用Git进行代码版本控制,其中包括Git服务器的搭建、Git常用命令和协同开发。此外,还介绍了在Xcode中如何配置和使用Git工具。

第22章探讨了如何在App Store上发布应用,介绍了应用的发布流程以及应用审核不通过的一些常见原因。

第四部分为实战篇,共两章,从无到有地介绍了两个真实的iOS应用:MyNotes应用和2016里约热内卢奥运会应用。

第23章通过重构MyNotes应用,把MyNotes应用的数据由原来的本地存储变成云存储。在这个过程中,我们介绍了移动网络通信应用中分层架构设计的必要性和重要性,重点介绍了基于委托模式和观察者模式通知机制实现的分层架构设计。

第24章介绍了完整的iOS应用分析设计、编程、测试和发布过程,其中采用了敏捷开发方法。此外,该项目采用分层架构设计,这对于学习iOS架构是非常重要的。

图书网:iOS开发指南 从零基础到App Store上架(第2版)pdf

继续阅读
  • 我的微信
  • 扫一扫加好友
  • weinxin
  • 微信公众号
  • 扫一扫关注
  • weinxin

有任何需求请前往→→→社区

曝光 Linux企业运维实战epub 操作系统/系统开发

曝光 Linux企业运维实战epub

曝光 Linux企业运维实战 作者:吴光科 曝光 Linux企业运维实战 出版社:清华大学出版社 曝光 Linux企业运维实战 内容简介 本书系统地论述了Linux运维领域的各种技术,主要内容包括最新...
Linux操作系统pdf 操作系统/系统开发

Linux操作系统pdf

Linux操作系统 作 者 :天津滨海迅腾科技集团有限公司 Linux操作系统 出版社:南开大学出版社 Linux操作系统 内容简介 本书内容系统而全面,讲解Linux的基础知识、系统管理、服务器搭建...
深入理解并行编程epub 操作系统/系统开发

深入理解并行编程epub

深入理解并行编程 作者: Paul E.Mckenney(保罗·E·麦肯尼) 深入理解并行编程 出版社: 电子工业出版社 深入理解并行编程 内容简介 《深入理解并行编程》首先以霍金提出的两个理论物理限...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: