图书介绍

iOS开发指南 从Hello World到App Store上架 第4版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

iOS开发指南 从Hello World到App Store上架 第4版
  • 关东升著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115423184
  • 出版时间:2016
  • 标注页数:802页
  • 文件大小:108MB
  • 文件页数:817页
  • 主题词:移动终端-应用程序-程序设计

PDF下载


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

下载说明

iOS开发指南 从Hello World到App Store上架 第4版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 9新特性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 错误处理约定8

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

2.1 创建HelloWorld工程10

2.1.1 创建工程10

2.1.2 Xcode中的iOS工程模板14

2.1.3 应用剖析15

2.2 应用生命周期17

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

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

2.2.3 挂起重新运行场景22

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

2.3 设置产品属性23

2.3.1 Xcode中的工程和目标23

2.3.2 设置常用的产品属性26

2.4 iOS API简介27

2.4.1 API概述27

2.4.2 如何使用API帮助29

2.5 小结32

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

3.1 视图控制器33

3.1.1 视图控制器种类33

3.1.2 视图的生命周期33

3.2 视图35

3.2.1 UIView继承层次结构35

3.2.2 视图分类37

3.2.3 应用界面构建层次37

3.3 使用故事板构建界面38

3.3.1 什么是故事板39

3.3.2 场景和过渡41

3.4 使用XIB文件构建界面42

3.4.1 重构HelloWorld42

3.4.2 XIB与故事板比较45

3.5 使用纯代码构建界面45

3.5.1 重构HelloWorld46

3.5.2 视图的几个重要属性47

3.6 3种构建界面技术讨论49

3.6.1 所见即所得49

3.6.2 原型驱动开发49

3.6.3 团队协同开发49

3.7 小结50

第4章 UIView与视图51

4.1 标签与按钮51

4.1.1 Interface Builder实现51

4.1.2 代码实现55

4.2 事件处理56

4.2.1 Interface Builder实现56

4.2.2 代码实现59

4.3 访问视图60

4.3.1 Interface Builder实现60

4.3.2 代码实现62

4.4 TextField和TextView63

4.4.1 InterfaceBuilder实现64

4.4.2 代码实现65

4.4.3 键盘的打开和关闭67

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

4.4.5 键盘的种类69

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

4.5.1 开关控件71

4.5.2 分段控件72

4.5.3 滑块控件74

4.6 Web视图:WKWebView类76

4.7 警告框和操作表80

4.7.1 UIAlertController实现警告框81

4.7.2 UIAlertController实现操作表83

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

4.8.1 活动指示器ActivityIndicatorView85

4.8.2 进度条ProgressView87

4.9 工具栏和导航栏90

4.9.1 工具栏90

4.9.2 导航栏94

4.10 小结98

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

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

5.2 选择器99

5.2.1 期选择器99

5.2.2 普通选择器104

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

5.3 集合视图111

5.4 实例:Interface Builder实现奥运会比赛项目112

5.4.1 添加集合视图113

5.4.2 添加集合视图单元格114

5.4.3 数据源协议与委托协议118

5.5 实例:代码实现奥运会比赛项目120

5.5.1 添加集合视图120

5.5.2 自定义集合视图单元格122

5.6 小结123

第6章 表视图124

6.1 概述124

6.1.1 表视图的组成124

6.1.2 表视图的相关类125

6.1.3 表视图分类125

6.1.4 单元格的组成和样式127

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

6.2 简单表视图129

6.2.1 实现协议方法130

6.2.2 UIViewController根视图控制器130

6.2.3 UITableViewController根视图控制器137

6.3 自定义表视图单元格140

6.3.1 Interface Builder实现141

6.3.2 代码实现145

6.4 添加搜索栏146

6.5 分节表视图150

6.5.1 添加索引150

6.5.2 分组153

6.6 静态表与界面布局154

6.7 插入和删除单元格160

6.7.1 Interface Builder实现162

6.7.2 代码实现167

6.8 移动单元格169

6.9 表视图UI设计模式171

6.9.1 分页模式171

6.9.2 下拉刷新模式171

6.9.3 下拉刷新控件172

6.10 小结174

第7章 界面布局与屏幕适配175

7.1 界面布局概述175

7.2 iOS界面布局设计模式176

7.2.1 表单布局模式176

7.2.2 列表布局模式176

7.2.3 网格布局模式177

7.3 传统布局技术177

7.4 Auto Layout布局技术179

7.4.1 Interface Builder中管理Auto Layout约束179

7.4.2 实例:Auto Layout布局180

7.5 iOS 9堆视图StackView185

7.5.1 堆视图与布局185

7.5.2 实例:堆视图布局186

7.6 iOS屏幕的多样性191

7.6.1 iOS屏幕介绍191

7.6.2 iOS的3种分辨率192

7.6.3 获得iOS设备屏幕信息193

7.7 Size Class与iOS多屏幕适配194

7.7.1 Interface Builder中使用Size Class195

7.7.2 Size Class的九宫格195

7.7.3 实例:使用Size Class196

7.8 资源目录与图片资源适配201

7.9 小结204

第8章 视图控制器与导航模式205

8.1 概述205

8.1.1 视图控制器的种类205

8.1.2 导航模式205

8.2 模态视图207

8.2.1 Interface Builder实现208

8.2.2 代码实现214

8.3 平铺导航215

8.3.1 应用场景215

8.3.2 基于分屏导航的实现217

8.3.3 基于电子书导航的实现223

8.4 标签导航228

8.4.1 应用场景229

8.4.2 InterfaceBuilder实现230

8.4.3 代码实现234

8.5 树形结构导航235

8.5.1 应用场景235

8.5.2 Interface Builder实现236

8.5.3 代码实现244

8.6 组合使用导航模式245

8.6.1 应用场景246

8.6.2 Interface Builder实现246

8.6.3 代码实现254

8.7 小结257

第9章 iPad应用开发258

9.1 iPad与iPhone应用开发的差异258

9.1.1 应用场景不同258

9.1.2 导航模式不同258

9.1.3 API不同258

9.2 iPad树形结构导航259

9.2.1 邮件应用中的树形结构导航259

9.2.2 MasterDetail应用程序模板260

9.2.3 Interface Builder实现SplitViewSample案例266

9.2.4 代码实现SplitViewSample案例270

9.3 iPad模态视图273

9.3.1 邮件应用中的模态导航273

9.3.2 iPad模态导航相关API275

9.3 .3 Interface Builder实现Modal View-Sample案例277

9.3.4 代码实现ModalViewSample案例281

9.4 Popover(浮动层)视图284

9.4.1 Popover相关API284

9.4.2 PopoverViewSample案例285

9.5 iOS 9分屏多任务289

9.5.1 Slide Over多任务289

9.5.2 分屏视图多任务290

9.5.3 画中画多任务293

9.6 iPad分屏多任务适配开发293

9.6.1 分屏多任务前提条件293

9.6.2 分屏多任务适配294

9.7 小结295

第二部分 设计与架构篇298

第10章 iOS常用设计模式298

10.1 单例模式298

10.1.1 问题提出298

10.1.2 Objective-C实现原理298

10.1.3 Swift实现原理299

10.1.4 应用案例300

10.2 委托模式301

10.2.1 问题提出301

10.2.2 实现原理303

10.2.3 应用案例306

10.3 观察者模式309

10.3.1 问题提出309

10.3.2 实现原理310

10.3.3 通知机制和KVO机制311

10.4 再谈MVC模式317

10.4.1 MVC模式概述317

10.4.2 CocoaTouch中的MVC模式318

10.5 小结320

第11章 iOS分层架构设计321

11.1 低耦合企业级系统架构设计321

11.2 iOS分层架构设计322

11.2.1 工程与工作空间322

11.2.2 静态链接库323

11.2.3 框架323

11.2.4 16种分层模式324

11.3 实例:MyNotes应用325

11.4 基于同一工程的分层327

11.4.1 采用纯Swift语言实现:PSSS模式327

11.4.2 采用纯Objective-C语言实现:POOO模式330

11.4.3 采用Swift调用Objective-C的混合搭配实现:PSOO模式334

11.5 基于同一工作空间静态链接库实现的WLSOO模式335

11.5.1 使用工作空间335

11.5.2 添加数据持久层工程336

11.5.3 建立业务逻辑层与数据持久层依赖关系337

11.5.4 建立表示层与业务逻辑层依赖关系339

11.6 基于同一工作空间框架实现的WFSSS模式339

11.6.1 创建框架工程340

11.6.2 建立依赖关系341

11.6.3 代码重构342

11.7 基于同一工作空间框架实现的WFOOO模式344

11.7.1 设置Public头文件344

11.7.2 设置保护伞头文件345

11.7.3 代码重构345

11.8 基于同一工作空间框架实现的WFSOO模式346

11.8.1 设置Public头文件346

11.8.2 设置保护伞头文件346

11.8.3 建立表示层与业务逻辑层依赖关系346

11.8.4 代码重构346

11.9 基于同一工作空间框架实现的WFOSS模式346

11.9.1 设置Public头文件346

11.9.2 设置Swift代码嵌入应用347

11.9.3 代码重构347

11.10 基于同一个工程不同目标框架实现的TFSOO模式348

11.10.1 使用目标348

11.10.2 添加框架目标348

11.11 小结349

第12章 数据持久化350

12.1 概述350

12.1.1 沙箱目录350

12.1.2 持久化方式351

12.2 属性列表351

12.3 对象归档357

12.4 使用SQLite数据库361

12.4.1 SQLite数据类型361

12.4.2 配置Objective-C框架工程环境362

12.4.3 配置Swift框架工程环境362

12.4.4 创建数据库364

12.4.5 查询数据365

12.4.6 修改数据368

12.5 Core Data370

12.5.1 ORM370

12.5.2 Core Data栈371

12.5.3 建模和生成实体374

12.5.4 采用Core Data分层架构设计380

12.5.5 查询数据382

12.5.6 修改数据384

12.6 小结385

第三部分 进阶篇388

第13章 应用程序设置388

13.1 概述388

13.1.1 设置388

13.1.2 配置389

13.2 应用程序设置包390

13.3 设置项目种类392

13.3.1 文本字段395

13.3.2 开关398

13.3.3 滑块399

13.3.4 值列表400

13.3.5 子界面401

13.4 读取设置403

13.5 小结405

第14章 本地化406

14.1 概述406

14.1.1 需要本地化的内容406

14.1.2 本地化目录结构409

14.2 文本信息本地化410

14.2.1 系统按钮和信息本地化410

14.2.2 应用名称本地化411

14.2.3 程序代码输出的静态文本本地化413

14.2.4 使用genstring工具414

14.3 故事板和XIB文件本地化415

14.3.1 使用Base Internationalization技术415

14.3.2 Auto Layout与本地化417

14.4 资源文件本地化419

14.4.1 图片资源文件本地化419

14.4.2 声音资源文件本地化420

14.5 小结421

第15章 iOS 9中访问通讯录422

15.1 通讯录的安全访问设置422

15.2 使用Contacts框架读取联系人信息423

15.2.1 查询联系人423

15.2.2 读取单值属性426

15.2.3 读取多值属性428

15.2.4 读取图片属性430

15.3 使用Contacts框架写入联系人信息430

15.3.1 创建联系人431

15.3.2 修改联系人433

15.3.3 删除联系人434

15.4 使用系统提供界面435

15.4.1 选择联系人435

15.4.2 显示和修改联系人438

15.4.3 创建联系人441

15.5 小结444

第16章 数据交换格式445

16.1 XML数据交换格式446

16.1.1 XML文档结构446

16.1.2 解析XML文档447

16.2 实例:MyNotes应用XML448

16.2.1 使用NSXML解析450

16.2.2 使用TBXML解析453

16.3 JSON数据交换格式459

16.3.1 JSON文档结构459

16.3.2 JSON数据编码/解码460

16.4 实例:MyNotes应用JSON解码461

16.5 小结462

第17章 REST Web Service463

17.1 概述463

17.2 使用NSURLSession464

17.2.1 NSURLSession API464

17.2.2 简单会话实现GET请求465

17.2.3 默认会话实现GET请求468

17.2.4 实现POST请求469

17.2.5 下载数据470

17.3 实例:使用NSURLSession重构MyNotes案例473

17.3.1 插入方法调用473

17.3.2 修改方法调用474

17.3.3 删除方法调用475

17.4 使用AFNetworking框架477

17.4.1 比较ASIHTTPRequest、AFNetworking和MKNetworkKit477

17.4.2 安装和配置AFNetworking框架478

17.4.3 实现GET请求479

17.4.4 实现POST请求480

17.4.5 下载数据481

17.4.6 上传数据482

17.5 使用为Swift设计的网络框架:Alamofire484

17.5.1 安装和配置Alamofire框架484

17.5.2 实现GET请求485

17.5.3 实现POST请求486

17.5.4 下载数据487

17.5.5 上传数据488

17.6 反馈网络信息改善用户体验489

17.6.1 使用下拉刷新控件改善用户体验489

17.6.2 使用活动指示器控件492

17.6.3 使用网络活动指示器494

17.7 小结494

第18章 定位服务495

18.1 定位服务概述495

18.1.1 定位服务编程496

18.1.2 测试定位服务499

18.2 管理定位服务503

18.2.1 应用启动与停止下的定位服务管理504

18.2.2 视图切换下的定位服务管理504

18.2.3 应用前后台切换下的定位服务管理505

18.2.4 设置自动暂停位置服务507

18.2.5 iOS 9后台位置服务管理507

18.3 地理信息编码与反编码508

18.3.1 地理信息反编码508

18.3.2 实例:地理信息反编码509

18.3.3 地理信息编码查询510

18.3.4 实例:地理信息编码查询510

18.4 微定位技术iBeacon512

18.4.1 微定位与地理围栏512

18.4.2 iBeacon技术概述512

18.4.3 实例:使用iBeacon技术实现微定位513

18.5 小结519

第19章 苹果地图应用520

19.1 使用iOS苹果地图520

19.1.1 显示地图520

19.1.2 显示3D地图524

19.2 添加标注525

19.2.1 实现查询526

19.2.2 在地图上添加标注528

19.3 跟踪用户位置变化529

19.4 使用程序外地图530

19.5 小结533

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

第20章 找出程序中的bug——调试536

20.1 Xcode调试工具536

20.1.1 定位编译错误536

20.1.2 查看和显示日志537

20.1.3 设置和查看断点539

20.1.4 调试工具544

20.1.5 输出窗口545

20.1.6 变量查看窗口546

20.1.7 查看线程547

20.2 LLDB调试工具548

20.2.1 断点命令548

20.2.2 观察点命令550

20.2.3 查看变量和计算表达式命令552

20.3 日志与断言输出554

20.3.1 使用NSLog函数554

20.3.2 使用断言555

20.4 异常栈报告分析556

20.4.1 跟踪异常栈556

20.4.2 分析栈报告558

20.5 在iOS设备上调试559

20.5.1 Xcode设置559

20.5.2 设备设置560

20.6 Xcode设备管理工具562

20.6.1 查看设备上的应用程序562

20.6.2 设备日志564

20.7 小结564

第21章 iOS测试驱动与单元测试565

21.1 测试驱动的软件开发概述565

21.1.1 测试驱动的软件开发流程565

21.1.2 测试驱动的软件开发案例566

21.1.3 iOS单元测试框架567

21.2 使用XCTest测试框架568

21.2.1 添加XCTest到工程568

21.2.2 Swift版本中设置编译目标成员570

21.2.3 编写XCTest测试方法570

21.2.4 运行测试用例目标573

21.2.5 分析测试报告575

21.3 异步单元测试576

21.4 性能测试580

21.4.1 Swift版本中配置测试环境580

21.4.2 测试用例代码580

21.4.3 分析测试结果581

21.5 iOS单元测试最佳实践583

21.5.1 配置测试数据持久层583

21.5.2 编写数据持久层测试用例584

21.5.3 运行测试数据持久层测试用例587

21.5.4 配置测试业务逻辑层588

21.5.5 编写业务逻辑层测试用例588

21.6 小结589

第22章 iOS应用UI测试590

22.1 UI测试概述590

22.2 添加UI测试到工程590

22.2.1 创建工程时添加UI测试框架590

22.2.2 在现有工程中添加UI测试用例目标591

22.3 录制脚本593

22.3.1 录制之前的准备593

22.3.2 录制过程593

22.3.3 修改录制脚本595

22.4 访问UI元素595

22.4.1 UI元素层次结构树595

22.4.2 UI测试中相关API597

22.5 表示层测试最佳实践598

22.5.1 配置UI测试用例目标598

22.5.2 编写UI测试用例599

22.6 小结602

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

23.1 内存优化603

23.1.1 内存管理603

23.1.2 使用Analyze工具检查内存泄漏603

23.1.3 使用Instruments工具检查内存泄漏608

23.1.4 使用Instruments工具检查僵尸对象612

23.1.5 autorelease的使用问题615

23.1.6 响应内存警告616

23.2 优化资源文件617

23.2.1 图片文件优化618

23.2.2 音频文件优化619

23.3 延迟加载620

23.3.1 资源文件的延迟加载620

23.3.2 故事板文件的延迟加载624

23.3.3 XIB文件的延迟加载626

23.4 数据持久化的优化628

23.4.1 使用文件628

23.4.2 使用SQLite数据库631

23.4.3 使用Core Data632

23.5 可重用对象的使用634

23.5.1 表视图中的可重用对象635

23.5.2 集合视图中的可重用对象636

23.5.3 地图视图中的可重用对象638

23.6 并发处理与多核CPU638

23.6.1 主线程阻塞问题638

23.6.2 选择NSThread还是GCD639

23.7 小结640

第五部分 实战篇642

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

24.1 概述642

24.1.1 版本控制历史642

24.1.2 基本概念643

24.2 Git代码版本控制643

24.2.1 服务器搭建643

24.2.2 Gitolite服务器管理645

24.2.3 Git常用命令647

24.2.4 Git分支649

24.2.5 Git协同开发653

24.2.6 Xcode中Git的配置与使用656

24.3 GitHub代码托管服务663

24.3.1 创建和配置GitHub账号663

24.3.2 创建代码库666

24.3.3 删除代码库668

24.3.4 派生代码库669

24.3.5 使用GitHub协同开发671

24.3.6 管理组织677

24.4 小结680

第25章 项目依赖管理681

25.1 使用CocoaPods工具管理依赖681

25.1.1 安装CocoaPods681

25.1.2 搜索库682

25.1.3 项目与第三方库搭配形式683

25.1.4 示例:静态链接库形式管理依赖684

25.1.5 示例:框架形式管理依赖686

25.2 使用Carthage工具管理依赖687

25.2.1 安装Carthage688

25.2.2 项目与第三方库搭配形式688

25.2.3 Cartfile文件688

25.2.4 示例:重构MyNotes依赖关系689

25.3 小结691

第26章 重构MyNotes应用——iOS网络通信中的设计模式与架构设计692

26.1 移动网络通信应用的分层架构设计692

26.2 Objective-C版本:在数据持久层中添加和配置AFNetworking693

26.2.1 用CocoaPods工具管理依赖693

26.2.2 测试依赖693

26.3 Swift版本:在数据持久层中添加和配置Alamofire694

26.3.1 用Carthage工具管理依赖694

26.3.2 测试依赖695

26.4 基于委托模式实现695

26.4.1 网络通信与委托模式696

26.4.2 在异步网络通信中使用委托模式实现分层架构设计696

26.4.3 类图697

26.4.4 时序图699

26.4.5 数据持久层重构(Objective-C版本)702

26.4.6 数据持久层重构(Swift版本)705

26.4.7 业务逻辑层的代码实现707

26.4.8 表示层的代码实现710

26.5 基于观察者模式的通知机制实现716

26.5.1 观察者模式的通知机制回顾716

26.5.2 异步网络通信中通知机制的分层架构设计716

26.5.3 类图717

26.5.4 时序图719

26.5.5 数据持久层重构(Objective-C版本)722

26.5.6 数据持久层重构(Swift版本)723

26.5.7 业务逻辑层的代码实现725

26.5.8 表示层的代码实现726

26.6 小结731

第27章 把你的应用放到App Store上732

27.1 收官732

27.1.1 在Xcode中添加图标732

27.1.2 在Xcode中添加启动界面734

27.1.3 调整Identity和Deployment Info属性738

27.2 为发布进行编译739

27.2.1 创建开发者证书739

27.2.2 创建App ID744

27.2.3 创建描述文件745

27.2.4 发布编译748

27.3 发布上架750

27.3.1 创建应用750

27.3.2 应用定价753

27.3.3 基本信息输入754

27.3.4 上传应用757

27.3.5 提交审核759

27.4 常见审核不通过的原因761

27.4.1 功能问题761

27.4.2 用户界面问题761

27.4.3 商业问题761

27.4.4 不当内容761

27.4.5 其他问题762

27.5 小结762

第28章 iOS敏捷开发项目实战——2016里约热内卢奥运会应用开发及App Store发布763

28.1 应用分析与设计763

28.1.1 应用概述763

28.1.2 需求分析763

28.1.3 原型设计764

28.1.4 数据库设计765

28.1.5 架构设计766

28.2 iOS敏捷开发766

28.2.1 敏捷开发宣言766

28.2.2 iOS适合敏捷开发?767

28.2.3 iOS敏捷开发最佳实践767

28.3 任务1:创建应用工作空间和工程769

28.3.1 迭代1.1:创建工作空间769

28.3.2 迭代1.2:发布到GitHub769

28.4 任务2:信息系统层与持久层开发770

28.4.1 迭代2.1:编写数据库DDL脚本770

28.4.2 迭代2.2:插入初始数据到数据库770

28.4.3 迭代2.3:数据库版本控制771

28.4.4 迭代2.4:配置持久层工程PersistenceLayer771

28.4.5 迭代2.5:编写实体类772

28.4.6 迭代2.6:编写DAO类单元测试用例类773

28.4.7 迭代2.7:编写DAO类775

28.4.8 迭代2.8:数据库帮助类DBHelper779

28.4.9 迭代2.9:配置及运行持久层测试用例目标781

28.4.10 迭代2.10:发布到GitHub782

28.5 任务3:业务逻辑层开发782

28.5.1 迭代3.1:比赛项目业务逻辑类XCTest单元测试783

28.5.2 迭代3.2:编写比赛项目业务逻辑类784

28.5.3 迭代3.3:比赛日程业务逻辑类XCTest单元测试785

28.5.4 迭代3.4:编写比赛日程业务逻辑类786

28.5.5 迭代3.5:发布到GitHub787

28.6 任务4:表示层开发788

28.6.1 迭代4.1:使用资源目录管理图片和图标资源788

28.6.2 迭代4.2:根据原型设计初步设计故事板789

28.6.3 迭代4.3: “首页”模块790

28.6.4 迭代4.4: “比赛项目”模块791

28.6.5 迭代4.5: “比赛日程”模块795

28.6.6 迭代4.6: “倒计时”模块表示层797

28.6.7 迭代4.7: “关于我们”模块表示层800

28.6.8 迭代4.8:发布到GitHub800

28.7 任务5:收工800

28.7.1 迭代5.1:添加图标800

28.7.2 迭代5.2:设计和添加启动界面801

28.7.3 迭代5.3:性能测试与改善801

28.7.4 迭代5.4:发布到GitHub上802

28.7.5 迭代5.5:在App Store上发布应用802

28.8 小结802

热门推荐