描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302481560
本书适合作为高等院校与职业院校“移动操作系统”与“iOS应用开发”等课程的教材,也适合广大iOS应用开发人员自学参考。
目录
第0章移动操作系统概论
0.1操作系统的原理与概念
0.1.1隐藏硬件细节
0.1.2资源管理
0.1.3操作系统的历史
0.2操作系统的分类
0.2.1批处理操作系统
0.2.2分时操作系统
0.2.3实时操作系统
0.2.4个人计算机操作系统
0.2.5网络操作系统
0.2.6分布式操作系统
0.2.7嵌入式操作系统
0.3移动操作系统
0.3.1移动设备的特征
0.3.2主要的移动操作系统
0.3.3移动操作系统的应用和发展
第1章iOS操作系统及Swift编程语言简介
1.1苹果的硬件设备与操作系统
1.2Swift语言概述
1.3iOS概述
1.4开发环境及开发工具
1.4.1Xcode开发工具
1.4.2Xcode安装
1.4.3Xcode卸载
1.4.4Xcode界面
本章小结
同步练习
第2章Swift语言程序设计(上)
2.1个Swift程序
2.1.1创建Playground
2.1.2创建macOS工程
2.2代码解释
2.3标识符
2.4关键字
2.5常量和变量
2.5.1常量
2.5.2变量
2.6运算符
2.6.1算术运算符
2.6.2算术赋值运算符
2.6.3关系运算符
2.6.4逻辑运算符
2.6.5位运算符
2.7Swift数据类型
2.7.1整型
2.7.2浮点型
2.7.3布尔型
2.7.4元组类型
2.7.5数据类型转换
2.8可选类型
2.8.1可选类型概念
2.8.2可选类型值拆包
2.8.3可选绑定
2.9字符
2.9.1Unicode编码
2.9.2转义符
2.10字符串
2.10.1字符串创建
2.10.2字符串拼接
2.10.3字符串插入、删除和替换
2.10.4字符串比较
2.11控制语句
2.11.1分支语句
2.11.2循环语句
2.11.3跳转语句
2.11.4值绑定
2.12集合
2.12.1数组集合
2.12.2字典集合
2.13函数
2.13.1定义函数
2.13.2函数调用
2.13.3函数类型
2.14闭包
2.14.1闭包的概念
2.14.2使用闭包表达式
2.14.3类型推断简化
2.14.4隐藏return关键字
2.14.5省略参数名
2.14.6使用尾随闭包
2.14.7捕获上下文中的变量和常量
本章小结
同步练习
第3章Swift语言程序设计(下)
3.1Swift中的面向对象类型
3.1.1枚举
3.1.2结构体与类
3.2可选链
3.2.1可选链概念
3.2.2使用问号和感叹号
3.3访问限定
3.3.1访问范围
3.3.2访问级别
3.3.3使用访问级别实践
3.4属性
3.4.1存储属性
3.4.2计算属性
3.4.3静态属性
3.5方法
3.5.1实例方法
3.5.2静态方法
3.6构造函数
3.6.1默认构造函数
3.6.2构造函数与存储属性初始化
3.6.3使用参数标签
3.7析构函数
3.8类继承
3.8.1继承概念
3.8.2构造函数继承
3.8.3重写
3.8.4使用final关键字
3.8.5类型检查
3.8.6类型转换
3.8.7使用AnyObject和Any类型
3.9扩展
3.9.1声明扩展
3.9.2扩展计算属性
3.9.3扩展方法
3.9.4扩展构造函数
3.10协议
3.10.1协议概念
3.10.2协议定义和遵从
3.10.3协议方法
3.10.4协议属性
本章小结
同步练习
第4章iOS应用开发概述
4.1HelloiOS工程
4.1.1创建工程
4.1.2Xcode中的iOS工程模板
4.1.3应用剖析
4.2应用生命周期
4.3iOS API简介
4.3.1API概述
4.3.2如何使用API帮助
本章小结
同步练习
第5章iOS应用界面技术
5.1界面构建技术
5.1.1使用故事板
5.1.2使用Xib文件
5.1.3使用代码
5.2MVC模式
5.2.1MVC模式概述
5.2.2Cocoa Touch MVC模式
5.3视图控制器
5.3.1视图控制器种类
5.3.2视图控制器的生命周期
5.4视图与UIView
5.4.1UIView继承层次结构
5.4.2视图分类
5.4.3应用界面的构建层次
5.5控件与动作事件
5.5.1按钮
5.5.2定义动作事件
5.6视图与输出口
5.6.1标签
5.6.2定义输出口
5.7视图与委托协议
5.7.1委托设计模式
5.7.2实例: TextField委托协议
5.7.3键盘的打开和关闭
5.7.4键盘的种类
5.8关闭和打开键盘通知
5.8.1通知机制
5.8.2实例: 关闭和打开键盘
5.9Web视图
5.10工具栏
5.11导航栏
本章小结
同步练习
第6章表视图
6.1表视图中的概念
6.1.1表视图组成
6.1.2表视图的相关类
6.1.3表视图的分类
6.1.4单元格的组成和样式
6.1.5数据源协议与委托协议
6.2简单表视图
6.2.1创建简单表视图
6.2.2自定义单元格
6.3分节表视图
6.3.1添加索引
6.3.2分组
本章小结
同步练习
第7章界面布局与Auto Layout技术
7.1iOS界面布局UI设计模式
7.2静态表与表单布局
7.3Auto Layout布局
7.3.1Interface Builder中管理Auto
Layout约束
7.3.2案例: Auto Layout布局
本章小结
同步练习
第8章屏幕适配与Size Class技术
8.1iOS屏幕的多样性
8.1.1iOS屏幕介绍
8.1.2iOS的3种分辨率
8.1.3获得iOS设备屏幕信息
8.2Size Class与iOS多屏幕适配
8.2.1Size Class技术
8.2.2Size Class的九宫格
8.2.3Size Class的四个象限
8.2.4Xcode 8中使用Size Class
8.2.5案例: 使用Size Class
本章小结
同步练习
第9章应用导航模式
9.1导航概述
9.2导航的“死胡同”——模态视图
9.3平铺导航
9.3.1平铺导航概述
9.3.2使用资源目录管理图片
9.3.3屏幕滚动视图的重要属性
9.3.4分屏导航实现
9.4标签导航
9.4.1标签导航实例
9.4.2标签导航实现
9.5树形结构导航
9.5.1树形结构导航实例
9.5.2树形结构导航实现
本章小结
同步练习
第10章多媒体开发
10.1音频开发
10.1.1音频文件简介
10.1.2音频API简介
10.1.3实例: 音频播放
10.1.4实例: 音频录制
10.2视频开发
10.2.1视频文件简介
10.2.2视频播放
本章小结
同步练习
第11章图形图像开发
11.1使用图像
11.1.1创建图像
11.1.2实例: 创建UIImage图像对象
11.1.3实例: 从设备图片库选取或从照相机抓取
11.2使用Core Image框架
11.2.1Core Image框架API
11.2.2滤镜
11.2.3实例: 旧色调和高斯模糊滤镜
本章小结
同步练习
第12章数据存储
12.1数据存储概述
12.1.1沙箱目录
12.1.2数据存储方式
12.2分层架构设计
12.2.1低耦合企业级系统架构设计
12.2.2iOS分层架构设计
12.3实例: MyNotes应用
12.3.1采用纯Swift语言实现
12.3.2采用Swift调用ObjectiveC混合搭配实现
12.4属性列表
12.5使用SQLite数据库
12.5.1SQLite数据类型
12.5.2创建数据库
12.5.3查询数据
12.5.4修改数据
本章小结
同步练习
第13章网络数据交换格式
13.1XML数据交换格式
13.1.1XML文档结构
13.1.2XML文档解析与框架性能
13.1.3实例: MyNotes应用XML
13.2JSON数据交换格式
13.2.1JSON文档结构
13.2.2JSON数据编码/解码与框架性能
13.2.3实例: MyNotes应用JSON解码
本章小结
同步练习
第14章网络通信
14.1基于Web Service的网络通信技术
14.1.1HTTP协议
14.1.2HTTPS协议
14.1.3苹果ATS限制
14.2使用URLSession
14.2.1URLSession API
14.2.2简单会话实现GET请求
14.2.3默认会话实现GET请求
14.2.4实现POST请求
14.2.5下载数据
14.3实例: 重构MyNotes案例
14.3.1插入方法调用
14.3.2修改方法调用
14.3.3删除方法调用
本章小结
同步练习
第15章综合案例:
奥运会应用设计与开发
15.1应用分析与设计
15.1.1应用概述
15.1.2需求分析
15.1.3原型设计
15.1.4数据库设计
15.1.5架构设计
15.2任务1: 创建工程
15.3任务2: 信息系统层与持久层开发
15.3.1迭代2.1: 编写数据库DDL脚本
15.3.2迭代2.2: 插入初始数据到数据库
15.3.3迭代2.3: 数据库版本控制
15.3.4迭代2.4: 配置持久层
15.3.5迭代2.5: 添加SQLite3库
15.3.6迭代2.6: 编写实体类
15.3.7迭代2.7: 编写DAO类
15.3.8迭代2.8: 数据库帮助类DBHelper
15.4任务3: 业务逻辑层开发
15.4.1迭代3.1: 编写比赛项目业务逻辑类
15.4.2迭代3.2: 编写比赛日程业务逻辑类
15.5任务4: 表示层开发
15.5.1迭代4.1: 使用资源目录管理图片和图标资源
15.5.2迭代4.2: 根据原型设计初步设计故事板
15.5.3迭代4.3: “首页”模块
15.5.4迭代4.5: “比赛项目”模块
15.5.5迭代4.6: “比赛日程”模块
15.5.6迭代4.7: “倒计时”模块表示层
15.5.7迭代4.8: “关于我们”模块表示层
15.6任务5: 收工
15.6.1迭代5.1: 添加图标
15.6.2迭代5.2: 设计启动界面
本章小结
附录同步练习参考答案
前言
随着iOS应用开发在企业中的需求越来越多,很多高校也考虑开设iOS应用开发课程,但目前图书市场上缺乏针对高校教学而定制的iOS应用开发教程。笔者有多年的iOS应用开发经验,出版了多种畅销的iOS应用开发图书,其中《iOS应用开发指南》更是获得了广大读者的认可。为满足高校教师的需求,应清华大学出版社盛东亮编辑之邀,笔者决定出版一套iOS应用开发方面的教材。
本书主要采用苹果新推出的计算机语言——Swift,这主要是因为Swift是一门开源计算机语言,未来将应用于多个平台和领域开发,是非常重要的语言。因此,本书首先详细介绍Swift语言,然后再介绍iOS应用开发的主要技术。内容安排前后合理,由浅入深。
为了帮助读者更好地消化吸收书中内容,在每章后面都有同步练习,并在附录中附有解答。另外,还为购买本书的高校教师提供配套课件和素材。
本书虽然为高校编写,满足高校教学需要,介绍Swift语言和iOS应用开发,但是也适合对Swift语言和iOS应用开发技术感兴趣的读者。
为了更好地为广大读者提供服务,我们专门为本书建立了一个网站,具体网址为www.51work6.com/book/ios61.php,读者可以了解书中内容、下载源代码、下载课件等,并对本书内容发表评论,提出宝贵意见。
为了及时地把书中的问题、失误和纠正反馈给广大读者,我们专门在www.51work6.com/book/ios61.php中建立了一个勘误专区。另外,读者如果有什么问题,可以在网上留言,也可以发送电子邮件到eorient@sina.com,我们会在时间回复您。也可以通过笔者的新浪微博(@tony_关东升)或微信(q270258799)联系我们。
本书主要由关东升编写。此外,
智捷课堂团队的赵大羽、赵志荣、关锦华、赵浩丞、王馨然和闫婷娇也参与了本书部分内容的写作。感谢赵大羽老师手绘了书中全部草图,并从专业的角度修改书中图片,更加真实完美地奉献给广大读者。
感谢清华大学出版社的盛东亮编辑给我们提供的宝贵意见。
感谢我的家人容忍我的忙碌,以及对我的关心和照顾,使我能抽出较多时间,投入全部精力专心编写本书。
由于时间仓促,书中难免存在不妥之处,敬请批评指正。
关东升2017年8月
学习说明Study Shows
一、 源代码及教学课件
下载地址为www.51work6.com/book/ios61.php。
二、
赠送学习视频教程
1. “从零开始学Swift”视频课程
所有购买本书的读者可获赠约24小时的下述视频课程:
(1) 从零开始学Swift——语法篇(季): 508分钟。
(2) 从零开始学Swift——语法篇(第二季): 241分钟。
(3) 从零开始学Swift——编程规范(第三季): 38分钟。
(4) 从零开始学Swift——Swift与ObjectiveC\C\C 混合编程(第四季): 325分钟。
(5) 从零开始学Swift——同步练习题解析:
307分钟。
说明:
上述课程为正在热销课程,定价119.00元人民币,读者购买本书后,凭书中夹带的学习卡中的代金卡号到zhijieketang.com网站购买该课程,自购买之日起三月内有效。视频课程学习地址为http: //www.zhijieketang.com/classroom/8/courses。
代金卡号使用具体说明:
首先智捷课堂视频平台(www.zhijieketang.com)注册并登陆,然后找到相应课程,接着选择页面中的【购买课程】→【去支付】→【输入优惠码】→【使用】。
2. “iOS会员——iOS开发学习路线图”视频课程
凡是订购本书作为课堂教材使用的高校教师,可获赠时长约160小时的下述视频课程:
(1) iOS开发指南季——个iOS应用程序: 62分钟
(2) iOS开发指南第二季——Cocoa
Touch框架与构建应用界面: 101分钟
(3) iOS开发指南第三季——UIView与视图: 170分钟
(4) iOS开发指南第四季——表视图: 167分钟
(5) iOS开发指南第五季——界面布局与屏幕适配: 97分钟
(6) iOS开发指南第六季——视图控制器与导航模式: 170分钟
(7) iOS开发指南第七季——iOS常用设计模式: 91分钟
(8) iOS开发指南第八季——iOS分层架构设计: 105分钟
(9) iOS开发指南第九季——数据持久化: 130分钟
(10) iOS开发指南第十季——数据交换格式: 87分钟
(11) iOS开发指南第十一季——REST风格Web Service: 106分钟
(12) iOS开发指南第十二季——定位服务: 110分钟
(13) iOS开发指南第十三季——苹果地图应用: 105分钟
(14) iOS开发指南第十四季——iOS测试驱动与单元测试: 95分钟
(15) iOS开发指南第十五季——性能优化: 54分钟
(16) Swift语言视频教程入门与提高(上): 342分钟
(17) Swift语言视频教程入门与提高(下): 973分钟
(18) iOS8开发视频教程Swift语言版Part 1——个iOS应用程序: 171分钟
(19) iOS8开发视频教程Swift语言版Part 2——UIView与视图: 306分钟
(20) iOS8开发视频教程Swift语言版Part 3——iOS 8多分辨率屏幕适配: 192分钟
(21) iOS8开发视频教程Part 4——iOS数据源协议.委托协议与高级视图: 151分钟
(22) iOS8开发视频教程Swift语言版Part 5——iOS表视图: 312分钟
(23) iOS8开发视频教程Swift语言版Part 6——iOS视图控制器与导航模式: 340分钟
(24) iOS8开发视频教程Swift语言版Part 7——iOS常用设计模式: 125分钟
(25) OS8开发视频教程Part 8——iPhone与iPad应用开发的差异: 115分钟
(26) iOS8开发视频教程Swift语言版Part 9——iOS分层架构设计: 203分钟
(27) iOS8开发视频教程Swift语言版Part 11——访问Web
Service: 414分钟
(28) iOS8开发视频教程Swift语言版Part 12——iOS定位服务与地图应用: 269分钟
(29) iOS8开发视频教程Swift语言版实战——2016里约热内卢奥运会指南: 415分钟
(30) Swift项目开发实战——基于分层架构的多版本iPhone计算器: 193分钟
(31) Objective
C编程基础视频课程: 537分钟
(32) iOS多媒体技术精讲视频课程: 224分钟
(33) OS图形图像与动画: 236分钟
(34) 项目实战——酒店预订系统iPhone客户端开发(ObjectiveC版): 466分钟
(35) 项目实战——51CTO学院iPad视频客户端开发: 349分钟
(36) iOS中的下拉刷新及等待指示器: 38分钟
(37) iOS进阶开发——Socket、Bonjour、对等网络、蓝牙通信: 113分钟
(38) iOS进阶开发——调试程序: 164分钟
(39) iOS测试: 183分钟
(40) iOS进阶课程——iCloud编程: 131分钟
(41) iOS进阶开发——iOS性能优化: 186分钟
(42) iOS进阶课程——苹果的WebService: 143分钟
(43) iOS协同开发——iOS代码版本控制GitHub代码托管服务: 211分钟
(44) iOS进阶课程——Passbook编程: 120分钟
(45) iOS开发中如何使用广告——iAdAdmob: 215分钟
(46) iOS的内购——应用内购买: 54分钟
(47) iOS进阶课程——ASIHTTPRequest框架: 47分钟
(48) iOS进阶课程——Newsstand编程: 103分钟
(49) iOS进阶课程——iOS推送通知: 91分钟
(50) iOS架构设计: 161分钟
说明:
上述课程为正在热销课程,定价2600.00元人民币,已订购教材的教师请与清华大学出版社盛东亮编辑联系(dongliang.sheng@qq.com)。工作人员会给您开通该课程三月内免费使用权限。学习地址为http: //www.zhijieketang.com/classroom/3/courses。
iOS应用界面技术
应用开发一般都是从构建界面开始入手,本章介绍iOS应用界面技术,包括MVC设计模式、常用视图、控件、动作事件和输出口等。5.1界面构建技术在iOS应用开发过程中,构建一个界面可以采用三种方式: 故事板文件、Xib文件和代码实现。本书重点介绍故事板技术。5.1.1使用故事板在上一章介绍的HelloiOS工程中有一个Main.storyboard文件,被称为“故事板”(storyboard)文件,它可以描述应用中有哪些界面,界面有哪些控件及它们的事件。此外,故事板还能描述界面之间是如何导航(或跳转)的。1. 故事板的导航特点在包含多个视图控制器的情况下,采用故事板管理比较方便,而且故事板还可以描述界面之间的导航关系。下面举例说明故事板的用法。要做这样一个应用: 两个不同的界面,有两个标签分别与其对应,单击标签实现两个界面的相互切换。该应用采用标签栏导航模式,设计原型如图51所示。选择Tabbed Application模板创建工程,在生成的工程中打开Main.storyboard文件。会看到如图52所示的设计视图。可以看到,该应用包含两个视图,并且两个视图存在切换关系。2. 故事板中的Scene和Segue如图53所示,Scene和Segue是故事板中非常重要的两个概念。每个视图控制器都会对应一个Scene(译为“场景”),可以理解为应用的一个界面或屏幕。这些Scene之间通过Segue连接,Segue不但定义了Scene之间的导航(或跳转)方式,还体现了Scene之间的关系。Scene的类型分为Push、Modal、Popover和自定义方式。Scene要与具体的控制器结合使用,Push是树形导航模式; Modal是模态导航模式; Popover是呈现浮动窗口。
图51设计原型图
图52故事板设计视图
图53故事板中的Scene和Segue
除了Scene和Segue以外,故事板中还有关于表视图单元格的一些新内容,也将在后面逐一介绍。5.1.2使用Xib文件在一些老版本Xcode创建的工程中,经常会看到Xib文件,事实上Xib与故事板是非常相似的技术。那么故事板与Xib相比,是否只是文件后缀名不同呢?当然不是。一般而言,一个工程中可以有多个Xib文件,一个Xib文件对应着一个视图控制器,如图54(a)所示; 而使用故事板时,一个工程只需要一个主故事板文件就可以了,如果54(b)所示。
评论
还没有评论。