编辑推荐
《iOS实战:入门与提高卷(Swift版)》一书是国内著名的移动开发教育机构智捷课堂首席专家关东升编写iOS系列丛书中的一本。该丛书分别如下:
《iOS实战: 入门与提高卷(Swift版)》
《iOS实战: 图形图像、动画与多媒体卷(Swift版)》
《iOS实战: 传感器卷(Swift版)》
《iOS实战: 苹果“生态圈”编程卷(Swift版)》
《iOS实战: Apple Watch卷(Swift版)》《iOS实战:入门与提高卷(Swift版)》分为16章,是国内介绍iOS开发全面的图书之一。全书各章内容如下:
第1章 开始。 iOS知识开发背景介绍以及本书约定介绍。并且创建了一个iOS应用程序——HelloiOS,通过HelloiOS讨论了iOS工程模板、应用的运行机制和生命周期、视图器的生命周期。最后介绍API帮助文档和官方案例的使用。
第2章 Cocoa Touch MVC设计模式。首先介绍了Cocoa Touch MVC模式,然后介绍了视图控制器和视图基础知识,以及界面构建技术。
第3章 视图。首先介绍了控件与动作事件、视图与输出口、视图与委托协议。然后介绍了标签、按钮、文本框、文本视图、Web视图、警告框、操作表、工具栏和导航栏等基本控件。
第4章 表视图。首先介绍了表视图的组成、表视图类的构成、表视图的分类以及表视图的两个重要协议。然后讨论了如何实现简单表视图和分节表视图,以及表视图中索引、搜索栏、分组的用法,最后讨论了表视图单元格删除和插入等操作。
第5章 界面布局与Auto Layout技术。首先介绍界面布局和Auto Layout技术,最后介绍了Auto Layout技术解决界面布局等问题。
第6章 屏幕适配与Size Class技术。首先介绍了iOS屏幕及三种屏幕分辨率。然后介绍了Size Class技术解决屏幕适配问题。
第7章 应用导航模式。如何判断应用是不是需要一个导航功能,并且知道在什么情况下选择平铺导航、标签导航、树形结构导航中的哪一种或者同时综合使用3种导航模式。
第8章 手势识别。通过对本章的学习,读者可以了解手势的种类,掌握手势识别器、触摸事件和手势识别过程等。
第9章 项目实战——编写自定义控件PopupControl。通过一个自定义控件PopupControl项目,介绍了自定义控件地开发过程,以及静态链接库、动态链接库、框架和工作空间等概念。
第10章 音频和视频多媒体开发。本章介绍了音频播放与录制,以及视频播放与录制。
第11章 图形图像开发。首先了解UIImage、CIImage和CGImage对象的不同,他们的应用的场景。然后介绍了Core Image框架API以及滤镜的使用。
第12章 数据存储。讨论 iOS本地数据存储的问题。首先分析了数据存取的几种方式以及每种数据存取方式适合什么样的场景,然后分别举例介绍了每种存取方式的实现。还介绍了iOS平台的分层架构设计技术。这些架构设计模式将贯穿全书。
第13章 网络数据交换格式。介绍了数据交换格式,其中XML和JSON是主要的方式。
第14章 REST Web Service。介绍了REST Web Service。还重点介绍了MKNetworkKit框架。
第15章 Web Service网络通信架构设计。通过重构MyNotes应用,把MyNotes应用的数据由原来的本地存储变成云存储。在这个过程中,介绍了移动网络通信应用中分层架构设计的必要性和重要性。
第16章 iOS敏捷开发项目实战——价格线酒店预订iPhone客户端开发。介绍了完整的iOS应用分析设计、编程、测试和发布过程,开发过程采用敏捷开发方法。敏捷开发方法非常时候与iOS开发,广大读者能够认真学习。开发采用的架构是分层设计的,对于iOS开发也是非常重要的。
内容简介
本书是智捷课堂团队编写“iOS实战”系列图书中的一本,全书分为16章,系统介绍了iOS应用开发的理论与技术。全书内容包括: 第1章开始,介绍了iOS开发背景知识及本书约定; 第2章介绍了Cocoa Touch MVC设计模式; 第3章介绍了视图及其相关知识; 第4章介绍了表视图; 第5章介绍了界面布局与Auto Layout技术; 第6章介绍了屏幕适配与Size Class技术; 第7章介绍了应用导航模式; 第8章介绍了手势识别; 第9章为项目实战——编写自定义控件PopupControl; 第10章介绍了音频和视频多媒体开发; 第11章介绍了图形图像开发; 第12章介绍了数据存储; 第13章介绍了网络数据交换格式; 第14章介绍了REST Web Service; 第15章介绍了 Web Service网络通信架构设计; 第16章介绍了 iOS敏捷开发项目实战——价格线酒店预订iPhone客户端开发。本书适合作为从事iOS应用开发的软件工程师的参考用书,也可作为计算机科学与技术、软件工程等专业的移动开发类课程的教学用书。
作者简介
关东升,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、Android和Windows Phone及HTML5等移动开发技术。曾先后主持开发大型网络游戏《神农诀》的iOS和Android客户端开发,国家农产品追溯系统的iPad客户端开发,酒店预订系统的iOS客户端开发,金融系统的iOS、Windows Phone 及Android客户端开发。在App Store上发布数款游戏和应用软件,擅长移动平台的应用和游戏类项目开发。长期为中国移动研究院、云南移动、东软、方正科技、大唐电信、中石油、深圳康拓普、上海财富168、天津港务局等企事业单位授课。著有、《iOS开发指南——从零基础到App Store上架》、《交互设计的艺术——iOS 7拟物化到扁平化革命》、《Cocos2d-x实战:C++卷》、《Cocos2d-x实战:Lua卷》、《Cocos2d-x实战:工具卷》、《Cocos2d-x实战:JS卷——Cocos2d-JS开发》等专业图书。
目录
第1章开始
1.1iOS概述
1.1.1iOS介绍
1.1.2iOS 8新特性
1.2开发环境及开发工具
1.3本书约定
1.3.1实例代码约定
1.3.2图示约定
1.3.3方法命名约定
1.3.4构造器命名约定
1.4创建HelloiOS工程
1.4.1创建工程
1.4.2Xcode中的iOS工程模板
1.4.3应用剖析
1.4.4应用生命周期
1.4.5Xcode中的Project和Target
1.4.6常用的产品属性
1.5iOS API简介
1.5.1API概述
1.5.2如何使用API帮助
1.6小结
第2章Cocoa Touch MVC设计模式
2.1MVC模式
2.1.1MVC模式概述
2.1.2Cocoa Touch MVC模式
2.2视图控制器
2.2.1视图控制器种类
2.2.2视图控制器生命周期
2.3视图与UIView
2.3.1UIView继承层次结构
2.3.2视图分类
2.3.3应用界面的构建层次
2.4界面构建技术
2.4.1使用故事板
2.4.2使用Xib文件
2.4.3使用代码
2.5小结
第3章视图
3.1控件与动作事件
3.1.1按钮
3.1.2定义动作事件
3.2视图与输出口
3.2.1标签
3.2.2定义输出口
3.3视图与委托协议
3.3.1委托设计模式
3.3.2实例: TextField委托协议
3.3.3键盘的打开和关闭
3.3.4键盘的种类
3.4关闭和打开键盘通知
3.4.1通知机制
3.4.2实例: 关闭和打开键盘
3.5Web视图
3.5.1UIWebView类
3.5.2WKWebView类
3.6警告框
3.7操作表
3.8工具栏
3.9导航栏
3.10小结
第4章表视图
4.1表视图中概念
4.1.1表视图组成
4.1.2表视图相关类
4.1.3表视图分类
4.1.4单元格组成和样式
4.1.5数据源协议与委托协议
4.2简单表视图
4.2.1创建简单表视图
4.2.2自定义单元格
4.2.3添加搜索栏
4.3分节表视图
4.3.1添加索引
4.3.2分组
4.4删除和插入单元格
4.5小结
第5章界面布局与Auto Layout技术
5.1iOS界面布局UI设计模式
5.2静态表与表单布局
5.3集合视图
5.3.1集合视图介绍
5.3.2实例: 奥运会比赛项目
5.3.3添加集合视图控制
5.3.4添加集合视图单元格
5.3.5数据源协议与委托协议
5.4Auto Layout布局
5.4.1Auto Layout约束管理
5.4.2实例: Auto Layout布局
5.5小结
第6章屏幕适配与Size Class技术
6.1iOS屏幕
6.1.1iOS屏幕介绍
6.1.2iOS的三种分辨率
6.1.3判断iPhone屏幕尺寸
6.2Size Class技术
6.2.1Interface Builder中使用Size Class
6.2.2Size Class的九宫格
6.2.3实例: 使用Size Class
6.3小结
第7章应用导航模式
7.1导航概述
7.2导航的“死胡同”——模态窗口
7.3平铺导航
7.3.1平铺导航概述
7.3.2使用资源目录管理图片
7.3.3屏幕滚动视图重要的属性
7.3.4分屏导航实现
7.4标签导航
7.4.1标签导航实例
7.4.2标签导航实现
7.5树形结构导航
7.5.1树形结构导航实例
7.5.2树形结构导航实现
7.6组合使用导航模式
7.6.1组合导航实例
7.6.2组合导航实现
7.7小结
第8章手势识别
8.1手势种类
8.2使用手势识别器
8.2.1视图对象与手势识别
8.2.2手势识别状态
8.2.3检测Tap(单击)
8.2.4检测Long Press(长按)
8.2.5检测Pan(平移)
8.2.6检测Swipe(滑动)
8.2.7检测Rotation(旋转)
8.2.8检测Pinch(手指的合拢和张开)
8.2.9检测Screen Edge Pan(屏幕边缘平移)
8.3触摸事件与手势识别
8.3.1事件处理机制
8.3.2响应者对象与响应链
8.3.3触摸事件
8.3.4手势识别
本章小结
第9章项目实战——编写自定义控件PopupControl
9.1选择器
9.1.1日期选择器
9.1.2普通选择器
9.1.3数据源协议与委托协议
9.2自己的选择器
9.2.1自定义选择器控件需求
9.2.2静态链接库
9.2.3框架
9.2.4使用工作空间
9.3实现自定义选择器
9.3.1创建框架工程
9.3.2创建自定义选择器控制器
9.3.3使用Xib构建界面
9.3.4编写选择器控制器委托协议代码
9.3.5编写选择器控制器代码
9.4实现自定义日期选择器
9.4.1创建自定义日期选择器控制器
9.4.2使用Xib构建界面
9.4.3编写日期选择器控制器委托协议代码
9.4.4编写日期选择器控制器代码
9.5测试自定义控件
9.5.1创建工作空间
9.5.2测试程序工程
9.6小结
第10章音频和视频多媒体开发
10.1音频开发
10.1.1音频文件简介
10.1.2音频API简介
10.1.3音频播放
10.1.4音频录制
10.2视频开发
10.2.1视频文件简介
10.2.2视频播放
10.2.3视频录制
本章小结
第11章图形图像开发
11.1使用图像
11.1.1创建图像
11.1.2实例: 从设备图片库选取或从照相机抓取
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调用Objective�睠混合搭配实现
12.4属性列表
12.5使用SQLite数据库
12.5.1SQLite数据类型
12.5.2创建数据库
12.5.3查询数据
12.5.4修改数据
12.6小结
第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解码
13.3小结
第14章REST Web Service
14.1REST Web Service通信技术基础
14.1.1HTTP协议
14.1.2HTTPS协议
14.2使用苹果网络请求API
14.2.1同步请求方法
14.2.2异步请求方法
14.2.3实例: MyNotes插入、修改和删除功能实现
14.3实例: 改善MyNotes用户体验
14.3.1使用下拉刷新控件
14.3.2使用网络活动指示器
14.4使用网络请求框架MKNetworkKit
14.4.1安装和配置MKNetworkKit框架
14.4.2实现GET请求
14.4.3实现POST请求
14.4.4下载数据
14.4.5上传数据
14.5小结
第15章Web Service网络通信架构设计
15.1iOS Web Service网络通信应用的分层架构设计
15.2基于委托模式实现
15.2.1网络通信与委托模式
15.2.2使用委托模式实现分层架构设计
15.2.3类图
15.2.4时序图
15.2.5数据持久层重构
15.2.6业务逻辑层的代码实现
15.2.7表示层的代码实现
15.3基于观察者模式的通知机制实现
15.3.1观察者模式的通知机制回顾
15.3.2异步网络通信中通知机制的分层架构设计
15.3.3类图
15.3.4时序图
15.3.5数据持久层的重构
15.3.6业务逻辑层的代码实现
15.3.7表示层的代码实现
15.4小结
第16章iOS敏捷开发项目实战——价格线酒店预订iPhone客户端开发
16.1应用分析与设计
16.1.1应用概述
16.1.2需求分析
16.1.3原型设计
16.1.4架构设计
16.2iOS敏捷开发
16.2.1敏捷开发宣言
16.2.2iOS可以敏捷开发?
16.2.3iOS敏捷开发一般过程
16.3任务1: 创建工作空间
16.4任务2: 业务逻辑层开发
16.4.1迭代2.1 编写搜索酒店的业务逻辑层类
16.4.2迭代2.2 编写房间查询业务逻辑类
16.5任务3: 表示层开发
16.5.1迭代3.1 根据原型设计初步设计故事板
16.5.2迭代3.2 搜索酒店模块
16.5.3迭代3.2.1 选择城市视图控制器
16.5.4迭代3.2.2 选择关键字视图控制器
16.5.5迭代3.2.3 选择价格和日期选择器
16.5.6迭代3.2.4 酒店搜索视图控制器
16.5.7迭代3.2.5 酒店搜索列表视图控制器
16.5.8迭代3.3 房间查询模块
16.6小结
精彩书摘
《iOS实战:入门与提高卷(Swift版)/清华开发者书库》:
webView:didCommitNavigation:。该方法是当内容开始返回时调用。
webView:didFinishNavigation:。该方法在Web视图完成加载之后调用。
webView:didFailProvisionalNavigation:withError:。该方法在Web视图加载失败时调用。
上述代码第②行是定义WKWebView属性webView。第③行代码是实例化WKWebView对象,构造器frame参数通过CGRectMake函数创建,为了不遮挡按钮,WebView对象原点坐标中y轴坐标设置为100,即在父视图顶边界下100点。
第④行代码self.view.addSubview(self.webView)是将WKWebView对象添加到当前视图上。
第⑤行代码是调用loadHTMLString方法,这个方法与UIWebView类似。类似代码第⑥行是调用loadRequest方法,这个方法也与UIWebView类似。
代码第⑦行self.webView.navigationDeiegate=self是将当前视图控制器self指定为WKWebView的WKNavigationDelegate协议的委托对象。
3.6警告框
应用如何与用户交流呢?警告框(AlertView)和操作表(ActionSheet)就是为此而设计的。
首先介绍警告框,警告框是UIAlertView创建的,用于给用户以警告或提示,最多有两个按钮,超过两个就应该使用操作表。由于在iOS中,警告框是“模态”的,因此不应该随意使用。一般情况下,警告框的使用场景有如下几个。
应用不能继续运行。例如,无法获得网络数据或者功能不能完成的时候,给用户一个警告,这种警告框只需一个按钮。
询问另外的解决方案。好多应用在不能继续运行时,会给出另外的解决方案,让用户去选择。例如,Wi—Fi网络无法连接时,是否可以使用4G网络。
询问对操作的授权。当应用访问用户的一些隐私信息时,需要用户授权,例如用户当前的位置、通讯录或日程表等。
……
前言/序言
iOS实战:入门与提高卷(Swift版)/清华开发者书库
iOS实战:入门与提高卷(Swift版)/清华开发者书库 epub pdf mobi txt 电子书 下载 2024
iOS实战:入门与提高卷(Swift版)/清华开发者书库 下载 epub mobi pdf txt 电子书 2024