本书是专门为高校师生学习Swift语言和iOS应用开发而编著的教材。书中首先详细介绍了Swift语言,然后展开介绍iOS开发技术,最后安排了综合案例。全书分别介绍了如下内容: 操作系统的基本概念; 苹果硬件设备和iOS操作系统; Swift语言的基本语法与程序设计; iOS应用开发基础; iOS应用界面技术; 表视图; 界面布局与Auto Layout技术; 屏幕适配与Size Class技术; 应用导航模式; 多媒体开发; 图形图像开发; 数据存储; 网络数据交换格式; 网络通信。最后一章介绍了综合案例——奥运会应用设计与开发,该章给出了完整的iOS应用分析和设计,以及编程实现,架构采用分层设计实现,开发中采用敏捷开发方法。
本书适合作为高等院校与职业院校“移动操作系统”与“iOS应用开发”等课程的教材,也适合广大iOS应用开发人员自学参考。
本书完整套学课件、两套数千分钟的教学视频、全部章节的源代码
本书涵盖主题如下:
移动操作系统概述
iOS开发新语言——Swift
iOS开发基础
iOS应用界面开发技术
iOS屏幕适配
iOS应用导航模式
iOS多媒体开发
iOS图形图像开发
iOS网络数据交换格式
iOS网络通信
iOS分层设计
iOS项目开发过程
iOS项目分析和设计方法
敏捷开发方法在iOS项目中具体实现
作者简介
关东升:国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、Android、Windows Phone及HTML5等移动开发技术。曾先后主持开发大型网络游戏《神农诀》的iOS和Android客户端开发,国家农产品追溯系统的iPad客户端开发,酒店预订系统的iOS客户端开发,金融系统的iOS、Windows Phone 及Android客户端开发。在App Store上发布数款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。长期为中国移动研究院、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓普、上海财富168、天津港务局等企事业单位授课。著有《iOS实战:入门与提高卷(Swift版)》《iOS实战:传感器卷(Swift版)》《iOS实战:图形图像、动画和多媒体卷(Swift版)》《iOS开发指南——从零基础到App Store上架》《交互设计的艺术——iOS 7拟物化到扁平化革命》《Cocos2d-x实战:C++卷(第2版)》《Cocos2d-x实战:Lua卷(第2版)》《Cocos2d-x实战:JS卷——Cocos2d-JS开发(第2版)》《Cocos2d-x实战:工具卷(第2版)》等专业图书。
目录
第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视频播放
本章小结
同步练习
第5章
CHAPTER 5
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设计原型图