iOS项目开发实战

-
【作 者】主编 赵善龙 刘俊驰
【I S B N 】978-7-5170-8448-8
【责任编辑】张玉玲
【适用读者群】本专通用
【出版时间】2020-03-31
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】224
【千字数】317
【印 张】14
【定 价】¥36
【丛 书】高等职业教育移动互联应用技术专业教材
【备注信息】移动终端,应用程序,程序设计
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书构建了iOS从入门到进阶过程中最重要的知识体系,将知识、技术与技巧充分渗透到多个独立且完整的iOS应用实战项目中,带领读者一同参与到真正的企业开发流程中,使读者有条不紊地掌握完整的项目开发技术,并具备企业级移动应用开发的能力。在程序实例讲解方面,注重对实际动手能力的指导;在遵循项目开发过程的同时,将重要的知识点和经验技巧以“关键知识点解析”的形式呈现给读者,这为初学者将学习与实践结合提供了很好的指导。
本书可作为大学本科和高职高专有关课程的实训教材,也可供具备一定手机开发经验的开发者及iOS开发爱好者参考和使用。
· 将知识、技术与技巧充分渗透到多个独立且完整的iOS应用实战项目中,带领读者一同参与到真正的企业开发流程中。
· 在程序实例讲解方面注重对实际动手能力的指导。
iOS系统是目前在智能移动平台上被广泛应用的移动端操作系统之一,具有很多优点:流畅稳定、低功耗、安全。来自苹果公司官方的调查显示iOS系统是目前全球用户量第二的移动操作系统,而且用户量每年还在不断增长。然而摆在众多开发者面前的问题是,很多开发者了解viewController的生命周期,却对生命周期各个方法的调用顺序及所做的操作不很清楚;很多开发者了解UI控件的使用方法,但在通过网络获取数据后刷新UI却力不从心;很多开发者了解如何使用UITableView展示列表数据,但当数据量稍微增大时,程序就会出现卡顿现象甚至崩溃;很多开发者可以熟练地绘制布局并在模拟器上完整显示,但一旦到了某些真机上,画面便惨不忍睹。事实上,如何综合地运用iOS开发技术进行规范的应用开发,如何使自己的开发技术与企业开发流程接轨,如何更好地优化应用,使应用适配更广泛的机型而且程序更加健壮,的确是让许多通过自学成长起来的开发者深受困扰的问题。凭借多年的院校教学经验和企业实践经验,我们深知iOS初学者在学习和成长过程中的痛点。针对这些痛点,本书规划了iOS从入门到进阶过程中最重要的知识体系,将知识、技术和技巧充分渗透到多个独立且完整的iOS应用实战项目中,带领读者一同参与到真正的企业开发流程中,使读者有条不紊地掌握完整的项目开发技术,循序渐进地具备企业级移动应用开发能力。
在开始项目实战之前,需要读者对本书的知识结构体系图进行初步的了解,读者应在掌握预备知识的基础上对本书项目进行逐一学习。本书将着重对基础组件、UI、线程与线程间通信、网络通信、数据解析、数据存储六大部分在项目中的应用进行讲解。下面介绍每个项目重点训练的知识点。
项目1主要针对项目构建、布局、基础控件和按钮的点击事件进行实战。
项目2主要针对应用的架构搭建、UIScrollView和UITableView的使用方法和技巧、UICollectionView控件的用法进行实战。
项目3主要针对视图控制器、多个标签页切换使用、自定义控件、Touch事件处理进行实战。
项目4主要针对图片处理及优化、图片文件读写、媒体播放器调用进行实战。
项目5主要针对线程间通信、GCD的基本用法、不同种类任务与队列的组合机制进行实战。
项目6主要针对GCD异步获取数据并在UI界面刷新、Http、使用和读取沙盒(Documents)中的文件、利用NSURLSession工具实现网络通信进行实战。
项目7主要针对XML解析、WebView、自定义菜单栏与滚动动画进行实战。
项目8主要针对网络图片的处理、JSON解析、网络通信的封装、Application Extention的作用和简单实现进行实战。
项目9主要针对访问手机通讯录、拦截来电和电话操作进行实战。
项目10主要针对蓝牙通信进行实战。
项目11主要针对Socket和消息队列进行实战。
项目12主要针对百度地图、定位进行实战。
本书由赵善龙、刘俊驰任主编,李博鑫、赵丹、赵清磊任副主编,具体编写分工如下:项目1由严铭昊编写,项目2由李旭东编写,项目3由徐宏吉编写,项目4由李博鑫编写,项目5、项目8、项目11由赵丹编写,项目6、项目9、项目10由赵清磊编写,项目7和项目12由刘俊驰编写,本书全部示例代码由徐宏吉负责基础框架搭建和功能验证,赵善龙负责全书的大纲拟定、项目规划、章节结构设计及统稿工作。另外还要感谢周益丹编辑对本书提出了非常宝贵的意见,特别是书中内容的编排、难易程度的把握、案例的选取和文叙风格的选定等。
由于编者水平有限,书中不妥之处在所难免,恳请读者批评指正。
项目1 简易计算器 2
1.1 总体设计 2
1.1.1 总体分析 2
1.1.2 功能模块框图 3
1.1.3 系统流程图 4
1.1.4 界面设计 4
1.2 详细设计 5
1.2.1 模块描述 5
1.2.2 源文件组及其资源规划 6
1.2.3 主要方法流程设计 7
1.3 代码实现 8
1.3.1 显示界面布局 8
1.3.2 控件设计实现 8
1.3.3 控件事件处理方法实现 13
1.3.4 数值计算方法实现 17
1.4 关键知识点解析 18
1.4.1 在程序中创建导航栏 18
1.4.2 基础界面布局 20
1.4.3 设置程序名称和图标 22
1.4.4 常用文本输入控件及按钮 22
1.4.5 为按钮增加多种样式 22
1.5 问题与讨论 23
项目2 天气预报(一)—基于离线数据的
天气应用 24
2.1 总体设计 24
2.1.1 总体分析 24
2.1.2 功能模块框图 25
2.1.3 系统流程图 25
2.1.4 界面设计 26
2.2 详细设计 27
2.2.1 模块描述 27
2.2.2 源文件组及其资源规划 29
2.2.3 主要方法流程设计 30
2.3 代码实现 30
2.3.1 显示界面布局 30
2.3.2 控件设计实现 31
2.3.3 主要代码功能分析 32
2.4 关键知识点解析 37
2.4.1 UIScrollView控件的用法 37
2.4.2 UITableView控件的用法 38
2.4.3 UICollectionView控件的用法 40
2.5 问题与讨论 41
项目3 天天爱读书手机阅读器 42
3.1 总体设计 42
3.1.1 总体分析 42
3.1.2 功能模块框图 43
3.1.3 系统流程图 43
3.1.4 界面设计 43
3.2 详细设计 44
3.2.1 模块描述 44
3.2.2 源文件组及其资源规划 45
3.2.3 主要方法流程设计 46
3.3 代码实现 47
3.3.1 显示界面布局 47
3.3.2 UIPageViewController的使用 47
3.4 关键知识点解析 49
3.4.1 UIPageViewController应用原理 49
3.4.2 掌握自定义控件 50
3.5 问题与讨论 51
项目4 幻彩手机相册—基于本地图库的
图片应用 52
4.1 总体设计 52
4.1.1 总体分析 52
4.1.2 功能模块框图 52
4.1.3 系统流程图 53
4.1.4 界面设计 54
4.2 详细设计 54
4.2.1 模块描述 54
4.2.2 源文件组及其资源规划 55
4.2.3 主要方法流程设计 56
4.3 代码实现 57
4.3.1 显示界面布局 57
4.3.2 读取手机图库方法实现 58
4.3.3 图片方向的判断 60
4.3.4 图片压缩 62
4.4 关键知识点解析 64
4.4.1 图片加载到内存时造成OOM异常 64
4.4.2 大量图片的缓存处理 64
4.5 问题与讨论 65
项目5 学习监督器 66
5.1 总体设计 66
5.1.1 总体分析 66
5.1.2 功能模块框图 67
5.1.3 系统流程图 67
5.1.4 界面设计 68
5.2 详细设计 69
5.2.1 模块描述 69
5.2.2 源文件组及其资源规划 69
5.2.3 时间设置界面设计 70
5.2.4 后台线程设计 70
5.3 代码实现 71
5.3.1 显示界面布局 71
5.3.2 使用GCD创建一个定时器 72
5.3.3 监控网络变化 74
5.3.4 时间比较 74
5.3.5 一个简单的自定义控件 76
5.4 关键知识点解析 76
5.4.1 为什么使用GCD 76
5.4.2 任务和队列 77
5.4.3 GCD的其他方法 78
5.5 问题与讨论 81
项目6 简易网络音乐播放器 82
6.1 总体设计 83
6.1.1 总体分析 83
6.1.2 功能模块框图 83
6.1.3 系统流程图 83
6.1.4 界面设计 84
6.2 详细设计 85
6.2.1 模块描述 85
6.2.2 源文件组及其资源规划 86
6.2.3 主要方法流程设计 87
6.3 代码实现 88
6.3.1 显示界面布局 88
6.3.2 NSURLSession网络通信方法
实现 89
6.3.3 JSON数据解析方法实现 89
6.4 关键知识点解析 90
6.5 问题与讨论 92
项目7 新闻客户端 93
7.1 总体设计 93
7.1.1 总体分析 93
7.1.2 功能模块框图 94
7.1.3 系统流程图 94
7.1.4 界面设计 95
7.2 详细设计 95
7.2.1 模块描述 95
7.2.2 源文件组及其资源规划 97
7.2.3 主要方法流程设计 98
7.3 代码实现 99
7.3.1 显示界面布局 99
7.3.2 RSS内容读取方法实现 100
7.3.3 利用UIWebView显示HTML
页面 103
7.3.4 掌握UIScrollView的简单使用
方法 103
7.4 关键知识点解析 104
7.4.1 RSS阅读器实现 104
7.4.2 深入理解XML数据格式 106
7.5 问题与讨论 109
项目8 天气预报(二)—基于网络通信的
天气应用 110
8.1 总体设计 110
8.1.1 总体分析 110
8.1.2 功能模块框图 111
8.1.3 系统流程图 111
8.1.4 界面设计 111
8.2 详细设计 112
8.2.1 模块描述 112
8.2.2 源文件组及其资源规划 114
8.2.3 主要方法流程设计 116
8.3 代码实现 116
8.3.1 显示界面布局 116
8.3.2 控件设计实现 116
8.3.3 天气预报接口方法实现 117
8.4 关键知识点解析 119
8.4.1 在程序中使用天气预报接口 119
8.4.2 采用APNs协议实现消息推送 122
8.5 问题与讨论 127
项目9 商务通讯录 128
9.1 总体设计 128
9.1.1 总体分析 128
9.1.2 功能模块框图 129
9.1.3 系统流程图 129
9.1.4 界面设计 129
9.2 详细设计 130
9.2.1 模块描述 130
9.2.2 源文件组及其资源规划 131
9.2.3 主要方法流程设计 133
9.3 代码实现 134
9.3.1 显示界面布局 134
9.3.2 实现过程 135
9.3.3 检查权限授权 137
9.4 关键知识点解析 138
9.5 问题与讨论 139
项目10 蓝牙打印机 140
10.1 总体设计 140
10.1.1 总体分析 140
10.1.2 功能模块框图 140
10.1.3 系统流程图 141
10.1.4 界面设计 141
10.2 详细设计 142
10.2.1 模块描述 142
10.2.2 源文件组及其资源规划 144
10.2.3 主要方法流程设计 147
10.3 代码实现 148
10.3.1 显示界面布局 148
10.3.2 控件设计实现 150
10.3.3 图片算法处理 150
10.3.4 蓝牙连接管理 151
10.3.5 搜索连接蓝牙设备 152
10.4 关键知识点解析 153
10.5 问题与讨论 154
项目11 简信聊天—基于Socket的
即时通信应用 155
11.1 总体设计 155
11.1.1 总体分析 155
11.1.2 功能模块框图 155
11.1.3 系统流程图 156
11.1.4 界面设计 156
11.2 详细设计 157
11.2.1 模块描述 157
11.2.2 源文件组及其资源规划 159
11.2.3 主要方法流程设计 161
11.3 代码实现 162
11.3.1 显示界面布局 162
11.3.2 控件设计实现 163
11.3.3 发送接收消息 176
11.4 关键知识点解析 180
11.4.1 Socket定义 180
11.4.2 Socket与HTTP对比 180
11.4.3 使用Socket通信 180
11.5 问题与讨论 182
项目12 易行打车 183
12.1 总体设计 183
12.1.1 总体分析 183
12.1.2 功能模块框图 183
12.1.3 系统流程图 184
12.1.4 界面设计 185
12.2 详细设计 185
12.2.1 模块描述 185
12.2.2 源文件组及其资源规划 187
12.2.3 主要方法流程设计 188
12.3 代码实现 189
12.3.1 显示界面布局 189
12.3.2 申请百度地图API key 191
12.3.3 地图组件的初始化与显示页面
基类设计 192
12.3.4 地图操作与显示类的设计实现 199
12.3.5 订单列表和处理 204
12.4 关键知识点解析 208
12.4.1 路径检索和地图标注 208
12.4.2 iOS的3种定位方式 214
12.5 问题与讨论 216
- 零基础玩转国产大模型DeepSeek [徐永冰 张帅 编著]
- 网络工程师5天修炼(适配第6版考纲) [主编 朱小平 施游]
- 信息系统项目管理师考试32小时通关(适用第4版考纲) [薛大龙]
- 信息系统管理工程师考试32小时通关(适配第2版考纲) [薛大龙 刘伟]
- 土木工程材料检测实训 [洪晓江 达则晓丽 钱波]
- 科技信息检索与论文写作实用教程 [李振华]
- 传统山水画论解读与实践 [陈钠 著]
- Python数据库编程 [主编 殷树友 邢 翀]
- 计算机基础实训指导 [主编 袁春萍 朱妮]
- 嵌入式人工智能技术应用(数字教材) [主编 胡娜 杨国勇 晏廷荣]
- Vienna整流器技术 [桂存兵 著]
- 变频器与伺服应用 [陈刚 叶云飞]
- 物联网工程设计与实践 [汤琳 李敏]
- 炉边夜话——深入浅出话AI [汪建 著]
- 电商运营与管理 [钟肖英 陈潇]
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- 信息技术基础(Windows 10+WPS Office)(微课版) [主编 石利平 田辉平 谢盛嘉]
- 人工智能应用 [主编 陈 萍 刘培培 陈孟军]
- 大学生职业发展与就业指导 [主编 刘志坚]
- 高级办公应用项目教程 [主编 屈晶 赵成丽]
- 微信小程序开发项目实战(微课版) [主编 黄龙泉 郭峰 朱倩]
- 企业档案工作实战宝典百问百答 [华俊 卢秀英 邵甜甜 著]
- 计算机网络原理及应用 [主编 唐继勇 叶坤 孙梦娜]
- 大学生创业基础 [主编 王丽莉 王 杨]
- 船舶辅机 [主编 王连海 于洋 姜淑翠]
- 大学生就业指导 [主编 王丽莉 董宴廷]
- 系统架构设计师章节习题与考点特训 [主编 薛大龙 邹月平]
- 高校学生工作探索与实践 [郭亮 著]
- 大学生情商管理 [方雄 著]
- 2023年长沙市会展业发展报告 [主编 周栋良]