图书介绍

iOS开发指南 从Hello World到App Store上架 第5版PDF|Epub|txt|kindle电子书版本下载

iOS开发指南 从Hello World到App Store上架 第5版
  • 关东升著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115450630
  • 出版时间:2017
  • 标注页数:722页
  • 文件大小:280MB
  • 文件页数:739页
  • 主题词:移动终端-应用程序-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

iOS开发指南 从Hello World到App Store上架 第5版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 基础篇2

第1章 开篇综述2

1.1 iOS概述2

1.1.1 iOS介绍2

1.1.2 iOS 10新特性2

1.2 开发环境及开发工具3

1.3 本书约定4

1.3.1 案例代码约定4

1.3.2 图示的约定5

1.3.3 方法命名约定6

1.3.4 构造函数命名约定7

1.3.5 错误处理约定7

第2章 第一个iOS应用程序8

2.1 创建HelloWorld工程8

2.1.1 通过Xcode创建工程9

2.1.2 添加标签11

2.1.3 运行应用13

2.1.4 Xcode中的iOS工程模板13

2.1.5 应用剖析14

2.2 应用生命周期16

2.2.1 非运行状态——应用启动场景18

2.2.2 点击Home键——应用退出场景18

2.2.3 挂起重新运行场景21

2.2.4 内存清除:应用终止场景21

2.3 设置产品属性22

2.3.1 Xcode中的工程和目标22

2.3.2 设置常用的产品属性24

2.4 iOS API简介26

2.4.1 API概述26

2.4.2 如何使用API帮助文档26

2.5 小结28

第3章 Cocoa Touch框架与构建应用界面29

3.1 视图控制器29

3.1.1 视图控制器种类29

3.1.2 视图的生命周期29

3.2 视图30

3.2.1 UIView继承层次结构30

3.2.2 视图分类32

3.2.3 应用界面构建层次33

3.3 使用故事板构建界面34

3.3.1 什么是故事板34

3.3.2 场景和过渡37

3.4 使用XIB文件构建界面38

3.4.1 重构HelloWorld38

3.4.2 XIB与故事板比较42

3.5 使用纯代码构建界面42

3.5.1 重构HelloWorld42

3.5.2 视图的几个重要属性44

3.6 三种构建界面技术讨论46

3.6.1 所见即所得46

3.6.2 原型驱动开发46

3.6.3 团队协同开发47

3.7 小结47

第4章 UIView与视图48

4.1 标签与按钮48

4.1.1 Interface Builder实现48

4.1.2 代码实现51

4.2 事件处理53

4.2.1 Interface Builder实现53

4.2.2 代码实现55

4.3 访问视图57

4.3.1 Interface Builder实现57

4.3.2 代码实现58

4.4 TextField和TextView60

4.4.1 Interface Builder实现60

4.4.2 代码实现62

4.4.3 键盘的打开和关闭64

4.4.4 关闭和打开键盘的通知64

4.4.5 键盘的种类65

4.5 开关控件、分段控件和滑块控件67

4.5.1 开关控件67

4.5.2 分段控件69

4.5.3 滑块控件70

4.6 Web视图:WKWebView类72

4.7 警告框和操作表77

4.7.1 使用UIAlertController实现警告框77

4.7.2 使用UIAlertController实现操作表79

4.8 等待相关的控件与进度条81

4.8.1 活动指示器ActivityIndicatorView81

4.8.2 进度条ProgressView83

4.9 工具栏和导航栏86

4.9.1 工具栏86

4.9.2 导航栏90

4.10 小结95

第5章 委托协议、数据源协议与高级视图96

5.1 视图中的委托协议和数据源协议96

5.2 选择器96

5.2.1 日期选择器96

5.2.2 普通选择器101

5.2.3 数据源协议与委托协议106

5.3 集合视图108

5.3.1 集合视图的组成108

5.3.2 集合视图数据源协议与委托协议109

5.4 案例:奥运会比赛项目109

5.4.1 创建工程110

5.4.2 自定义集合视图单元格110

5.4.3 添加集合视图112

5.4.4 实现数据源协议114

5.4.5 实现委托协议115

5.5 小结115

第6章 表视图116

6.1 概述116

6.1.1 表视图的组成116

6.1.2 表视图的相关类117

6.1.3 表视图分类117

6.1.4 单元格的组成和样式119

6.1.5 数据源协议与委托协议121

6.2 简单表视图122

6.2.1 实现协议方法122

6.2.2 UIViewController根视图控制器123

6.2.3 UITableViewController根视图控制器129

6.3 自定义表视图单元格133

6.3.1 Interface Builder实现133

6.3.2 代码实现137

6.4 添加搜索栏138

6.5 分节表视图143

6.5.1 添加索引143

6.5.2 分组146

6.6 插入和删除单元格147

6.6.1 Interface Builder实现149

6.6.2 代码实现154

6.7 移动单元格155

6.8 表视图UI设计模式157

6.8.1 分页模式157

6.8.2 下拉刷新模式158

6.8.3 下拉刷新控件159

6.9 小结160

第7章 界面布局161

7.1 界面布局概述161

7.1.1 表单布局模式161

7.1.2 列表布局模式161

7.1.3 网格布局模式162

7.2 iOS中各种“栏”162

7.3 传统界面布局问题163

7.4 Auto Layout布局技术164

7.4.1 在Interface Builder中管理Auto Layout约束164

7.4.2 案例:Auto Layout布局164

7.5 静态表布局169

7.5.1 什么是静态表169

7.5.2 案例:iMessage应用登录界面170

7.6 使用堆视图StackView174

7.6.1 堆视图与布局174

7.6.2 案例:堆视图布局175

7.7 小结180

第8章 屏幕适配181

8.1 iOS屏幕的多样性181

8.1.1 iOS屏幕介绍181

8.1.2 iOS的3种分辨率182

8.1.3 获得iOS设备的屏幕信息183

8.2 Size Class与iOS多屏幕适配184

8.2.1 在Xcode 6和Xcode 7中使用Size Class技术184

8.2.2 Size Class的九宫格185

8.2.3 Size Class的四个象限186

8.2.4 在Xcode 8中使用Size Class187

8.2.5 案例:使用Size Class190

8.3 资源目录与图片资源适配192

8.4 小结195

第9章 视图控制器与导航模式196

9.1 概述196

9.1.1 视图控制器的种类196

9.1.2 导航模式196

9.2 模态视图197

9.2.1 Interface Builder实现199

9.2.2 代码实现205

9.3 平铺导航206

9.3.1 应用场景206

9.3.2 基于分屏导航的实现208

9.3.3 基于电子书导航的实现213

9.4 标签导航219

9.4.1 应用场景219

9.4.2 Interface Builder实现220

9.4.3 代码实现223

9.5 树形结构导航225

9.5.1 应用场景225

9.5.2 Interface Builder实现226

9.5.3 代码实现233

9.6 组合使用导航模式235

9.6.1 应用场景235

9.6.2 Interface Builder实现236

9.6.3 代码实现243

9.7 小结246

第10章 iPad应用开发247

10.1 iPad与iPhone应用开发的差异247

10.1.1 应用场景不同247

10.1.2 导航模式不同247

10.1.3 API不同247

10.2 iPad树形结构导航248

10.2.1 “邮件”应用中的树形结构导航248

10.2.2 Master-Detail应用程序模板249

10.2.3 使用Interface Builder实现SplitViewSample案例254

10.2.4 使用代码实现SplitViewSample案例258

10.3 iPad模态视图261

10.3.1 “邮件”应用中的模态导航261

10.3.2 iPad模态导航相关API262

10.3.3 使用Interface Builder实现ModalViewSample案例264

10.3.4 使用代码实现ModalViewSample案例268

10.4 Popover视图271

10.4.1 Popover相关API272

10.4.2 PopoverViewSample案例272

10.5 分屏多任务276

10.5.1 Slide Over多任务276

10.5.2 分屏视图多任务278

10.5.3 画中画多任务280

10.6 iPad分屏多任务适配开发280

10.6.1 分屏多任务前提条件280

10.6.2 分屏多任务适配281

10.7 小结282

第11章 手势识别283

11.1 手势种类283

11.2 手势识别器284

11.2.1 视图对象与手势识别284

11.2.2 手势识别状态285

11.2.3 实例:识别Tap手势285

11.2.4 实例:识别Long Press手势290

11.2.5 实例:识别Pan手势291

11.2.6 实例:Swipe手势293

11.2.7 实例:Rotation手势295

11.2.8 实例:Pinch手势297

11.2.9 实例:Screen Edge Pan手势299

11.3 小结301

第12章 Quartz 2D绘图技术302

12.1 绘制技术基础302

12.1.1 视图绘制周期302

12.1.2 实例:填充屏幕302

12.1.3 填充与描边305

12.1.4 绘制图像和文本306

12.2 Quartz图形上下文308

12.3 Quartz路径309

12.3.1 Quartz路径概述309

12.3.2 实例:使用贝塞尔曲线311

12.4 Quartz坐标变换312

12.4.1 坐标系312

12.4.2 2D图形的基本变换315

12.4.3 CTM变换317

12.4.4 仿射变换322

12.5 小结322

第13章 动画技术323

13.1 视图动画323

13.1.1 动画块323

13.1.2 动画结束的处理325

13.1.3 过渡动画326

13.2 Core Animation框架329

13.2.1 图层329

13.2.2 隐式动画331

13.2.3 显式动画333

13.2.4 关键帧动画335

13.2.5 使用路径336

13.3 小结338

第二部分 数据与网络通信篇340

第1 4章 数据持久化340

14.1 概述340

14.1.1 沙箱目录340

14.1.2 持久化方式341

14.2 实例:MyNotes应用341

14.3 属性列表343

14.4 使用SQLite数据库349

14.4.1 SQLite数据类型350

14.4.2 添加SQLite3库350

14.4.3 配置Swift环境351

14.4.4 创建数据库351

14.4.5 查询数据353

14.4.6 修改数据355

14.5 iOS 10中的Core Data技术357

14.5.1 对象关系映射技术357

14.5.2 添加Core Data支持358

14.5.3 Core Data栈359

14.6 案例:采用Core Data重构MyNotes应用360

14.6.1 建模和生成实体360

14.6.2 Core Data栈DAO366

14.6.3 查询数据367

14.6.4 修改数据369

14.7 小结370

第15章 数据交换格式371

15.1 XML数据交换格式372

15.1.1 XML文档结构372

15.1.2 解析XML文档373

15.2 案例:MyNotes应用读取XML数据374

15.2.1 使用NSXML解析376

15.2.2 使用TBXML解析379

15.3 JSON数据交换格式385

15.3.1 JSON文档结构385

15.3.2 JSON数据编码/解码386

15.4 案例:MyNotes应用JSON解码387

15.5 小结388

第16章 REST Web Service389

16.1 概述389

16.1.1 REST Web Service概念389

16.1.2 HTTP协议389

16.1.3 HTTPS协议390

16.1.4 苹果ATS限制390

16.2 使用NSURLSession391

16.2.1 NSURLSession API392

16.2.2 简单会话实现GET请求393

16.2.3 默认会话实现GET请求396

16.2.4 实现POST请求397

16.2.5 下载数据398

16.3 实例:使用NSURLSession重构MyNotes案例400

16.3.1 插入方法401

16.3.2 修改方法402

16.3.3 删除方法402

16.4 使用AFNetworking框架405

16.4.1 比较ASIHTTPRequest、AFNetwork-ing和MKNetworkKit405

16.4.2 安装和配置AFNetworking框架405

16.4.3 实现GET请求407

16.4.4 实现POST请求408

16.4.5 下载数据408

16.4.6 上传数据410

16.5 使用为Swift设计的网络框架:Alamofire412

16.5.1 安装和配置Alamofire框架412

16.5.2 实现GET请求413

16.5.3 实现POST请求414

16.5.4 下载数据414

16.5.5 上传数据415

16.6 反馈网络信息改善用户体验416

16.6.1 使用下拉刷新控件改善用户体验416

16.6.2 使用活动指示器控件419

16.6.3 使用网络活动指示器420

16.7 小结421

第三部分 进阶篇424

第17章 定位服务424

17.1 定位服务概述424

17.1.1 定位服务编程425

17.1.2 测试定位服务428

17.2 管理定位服务432

17.2.1 应用启动与停止下的定位服务管理432

17.2.2 视图切换下的定位服务管理432

17.2.3 应用前后台切换下的定位服务管理433

17.2.4 设置自动暂停位置服务436

17.2.5 后台位置服务管理436

17.3 地理信息编码与反编码437

17.3.1 地理信息反编码437

17.3.2 实例:地理信息反编码437

17.3.3 地理信息编码查询438

17.3.4 实例:地理信息编码查询439

17.4 小结440

第18章 苹果地图应用441

18.1 使用iOS苹果地图441

18.1.1 显示地图441

18.1.2 显示3D地图445

18.2 添加标注446

18.2.1 实现查询447

18.2.2 在地图上添加标注449

18.3 跟踪用户位置变化450

18.4 使用程序外地图451

18.5 小结454

第19章 访问通讯录455

19.1 通讯录的安全访问设置455

19.2 使用Contacts框架读取联系人信息456

19.2.1 查询联系人457

19.2.2 读取单值属性460

19.2.3 读取多值属性461

19.2.4 读取图片属性464

19.3 使用Contacts框架写入联系人信息464

19.3.1 创建联系人465

19.3.2 修改联系人467

19.3.3 删除联系人468

19.4 使用系统提供的界面469

19.4.1 选择联系人470

19.4.2 显示和修改联系人472

19.5 小结475

第20章 iOS 10应用扩展476

20.1 应用扩展概述476

20.1.1 iOS 10应用扩展种类476

20.1.2 应用扩展工作原理477

20.1.3 应用扩展的生命周期478

20.2 Today应用扩展478

20.2.1 使用Today应用扩展479

20.2.2 实例:奥运会倒计时牌480

20.3 开发表情包483

20.3.1 iMessage应用483

20.3.2 表情包484

20.3.3 实例:开发表情包484

20.4 Message框架488

20.4.1 Message框架的主要API488

20.4.2 消息布局488

20.4.3 消息扩展界面的收缩和展开489

20.4.4 消息应用的生命周期490

20.4.5 消息会话490

20.4.6 实例:高斯模糊滤镜491

20.5 小结494

第21章 重装上阵的iOS 10用户通知495

21.1 用户通知概述495

21.1.1 通知种类495

21.1.2 通知界面495

21.1.3 设置通知497

21.2 开发本地通知498

21.2.1 开发本地通知案例498

21.2.2 请求授权500

21.2.3 通知的创建与发送501

21.2.4 通知接收后的处理503

21.3 开发推送通知503

21.3.1 推送通知机理504

21.3.2 生成SSL证书504

21.3.3 iOS客户端编程513

21.3.4 在iOS设备上运行客户端515

21.3.5 内容提供者推送通知518

21.4 小结519

第四部分 测试、调试和优化篇522

第22章 找出程序中的bug——调试522

22.1 Xcode调试工具522

22.1.1 定位编译错误522

22.1.2 查看和显示日志523

22.1.3 设置和查看断点524

22.1.4 调试工具530

22.1.5 输出窗口532

22.1.6 变量查看窗口532

22.1.7 查看线程533

22.2 LLDB调试工具535

22.2.1 断点命令535

22.2.2 观察点命令537

22.2.3 查看变量和计算表达式命令538

22.3 日志与断言输出541

22.3.1 使用NSLog函数541

22.3.2 使用断言542

22.4 异常栈报告分析543

22.4.1 跟踪异常栈543

22.4.2 分析栈报告545

22.5 在iOS设备上调试546

22.5.1 Xcode设置546

22.5.2 设备设置546

22.6 Xcode设备管理工具548

22.6.1 查看设备上的应用程序548

22.6.2 设备日志550

22.7 小结551

第23章 iOS测试驱动与单元测试552

23.1 测试驱动的软件开发概述552

23.1.1 测试驱动的软件开发流程552

23.1.2 测试驱动的软件开发案例553

23.1.3 iOS单元测试框架555

23.2 使用XCTest测试框架555

23.2.1 添加XCTest到工程555

23.2.2 编写XCTest测试方法558

23.2.3 运行测试用例目标561

23.2.4 分析测试报告562

23.3 异步单元测试564

23.4 性能测试567

23.4.1 测试用例代码568

23.4.2 分析测试结果568

23.5 小结571

第24章 iOS应用UI测试572

24.1 UI测试概述572

24.2 添加UI测试到工程572

24.2.1 创建工程时添加UI测试框架572

24.2.2 在现有工程中添加UI测试用例目标573

24.3 录制脚本575

24.3.1 录制之前的准备575

24.3.2 录制过程575

24.3.3 修改录制脚本577

24.4 访问UI元素577

24.4.1 UI元素的层次结构树577

24.4.2 UI测试中相关API579

24.5 表示逻辑组件测试最佳实践579

24.5.1 备忘录查询操作580

24.5.2 增加备忘录操作580

24.5.3 删除备忘录操作581

24.5.4 显示备忘录详细信息操作582

24.6 小结582

第25章 让你的程序“飞”起来——性能优化583

25.1 内存优化583

25.1.1 内存管理583

25.1.2 使用Analyze工具检查内存泄漏583

25.1.3 使用Instruments工具检查内存泄漏587

25.1.4 使用Instruments工具检查僵尸对象592

25.1.5 autorelease的使用问题594

25.1.6 响应内存警告595

25.2 优化资源文件596

25.2.1 图片文件优化597

25.2.2 音频文件优化598

25.3 延迟加载599

25.3.1 资源文件的延迟加载599

25.3.2 故事板文件的延迟加载603

25.3.3 XIB文件的延迟加载605

25.4 数据持久化的优化607

25.4.1 使用文件607

25.4.2 使用SQLite数据库611

25.4.3 使用Core Data612

25.5 可重用对象的使用613

25.5.1 表视图中的可重用对象614

25.5.2 集合视图中的可重用对象615

25.5.3 地图视图中的可重用对象617

25.6 并发处理618

25.6.1 一些概念618

25.6.2 主线程阻塞问题618

25.6.3 选择NSThread、NSOperation还是GCD619

25.6.4 GCD技术619

25.7 小结620

第五部分 实战篇622

第26章 管理好你的程序代码——代码版本控制622

26.1 概述622

26.1.1 版本控制历史622

26.1.2 基本概念623

26.2 Git代码版本控制623

26.2.1 服务器搭建623

26.2.2 Gitolite服务器管理625

26.2.3 Git常用命令627

26.2.4 Git分支628

26.2.5 Git协同开发632

26.2.6 Xcode中Git的配置与使用634

26.3 GitHub代码托管服务642

26.3.1 创建和配置GitHub账号642

26.3.2 创建代码库645

26.3.3 删除代码库646

26.3.4 派生代码库647

26.3.5 管理组织650

26.4 小结653

第27章 项目依赖管理654

27.1 使用CocoaPods工具管理依赖654

27.1.1 安装CocoaPods654

27.1.2 搜索库655

27.1.3 项目与第三方库搭配形式656

27.1.4 实例:静态链接库形式管理依赖657

27.1.5 实例:框架形式管理依赖659

27.2 使用Carthage工具管理依赖660

27.2.1 安装Carthage660

27.2.2 项目与第三方库搭配形式661

27.2.3 Cartfile文件661

27.2.4 实例:重构MyNotes依赖关系662

27.3 小结664

第28章 把应用放到App Store上665

28.1 收官665

28.1.1 在Xcode中添加图标665

28.1.2 在Xcode中添加启动界面668

28.1.3 调整Identity和Deployment Info属性671

28.2 为发布进行编译672

28.2.1 创建开发者证书672

28.2.2 创建App ID675

28.2.3 创建描述文件676

28.2.4 发布编译679

28.3 发布上架680

28.3.1 创建应用681

28.3.2 应用定价683

28.3.3 基本信息输入684

28.3.4 上传应用687

28.3.5 提交审核689

28.4 常见审核不通过的原因691

28.4.1 功能问题691

28.4.2 用户界面问题691

28.4.3 商业问题691

28.4.4 不当内容691

28.4.5 其他问题692

28.5 小结692

第29章 iOS开发项目实战——2020东京奥运会应用开发及App Store发布693

29.1 应用分析与设计693

29.1.1 应用概述693

29.1.2 需求分析693

29.1.3 原型设计694

29.1.4 数据库设计694

29.2 任务1:创建应用工程695

29.2.1 迭代1.1 :创建工程696

29.2.2 迭代1.2 :发布到GitHub696

29.3 任务2:数据库与数据持久化逻辑组件开发696

29.3.1 迭代2.1 :编写数据库DDL脚本696

29.3.2 迭代2.2 :插入初始数据到数据库697

29.3.3 迭代2.3 :数据库版本控制697

29.3.4 迭代2.4 :配置数据持久化逻辑组件698

29.3.5 迭代2.5 :编写实体类698

29.3.6 迭代2.6 :编写DAO类700

29.3.7 迭代2.7 :数据库帮助类DBHelper704

29.3.8 迭代2.8 :发布到GitHub706

29.4 任务3:表示逻辑组件开发706

29.4.1 迭代3.1 :使用资源目录管理图片和图标资源707

29.4.2 迭代3.2 :根据原型设计初步设计故事板708

29.4.3 迭代3.3 :“首页”模块709

29.4.4 迭代3.4 :“比赛项目”模块710

29.4.5 迭代3.5 :“比赛日程”模块714

29.4.6 迭代3.6 :“倒计时”模块718

29.4.7 迭代3.7 :“关于我们”模块719

29.4.8 迭代3.8 :发布到GitHub720

29.5 任务4:收工720

29.5.1 迭代4.1 :添加图标720

29.5.2 迭代4.2 :设计和添加启动界面720

29.5.3 迭代4.3 :性能测试与改善721

29.5.4 迭代4.4 :发布到GitHub722

29.5.5 迭代4.5 :在AppStore上发布应用722

29.6 小结722

热门推荐