内容简介
第1章 开发准备
1.1 iOS移动开发现状
1.1.1 iOS的历史
1.1.2 iOS 10的十大变化
1.1.3 iOS应用开发的八个特点
1.2 iOS 10的新功能
1.2.1 SiriKit
1.2.2 Proactive Suggestions(预建议)
1.2.3 Integrating with the MessagesApp
1.2.4 User Notifications
1.2.5 Speech Recognition
1.2.6 Wide Color
1.2.7 Adapting to the True ToneDisplay
1.2.8 Widget Enhancements
1.2.9 Securi and Privacy Enhancements
1.3成为一名iOS开发者
1.3.1硬件上的需求
1.3.2加入Apple开发者计划
1.3.3下载安装Xcode和模拟器
1.3.4创建开发和发布配置文件Provisioning Profile
1.4创建一个基本的iOS项目
1.4.1项目的创建
1.4.2设置项目的信息
1.4.3设置应用的Icon图标
1.4.4设置应用的Launch图片
1.4.5编译并运行项目
1.5 iOS应用的生命周期
1.5.1 iOS应用程序的状态
1.5.2演示iOS应用程序的各种状态
1.6小结
第2章Xcode 8 IDE和iOS模拟器
2.1 Xcode 8的使用
2.1.1工具栏的使用
2.1.2导航器的功能介绍
2.1.3项目导航器中的内容
2.1.4创建一个组和Swift文件
2.1.5在项目中搜索文件
2.1.6代码的查找和替换
2.1.7代码的Debug调试
2.2 iOS模拟器的使用
2.2.1使用多种iOS模拟器
2.2.2 iOS模拟器方向的切换
2.2.3 iOS模拟器语言的切换
2.2.4截取模拟器屏幕
2.2.5应用程序的退出和删除
2.3小结
第3章Swift 3.0的基础知识
3.1 Swift的基本概念
3.1.1 Swift语言的特点
3.1.2 Swift常量和变量的定义
3.1.3常量和变量的输出
3.1.4注释
3.1.5 Playground
3.2数据类型与运算
3.2.1布尔类型
3.2.2 Int类型及实例属性
3.2.3浮点类型及实例属性
3.2.4字符和字符串
3.2.5元组类型
3.2.6一元、二元和三元运算符
3.2.7比较运算符
3.3循环语句和条件判断语句
3.3.1 for循环
3.3.2 while循环语句
3.3.3 repeat-while循环语句
3.3.4 if条件判断语句
3.3.5 switch条件判断语句
3.3.6 continue语句和forthrough语句
3.4数组和字典
3.4.1数组
3.4.2多维数组
3.4.3数组的遍历
3.4.4字典
3.5小结
第4章Swift 3.0的进阶内容
4.1函数
4.1.1函数的定义和调用
4.1.2为参数设置默认值
4.1.3设置可变的函数参数数量
4.1.4函数作为参数和返回类型
4.1.5元组作为函数的返回类型,实现多个返回值
4.1.6使用函数类型
4.1.7函数的输入输出参数
4.1.8函数的嵌套
4.1.9函数的递归用法
4.1.10常用的内置函数
4.2枚举和结构体
4.2.1枚举
4.2.2结构体
4.3类
4.3.1类的创建
4.3.2类属性的set和get方法
4.3.3类属性的willSet和didSet方法
4.3.4类的静态方法
4.3.5类的析构
4.3.6类的继承
4.3.7类的延迟加载属性lazy
4.3.8类的引用特征
4.3.9类型检查
4.3.10 Any和Anyobject
4.4扩展、协议和其他
4.4.1扩展
4.4.2协议
4.4.3问号?和感叹号!
4.5小结
第5章 视图UIView和层CALayer
5.1视图UIView
5.1.1 UIView概述
5.1.2 UIView的外观属性
5.1.3 UIView的几何属性
5.1.4 UIView的嵌套和层次关系
5.1.5 UIView的交互属性
5.1.6 UIView的变形操作
5.1.7自定义UIView视图
5.2 CALayer层
5.2.1 CALayer边框
5.2.2 CALayer阴影
5.2.3 CALayer圆角
5.2.4 CALayer渐变
5.3小结
第6章 视图控制器U IViewController
6.1UIViewController视图控制器概述
6.1.1视图控制器与MV C
6.1.2创建一个视图控制器
6.1.3以模态方式弹出视图控制器
6.1.4视图控制器的生命周期
6.1.5视图控制器和UIScrollView
6.2 UITabBarController
6.2.1创建一个UITabBarController
6.2.2改变Tab bar的位置
6.2.3改变UITabBarController索引
6.2.4在Tab图标上显示角标
6.3 UINavigationController
6.3.1创建一个UINavigationController
6.3.2 UINavigationController视图入栈和出栈
6.3.3导航栏和工具栏的显示和隐藏
6.3.4导航栏样式的修改
6.4导航控制器和标签控制器
6.5小结
第7章 常用经典控件
7.1控件概述
7.1.1何为Target-Action机制
7.1.2 UIControl类的方法和属性
7.1.3让我们一起动手来实现一个UIControl吧
7.2 UIButton的概述
7.3 UILabel文本视图
7.3.1 UILabel的创建和文案显示
7.3.2 UILabel处理过长的文案
7.3.3 UILabel的阴影
7.4 UISwitch开关视图
7.4.1 UISwitch的创建
7.4.2 UISwitch的开关使用
7.5 UIRefreshControl刷新控件
7.6 UITextField文本框控件
7.6.1 UITextField的创建和基本应用
7.6.2 UITextField的背景图
7.6.3 UITextField的浮动视图(Overlay view)
7.6.4 UITextField的代理UITextFieldDelegate
7.7小结
第8章UITableView和UICollectionView
8.1 UITableView概述
8.1.1 UITableViewCell单元格
8.1.2创建一个简单的表格
8.1.3自定义单元格UITableViewCell
8.1.4自定义单元格的高度
8.1.5给表格添加章节和索引
8.1.6单元格的选择与取消选择
8.1.7单元格的插入和删除
8.1.8移动单元格的位置
8.1.9表格之间的嵌套
8.2 UICollectionView概述
8.2.1 UICollectionView的实现原理
8.2.2创建一个UICollectionView对象并添加点击事件
8.3小结
第9章 触屏事件和触摸手势
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 3D Touch的使用
9.4小结
第10章 动画、声音与视频
10.1制作动画
10.1.1 UIView的动画
10.1.2使用UIImageView播放帧动画
10.1.3位移关键帧动画的制作
10.2音频的播放
10.2.1使用System Sound Services播放简短声音
10.2.2使用AVAudioPlayer播放音乐
10.3视频的播放
10.3.1使用AVPlayer播放影片
10.3.2实现影片的画中画功能
10.4小结
第11章Alamofire网络请求框架
11.1Alamofire的前世今生
11.1.1 Alamofire的手动集成
11.1.2 Alamofire的网络是否联通和连接方式
11.1.3 Alamofire的GET和POST请求
11.1.4 Alamofire的文件上传及进度显示
11.1.5 Alamofire的文件下载及进度显示
11.2小结
第12章U IWebView与HTML 5技术
12.1 UIWebView的使用
12.1.1使用UIWebView加载网页
12.1.2使用UIWebView加载HTML字符串和GIF动画
12.1.3使用UIWebView加载本地网页
12.1.4使用Javascript回调原生程序
12.2创建一个简单的笔记本
12.2.1创建一个可编辑的div
12.2.2设置网页的CSS样式
12.2.3添加插入笔记图片的方法
12.2.4添加删除图片和获得笔记的方法
12.2.5实现笔记本的用户界面
12.3小结
第13章 数据的持久化
13.1解析plist文件
13.1.1创建和解析plist文件
13.1.2将信息写入plist文件
13.2使用CoreData进行数据的持久化
13.2.1创建Core Data实体并插入数据
13.2.2检索Core Data中的数据
13.2.3修改和删除Core Data数据
13.3小结
第14章 多线程技术
14.1多线程的概念
14.1.1任务、进程和线程
14.1.2线程的Stack space
14.1.3线程的优先级
14.1.4线程的生命周期
14.1.5线程和Run loop
14.2使用Thread
14.2.1创建Thread下载图片
14.2.2给Thread加锁使线程同步
14.3 Operation技术的使用
14.4 Grand Central Dispatch的使用
14.4.1使用GCD查询IP地址信息
14.4.2 DispatchGroup调度组的使用
14.5小结
第15章MapKit地图
15.1 Map Kit的概念
15.1.1 MKMapView的显示区域
15.1.2 MKMapView的跟踪和定位
15.1.3 MKMapView的交互选项和装饰物
15.1.4创建一个MKMapView地图
15.1.5 MKMapView代理的使用
15.1.6自定义annotationView和calloutV iew
15.1.7 Camera相机的使用
15.2小结
第16章iOS的图文混排技术
16.1 Core Text的使用
16.1.1文字排版方面的一些基本概念
16.1.2列出设备中的所有字体
16.1.3富文本的创建
16.1.4图文混排的实现
16.2 Text Kit的使用
16.2.1使用Text Kit对文字进行分栏
16.2.2使用Text Kit制作图文混排效果
16.3小结
第17章iOS的图像和视频处理技术
17.1 Core Image概述
17.1.1使用Core Image的三个类制作单色调效果
17.1.2使用Core Image给图片添加马赛克
17.1.3使用Core Image处理视频画面
17.1.4输出Core Image的所有滤镜
17.1.5使用CIDetector和CIFeature进行人脸检测
17.2 UIBlurEffect和CGB1endMode
17.2.1使用UIBlurEffect实现毛玻璃效果
17.2.2使用CGB1endMode实现颜色混合效果
17.3小结
第18章iOS常用设备的使用
18.1Photos和Camera的使用
18.1.1读取Photos中的图片
18.1.2调用相机拍摄照片
18.2定位设备的使用
18.2.1使用定位设备获取设备地理位置
18.2.2将地理坐标转换为实际地名
18.3陀螺仪和加速计设备的使用
18.3.1陀螺仪的原理和应用
18.3.2加速计的原理和应用
18.3.3检测iOS设备的晃动
18.4小结
第19章Storyboard故事板的使用
19.1Storyboard概述
19.1.1 Storyboard的优缺点
19.1.2故事板的组织形式
19.1.3创建一个Storyboard
19.1.4更改故事板的初始视图控制器
19.2在Storyboard中使用标准控件
19.2.1添加三个控件
19.2.2对控件进行连接
19.3在Storyboard中使用表格控件
19.3.1在故事板中添加Table View
19.3.2添加Table View Cell
19.3.3设置Table View的数据源
19.3.4修改ViewController.swift文件
19.4在Storyboard中使用集合控件
19.4.1添加Collection View
19.4.2设置Collection View Cell
19.4.3设置Collection View的数据源和代理
19.4.4修改ViewController.swift文件
19.5 Storyboard常见的层次结构
19.6 Storyboard之间的页面跳转和参数传递
19.6.1单个Storyboard中页面间的参数传递
19.6.2多个Storyboard中的页面跳转及参数传递
19.7使用约束功能适配多分辨率
19.7.1打开并运行示例项目
19.7.2给父视图MainView添加约束
19.7.3给三个分隔线添加约束
19.7.4给两个小箭头添加约束
19.7.5给添加新会员按钮添加约束
19.7.6给无数据图标添加约束
19.8小结
第20章 界面测试和自动化测试
20.1单元测试概述
20.1.1 Xocde的XCTest框架
20.1.2对其他类的方法进行单元测试
20.1.3使用XCTest框架进行性能测试
20.2 UI Testing界面测试
20.2.1往项目中插入UI Testing
20.2.2制作UI测试的程序
20.2.3录制UI Testing步骤
20.2.4播放UI Testing的录制步骤
20.3使用UIAutomation进行自动化测试
20.3.1使用UIAutomation录制自动化测试代码
20.3.2测试脚本的保存和加载
20.4小结
第21章iOS应用程序内存泄露的检测
21.1Allocations工具的使用
21.2 Leaks工具的使用
21.3小结
第22章iOS应用程序的本地化
22.1应用程序的本地化
22.1.1应用程序名称的本地化
22.1.2应用程序文字内容的本地化
22.1.3 Storyboard的本地化
22.1.4图片素材的本地化
22.2小结
第23章 加密与安全
23.1加密与安全
23.1.1对称加密和非对称加密
23.1.2 3DES加密
23.1.3 SHA1加密
23.1.4 MD5加密
23.1.5越狱情况的判断
23.2小结
第24章 开源框架CocoaPods
24.1CocoaPods、 SPM和Carthage简介
24.1.1为什么使用CocoaPods
24.1.2 CocoaPods的安装及淘宝的镜像使用
24.1.3 Podspec的镜像使用
24.1.4 CocoaPods的实践
24.1.5 pod install和pod update的使用
24.1.6 CocoaPods的卸载
24.2 CocoaPods-app的使用
24.2.1为新项目加入CocoaPods
24.2.2对Podfile的pod install和pod update
24.2.3删除工程中的CocoaPods
24.2.4安装命令行
24.3小结
第25章Git版本控制及GitHub社会化编程实践
25.1Git前奏曲
25.1.1什么是版本控制
25.1.2版本控制简史
25.1.3 Git原理
25.1.4 Git的安装、配置、别名和帮助
25.2 Git基础曲
25.2.1创建本地仓库和关联远程仓库
25.2.2文件在工作区、暂存区和Git本地仓库中的操作
25.2.3查看提交历史
25.2.4撤销操作
25.2.5标签
25.3小结
第26章 项目案例的架构搭建
26.1多人协作的工作流程
26.2技术选型
26.3 MVC及工程结构
26.4 UITabbarController、 UINavigationContller 和Assets.xcassets的搭建
26.4.1 UITabbarController和 UINavigationController
26.4.2 Assets.xcassets管理
26.5小结
第27章Model层相关框架
27.1 XML、 Plist、 JSON数据格式
27.2开启ATS
27.3 AlamofireObjectMapper
27.3.1 AlamofireObjectMapper的安装
27.3.2 AlamofireObjectMapper的使用
27.4 ObjectMapper
27.4.1 ObjectMapper的安装
27.4.2 ObjectMapper中Model与JSON的转换
27.5 Moya
27.5.1 Moya的安装
27.5.2 Moya的使用
27.6小结
第28章 与众平台联姻
28.1ShareSDK联合登录
28.1.1获取AppKey
28.1.2下载SDK
28.1.3快速集成
28.1.4新建Header File并建立桥接
28.1.5打开桥接文件(Bridging-Header.h)
28.1.6添加URL Types
28.1.7查看open.qq.com应用的审核进度
28.2 ShareSDK分享
28.2.1增加QQ平台分享支持
28.2.2增加微信平台分享支持
28.2.3 QQ和微信平台分享的代码实现
28.3聚合数据和LeanCloud
28.3.1聚合数据
28.3.2 LeanCloud
28.4 TalkingData统计
28.5小结
第29章 开发SwiftNews新闻客户端App
29.1SwiftNews App概述
29.1.1修改App Name
29.1.2修改App ICON
29.1.3欢迎页面
29.1.4启动页面
29.1.5 Debug模式下的print
29.1.6桥联SVProgressHUD
29.1.7自定义Cell
29.1.8国内和国际新闻模块
29.1.9图片加圆角和助手类
29.2小结
第30章 应用程序的打包和发布
30.1 iOS应用商店概述
30.1.1 App Store的重大更新
30.1.2在iTunes Connect创建一个App
30.1.3打包App为IPA文件
30.1.4自动化打包App
30.1.5上传App至App Store
30.1.6配置构建版本并提交审核
30.2小结