iOS开发指南 从Hello World到App Store上架 第4版

iOS开发指南 从Hello World到App Store上架 第4版 pdf epub mobi txt 电子书 下载 2025

关东升 著
图书标签:
  • iOS开发
  • Swift
  • Objective-C
  • Xcode
  • App Store
  • 移动开发
  • 编程
  • 技术
  • 教程
  • iOS
  • 应用程序
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115423184
版次:4
商品编码:11976900
包装:平装
丛书名: 图灵原创
开本:16开
出版时间:2016-06-01
用纸:胶版纸
页数:802
正文语种:中文

具体描述

产品特色


编辑推荐

畅销书全新升级,累计印数60000册
Swift和Objective-C双语讲解
新增通过代码构建界面、UI测试、AFNetworking和Alamofire、CocoaPods和Carthage等
数百个项目案例+两个真实项目开发全过程
涵盖iOS平台架构设计、测试驱动开发、性能优化、版本控制和程序调试等

内容简介

本书是iOS开发杰出指南,分5部分讲解如何从零起步编写并上线iOS应用。首部分介绍iOS开发基础知识,包括界面构建技术、基本控件、协议、表视图、屏幕适配、导航、分屏多任务等。第二部分介绍设计与架构的相关知识,包括设计模式、分层模式、本地数据持久化等。第三部分为进阶篇,包括设置与配置、本地化、Contacts与ContactsUI框架、数据交换格式、Web Service、定位服务、苹果地图等内容。第四部分介绍测试、调试和优化等相关知识。第五部分为实战篇,涵盖代码版本管理、项目依赖管理、App Store发布流程,以及两个真实iOS应用的分析设计、编程、测试与分布过程。本书同时提供Swift和Objective-C两版代码。

本书适合所有iOS开发人员学习参考。

作者简介

国内杰出iOS和Cocos技术作家、iOS技术顾问、Cocos有价值专家(CVP)、智捷课堂首席培训专家、51CTO社区iOS技术顾问。他精通iOS、Android和Windows及HTML5等移动开发技术,擅长应用和游戏类项目开发,曾先后主持开发:大型网络游戏《神农诀》的iOS和Android客户端,国家农产品追溯系统的iPad客户端,酒店预订系统的iOS客户端,金融系统的iOS、Windows及Android客户端。与此同时,他长期为中国移动研究院、方正科技、大唐电信、中国石油、工商银行、南方航空、惠普、东软集团、NTT等企事业单位提供技术咨询及员工培训。

目录

第一部分 基 础 篇
第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 重构HelloWorld 42
3.4.2 XIB与故事板比较 45
3.5 使用纯代码构建界面 45
3.5.1 重构HelloWorld 46
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和TextView 63
4.4.1 Interface Builder实现 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 活动指示器ActivityIndicatorView 85
4.8.2 进度条ProgressView 87
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堆视图StackView 185
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 Class 195
7.7.2 Size Class的九宫格 195
7.7.3 实例:使用Size Class 196
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 Interface Builder实现 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 Master-Detail应用程序模板 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模态导航相关API 275
9.3.3 Interface Builder实现ModalView-
Sample案例 277
9.3.4 代码实现ModalViewSample案例 281
9.4 Popover(浮动层)视图 284
9.4.1 Popover相关API 284
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
第二部分 设计与架构篇
第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 Cocoa Touch中的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 Data 370
12.5.1 ORM 370
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
第三部分 进 阶 篇
第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应用XML 448
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 Service 463
17.1 概述 463
17.2 使用NSURLSession 464
17.2.1 NSURLSession API 464
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和MKNetworkKit 477
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设计的网络框架:
Alamofire 484
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 微定位技术iBeacon 512
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
第四部分 测试、调试和优化篇
第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测试中相关API 597
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 Data 632
23.5 可重用对象的使用 634
23.5.1 表视图中的可重用对象 635
23.5.2 集合视图中的可重用对象 636
23.5.3 地图视图中的可重用对象 638
23.6 并发处理与多核CPU 638
23.6.1 主线程阻塞问题 638
23.6.2 选择NSThread还是GCD 639
23.7 小结 640
第五部分 实 战 篇
第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 安装CocoaPods 681
25.1.2 搜索库 682
25.1.3 项目与第三方库搭配形式 683
25.1.4 示例:静态链接库形式管理依赖 684
25.1.5 示例:框架形式管理依赖 686
25.2 使用Carthage工具管理依赖 687
25.2.1 安装Carthage 688
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版本:在数据持久层中添加和
配置AFNetworking 693
26.2.1 用CocoaPods工具管理依赖 693
26.2.2 测试依赖 693
26.3 Swift版本:在数据持久层中添加和配置
Alamofire 694
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 ID 744
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:发布到GitHub 769
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:配置持久层工程PersistenceLayer 771
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:数据库帮助类DBHelper 779
28.4.9 迭代2.9:配置及运行持久层测试用例目标 781
28.4.10 迭代2.10:发布到GitHub 782
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:发布到GitHub 787
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:发布到GitHub 800
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

前言/序言


探索移动开发新纪元:从入门到精通的iOS之旅 前言 智能手机的普及彻底改变了我们的生活方式,而iOS平台作为其中最引人注目的生态系统之一,吸引着无数开发者投身其中,创造出影响世界的应用。如果你心中怀揣着一个绝妙的应用创意,渴望将其变为现实,或者希望掌握一门颠覆未来的核心技能,那么,这本指南将是你开启iOS开发之旅最可靠的伙伴。我们深知,学习一门新的编程语言和开发平台,尤其是像iOS这样功能强大且不断演进的系统,可能会让人望而却步。但请放心,我们的目标是让你在掌握基础知识的同时,能够逐步深入,直至能够独立完成从构思到最终在App Store上架的整个流程。 第一部分:启程——你的第一个iOS应用 在踏入iOS开发的大门之前,我们需要为你的Mac电脑做好准备。这包括安装Xcode,苹果官方提供的集成开发环境(IDE)。Xcode不仅仅是一个代码编辑器,它集成了项目管理、界面设计、代码编写、调试以及应用打包等一系列强大功能,是iOS开发的“瑞士军刀”。我们将详细介绍Xcode的安装过程,以及如何熟悉它的基本界面和常用工具,例如项目导航器、代码编辑器、模拟器和调试器。 接下来,我们将从最基础的“Hello, World!”项目开始。这不仅仅是一个简单的文本输出,更是你与Swift语言和iOS开发框架(Cocoa Touch)建立初步联系的关键一步。你将学习如何创建一个新的Xcode项目,理解项目的基本结构,包括`AppDelegate`文件(应用的入口点)和`ViewController`文件(负责管理用户界面和交互)。我们会深入讲解Swift语言的基础语法,包括变量、常量、数据类型、运算符、条件语句和循环语句。即使你没有任何编程基础,也能通过清晰易懂的例子快速上手。 用户界面(UI)是应用给用户最直观的感受,我们将介绍iOS UI设计的核心概念。你将学会使用Interface Builder,Xcode的可视化界面设计工具,通过拖拽控件(如按钮、标签、文本框)来构建应用的用户界面。同时,我们会讲解Auto Layout,一种强大的约束系统,用于确保你的应用界面在各种不同尺寸的设备上都能优雅地显示,避免出现布局错乱的问题。你将学习如何设置控件的属性,如何响应用户的触摸事件,以及如何将UI元素与Swift代码进行连接,实现界面的动态变化和交互。 第二部分:深入——构建更丰富的用户体验 随着你对基础概念的掌握,我们将逐步深入,探索构建更复杂、更具吸引力的应用所需的关键技术。 导航与多屏切换: 绝大多数应用都需要用户在不同的界面之间进行导航。我们将详细介绍iOS中常用的导航控制器,如`UINavigationController`(用于栈式导航,如设置页面)和`UITabBarController`(用于标签页式导航,如音乐播放器)。你将学习如何Push和Pop视图控制器,如何在标签栏中添加和管理项目,从而实现流畅的多屏切换和用户操作流程。 数据存储: 应用需要保存数据,以便在下次启动时能够恢复用户状态或展示个性化内容。我们将介绍几种常用的数据存储方案: UserDefaults: 适用于存储少量简单的用户偏好设置,如开关状态、用户名等。 文件存储: 学习如何将数据保存到设备的文件系统中,例如将文本内容、图片等保存为文件。 Core Data: 这是苹果官方提供的强大对象图管理和持久化框架,非常适合处理大量结构化数据,如通讯录、待办事项列表等。我们将介绍Core Data的核心概念,包括Managed Object Context、Managed Object Model和Persistent Store Coordinator,并演示如何使用它来创建、读取、更新和删除数据。 网络通信: 现代应用大多需要与服务器进行数据交换,例如从互联网获取新闻、天气信息,或者将用户数据上传到云端。我们将详细讲解iOS中的网络通信技术: URLSession: 这是iOS中进行网络请求的标准API,你将学习如何发送GET、POST等HTTP请求,如何处理服务器响应,以及如何解析JSON或XML等数据格式。 Alamofire(可选但推荐): 作为一个流行的第三方网络库,Alamofire简化了网络请求的许多复杂细节,提供了更便捷的API,我们将简要介绍其用法。 多媒体处理: 能够集成照片、视频和音频,将极大地丰富你的应用功能。我们将介绍: 照片库访问: 学习如何请求用户授权访问照片库,如何选择和展示图片。 相机集成: 演示如何调用相机来拍摄照片或录制视频。 音频播放: 介绍如何播放本地或网络音频文件。 后台任务与推送通知: 为了提升用户体验,应用需要在后台执行某些任务,或者在有新消息时通知用户。我们将讲解: 后台刷新: 了解如何在应用处于非活动状态时,有限地执行后台任务,如更新数据。 本地通知: 学习如何为用户设置定时或事件触发的本地通知。 远程推送通知: 介绍推送通知的机制,以及如何将你的应用与Apple Push Notification service (APNs) 集成,实现向用户发送实时通知。 第三部分:进阶——精炼你的开发技能与发布流程 当你已经能够独立构建功能丰富的应用后,我们将聚焦于提升应用的质量、性能,以及最终将其呈现在全球用户面前的App Store上架流程。 版本控制与协作: 在团队开发或长期项目中,版本控制至关重要。我们将详细介绍Git,一种分布式版本控制系统,以及如何在Xcode中使用它进行版本管理,包括提交、分支、合并等操作。这能帮助你追踪代码变更,方便回溯,并与团队成员协同工作。 调试与性能优化: 解决bug和提升应用性能是每个开发者都会遇到的挑战。我们将深入讲解Xcode的调试工具,包括断点、变量观察、内存诊断和CPU使用率分析。你将学会如何定位和修复各种类型的bug,并掌握一些常见的性能优化技巧,例如如何避免UI卡顿、如何高效地加载数据,以及如何管理内存,确保应用流畅稳定。 测试: 确保你的应用质量稳定是上架App Store的前提。我们将介绍iOS中的测试框架: 单元测试(Unit Testing): 针对代码中最小的功能单元进行测试,验证其正确性。 UI测试(UI Testing): 模拟用户操作,测试应用的用户界面和交互逻辑。 你将学习如何编写有效的测试用例,以及如何在Xcode中运行和管理测试。 App Store上架流程: 这是你努力的最终目标。我们将一步步指导你完成整个上架过程: 开发者账号注册: 解释Apple Developer Program的申请和费用。 证书与Provisioning Profile配置: 详细讲解如何创建和管理用于应用签名和分发的证书和配置文件。 App Store Connect配置: 介绍App Store Connect平台,包括如何创建应用记录,填写应用信息(名称、描述、关键词、截图等),设置价格和销售区域。 应用打包与上传: 演示如何使用Xcode将你的应用打包成可分发的`.ipa`文件,并将其上传到App Store Connect。 应用审核: 解释App Store的审核流程和指南,以及如何应对审核过程中可能出现的问题。 发布与更新: 成功上架后,你将学习如何发布你的应用,以及如何进行后续的版本更新。 结语 iOS开发是一个充满挑战也充满乐趣的领域。通过本书的引导,你将不仅掌握编程语言和开发工具,更重要的是培养解决问题的能力和创造力。从你手中诞生出的每一个应用,都可能为用户带来便利,甚至改变他们的生活。我们鼓励你不断实践,勇于尝试,并将所学知识应用到你自己的创意项目中。App Store的星辰大海正等着你去探索,祝你在iOS开发的道路上一帆风顺,成就非凡!

用户评价

评分

坦白说,我对技术书籍的要求向来很高,不只是看它有没有讲到某个技术点,更看重它的讲解方式是否清晰、逻辑是否严谨、以及是否能激发读者的学习热情。标题《iOS开发指南 从Hello World到App Store上架 第4版》给我的第一印象是相当务实和全面的。我设想,这本书大概会以一个非常友好的方式引入Swift语言和Xcode开发环境,让初学者不会因为初期的复杂性而望而却步。而“从Hello World”这一点,更是体现了它扎实的入门基础。接着,它应该会逐步深入,讲解iOS开发的核心框架,比如UIKit或SwiftUI,以及各种UI控件的使用,数据管理,网络请求等等。最让我期待的是“App Store上架”这部分,我猜想它会详细讲解从打包、签名、提交审核到最终发布的全过程,可能还会涉及App Store优化(ASO)的一些基础知识,这对于想要将App推向市场的开发者来说,价值连城。我希望这本书的图文并茂,代码示例能够直接复制粘贴运行,并且附带一些小项目贯穿始终,这样学习起来会更有成就感。我更希望它能强调最佳实践和设计模式,不仅仅是教会“怎么做”,更能教会“为什么要这样做”,从而提升开发者的内功。

评分

这本书的标题本身就足够吸引我了:《iOS开发指南 从Hello World到App Store上架 第4版》。作为一名在技术领域摸爬滚打多年的“老司机”,我深知“从零开始”的魅力,也清楚“上架”背后的种种不易。看到“第4版”,我的兴趣更是被点燃了,这意味着它紧跟时代步伐,肯定包含了最新的iOS开发技术和实践。我一直对Apple生态系统抱有浓厚兴趣,虽然之前也有接触过一些零散的iOS开发资料,但总感觉缺乏系统性和深度。这款书名直接点出了从入门到精通的完整路径,这正是我一直在寻找的。尤其“App Store上架”这一点,这不仅仅是技术实现的最后一步,更是将自己的创意变成现实、触达用户的关键环节。对于很多初学者来说,这往往是令人生畏的一步,而有这样一本指南能够清晰地指引方向,无疑是巨大的福音。我期待它能带领我一步步攻克技术难关,同时也能让我对整个App Store的生态和规则有更全面的认识。我希望这本书能够像一位经验丰富的朋友,耐心解答我可能遇到的各种问题,并且提供实用的建议,让我少走弯路,更高效地迈向iOS开发之路。

评分

看到《iOS开发指南 从Hello World到App Store上架 第4版》这个书名,我立刻感受到了它的系统性和实用性。作为一名希望系统学习iOS开发的爱好者,我一直在寻找一本能够从零开始,一直引导我到最终发布App的书籍。“Hello World”是每个开发者的起点,而“App Store上架”则是许多开发者梦想的终点,这本书名精准地抓住了这个关键路径,给我一种“一站式”解决方案的感觉。我希望这本书能够清晰地解释Swift语言的基础语法,以及Xcode开发环境的使用。更重要的是,我期待它能详细讲解iOS开发中的核心框架,例如UIKit或者SwiftUI,并提供大量的代码示例,让我能够亲手实践。对于“App Store上架”这一环节,我猜测书中会提供非常详细的操作指南,包括如何注册开发者账号,如何创建App ID、证书、配置文件,如何打包和提交App,以及如何应对App Store的审核流程。我希望这本书能够用生动的语言和丰富的插图,让复杂的概念变得易于理解,并且能够提供一些进阶的主题,例如网络编程、数据库操作、动画效果等等,帮助我不断提升自己的开发能力。

评分

这本《iOS开发指南 从Hello World到App Store上架 第4版》的名字,给我一种“管够”的感觉。从“Hello World”开始,意味着无论我是一个完全的新手,还是有一些基础但想系统学习的开发者,都能找到切入点。而“App Store上架”则表明了这本书的终极目标,它不仅仅停留在代码层面,而是关注整个App的生命周期,这非常重要。我个人认为,一本好的开发指南,不仅仅是技术手册,更应该是一本解决实际问题的宝典。我希望这本书能够深入浅出地讲解Objective-C和Swift这两种语言(虽然现在Swift是主流,但兼容性也可能涉及),以及iOS开发中最常用的Cocoa Touch框架。我脑海中勾勒出的画面是,书中会有一系列精心设计的练习题和项目,例如一个简单的待办事项列表,一个天气预报应用,甚至是一个带有用户登录和数据同步的小型社交应用。并且,我希望“第4版”意味着它涵盖了最新的API和开发趋势,比如SwiftUI的深度集成,或者对ARKit、Core ML等前沿技术的介绍。对于“上架”部分,我期待它能详细解释App Store Connect平台的使用,包括证书、标识符、描述文件等配置,以及审核指南的解读,帮助我避免被拒的风险。

评分

对于《iOS开发指南 从Hello World到App Store上架 第4版》这个书名,我最看重的就是它的“全面性”和“实践性”。“从Hello World”意味着它的起点非常低,对编程新手非常友好,能够帮助他们快速建立起对iOS开发的初步认知和兴趣。而“App Store上架”则直接点明了这本书的价值所在,它不仅仅教授技术,更是将技术落地,教会读者如何将自己的作品推向市场,获得用户的认可。我个人在学习新技术的过程中,最怕的就是理论空泛,缺乏实际操作。因此,我希望这本书能够提供大量的代码示例,并且这些示例能够循序渐进,难度不断增加,最终能够导向一个完整、可上架的App。我设想书中可能会详细讲解诸如Git版本控制,单元测试,UI测试等软件工程实践,这些对于开发高质量App至关重要。同时,作为一个“第4版”,我期待它能包含对SwiftUI的深入讲解,因为它是Apple未来的UI开发趋势。我对书中“上架”的部分也充满了期待,希望它能涵盖App Store审核的最新政策,以及一些成功的ASO策略,帮助开发者更好地推广自己的App。

评分

此书垃圾中的战斗机..建议别买

评分

性价比高,推荐购买。

评分

不错不错,很好,包装完好,里面的内容也是最新的,很开心的一次购物

评分

京东买东西方便快捷,就是好。

评分

还行,不过这书还是只适合那些从0到1的人

评分

好东西,价格合适时首选京东!

评分

不错的一本书,可以从中着手。

评分

好东西,价格合适时首选京东!

评分

书有划痕 不是新书 刘 强 东 尼 玛死了

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有