Swift编程实战:iOS应用开发实例及完整解决方案
Vandad Nahavandipoor
梁士兴, 陈作君, 赵萌 等译
出版时间:2016年06月
页数:776
本书完全用苹果公司的Swift编程语言进行了重写,读者在创建iOS应用时遇到的许多烦人问题,都可以通过本书介绍的方法得到解决。
本书使用了iOS 8的SDK,读者会在书中找到数百个全新的、改进过的知识点,包括使用健康应用数据和HomeKit配件、增强的动画和绘图、存储和保护数据、收发通知、管理文件和文件夹,等等。每节的示例代码都在Github上,读者可以立即使用。

● 使用CloudKit API轻松地向cloud中存储信息
● 创建自定义的键盘和扩展
● 使用HealthKit访问用户健康相关的信息
● 使用HomeKit与用户家中的配件设备进行交互
● 使用UIKit Dynamic创建生机勃勃、栩栩如生的用户界面
● 使用钥匙串保护用户的数据
● 开发位置和多任务相关的应用
● 使用iOS 8的音频和视频API进行工作
● 使用Event Kit UI管理日历、日期和事件
● 使用加速计和陀螺仪
● 获得手势识别的实用技巧
● 从地址簿获取和修改联系人及分组信息
● 检测相机是否可用并访问照片库

“从使用iOS的新特性进行编码到处理复杂的需求,本书总是带给我所需要的资源和优秀、清晰、有实践性的示例。现在,我开始使用Swift,本书成为我的绝佳参考,没有它我会迷失。”
——Joao Duarte
iOS高级软件工程师
  1. 前言
  2. 第1章 基础知识
  3. 1.0 介绍
  4. 1.1 为视图添加模糊效果
  5. 1.2 使用popover展示临时信息
  6. 1.3 使用UIImageView显示图片
  7. 1.4  使用UILabel显示静态文本
  8. 1.5  使用UIButton向UI中添加按钮
  9. 1.6  显示警告视图或者操作列表
  10. 1.7  使用UISwitch创建、使用、自定义开关
  11. 1.8  使用UIPickerView选取值
  12. 1.9  使用UIDatePicker选择日期或时间
  13. 1.10 使用UISlider实现区间滑块
  14. 1.11 使用UISegmentedControl实现分组的紧凑选项
  15. 1.12 使用UIActivityViewController显示分享选项
  16. 1.13 使用UIActivityViewController展示自定义分享选项
  17. 1.14 在导航栏上显示图片
  18. 1.15 使用UIBarButtonItem向导航栏添加按钮
  19. 1.16 使用UITextField接受用户文本输入
  20. 1.17 使用UITextView显示多行文本
  21. 1.18 使用UIScrollView创建可滚动的内容
  22. 1.19 使用WebKit载入网页
  23. 1.20 使用UIWebView载入网页
  24. 1.21 使用UIProgressView显示进度
  25. 1.22 创建配置文件
  26. 第2章 扩展
  27. 2.0 介绍
  28. 2.1 为照片应用添加新的照片编辑能力
  29. 2.2 向iOS提供自定义分享扩展
  30. 2.3 构建自定义键盘
  31. 2.4 通过操作扩展,在应用内部提供服务
  32. 2.5 向通知中心添加小工具
  33. 第3章 使用HealthKit管理健康数据
  34. 3.0 介绍
  35. 3.1 设置应用以使用HealthKit
  36. 3.2 获取和修改用户体重信息
  37. 3.3 访问和修改用户身高信息
  38. 3.4 获取用户特征
  39. 3.5 观察用户健康信息变化
  40. 3.6 读写用户燃烧的总卡路里值
  41. 3.7 单位转换
  42. 第4章 使用HomeKit管理家用电器
  43. 4.0 介绍
  44. 4.1 模拟HomeKit配件
  45. 4.2 在HomeKit中管理用户住宅
  46. 4.3 向用户的住宅添加房间
  47. 4.4 在用户住宅中指定区域
  48. 4.5 发现和管理支持HomeKit的配件
  49. 4.6 与HomeKit配件进行交互
  50. 4.7 对HomeKit配件进行分组
  51. 第5章 创建有动态交互性的用户界面
  52. 5.0 介绍
  53. 5.1 向UI组件添加重力效果
  54. 5.2 在UI组件之间检测并响应碰撞
  55. 5.3  使用推动(push)实现UI组件动画
  56. 5.4 对动力项目进行关联
  57. 5.5 向UI组件添加“跳动”效果
  58. 5.6 为动力特效设定特征
  59. 第6章 表格视图和集合视图
  60. 6.0 介绍
  61. 6.1 填充表格视图数据
  62. 6.2 为表格视图的单元格添加滑动删除功能
  63. 6.3 在表格视图中创建页眉和页脚
  64. 6.4 在表格视图中显示刷新控件
  65. 6.5 为集合视图提供基本内容
  66. 6.6 使用.xib 文件填充集合视图的自定义单元格
  67. 6.7 处理集合视图中的事件
  68. 6.8 为集合视图提供页眉和页脚
  69. 6.9 为集合视图添加自定义交互
  70. 第7章 并发和多任务
  71. 7.0 介绍
  72. 7.1 执行UI相关任务
  73. 7.2 执行非UI相关任务
  74. 7.3 在特定延时之后执行任务
  75. 7.4 对某个任务仅仅执行一次
  76. 7.5 将任务进行分组
  77. 7.6 使用操作(NSOperation)创建简单并发
  78. 7.7 在操作间创建依赖关系
  79. 7.8 触发周期性任务
  80. 7.9 在后台执行长时间运行的任务
  81. 7.10 为应用添加后台抓取功能
  82. 7.11 在后台中播放音频
  83. 7.12 在后台处理位置变化
  84. 7.13 在后台处理网络连接
  85. 第8章 安全
  86. 8.0 介绍
  87. 8.1 使用Touch ID验证用户
  88. 8.2 在应用中启用安全和保护功能
  89. 8.3 在钥匙串中存储数据
  90. 8.4 在钥匙串中查找值
  91. 8.5 更新钥匙串的已有值
  92. 8.6 在钥匙串中删除已有值
  93. 8.7 在多个应用中共享钥匙串数据
  94. 8.8 对iCloud中的钥匙串数据进行读写
  95. 8.9 在应用沙盒中安全存储文件
  96. 8.10 用户界面安全
  97. 第9章 Core Location、iBeacon和地图
  98. 9.0 介绍
  99. 9.1 检测用户在建筑中所在楼层
  100. 9.2 iBeacon介绍和处理
  101. 9.3 定位设备位置
  102. 9.4 在地图上显示大头针
  103. 9.5 在地图上添加自定义大头针
  104. 9.6 在地图上进行搜索
  105. 9.7 在地图上进行导航
  106. 9.8 使用摄像头自定义地图视图
  107. 第10章 手势识别
  108. 10.0 介绍
  109. 10.1 检测轻扫手势
  110. 10.2 检测旋转手势
  111. 10.3 检测拖曳手势
  112. 10.4 检测长按手势
  113. 10.5 检测轻击手势
  114. 10.6 检测捏合手势
  115. 10.7 检测屏幕边缘拖曳手势
  116. 第11章 网络与分享
  117. 11.0 介绍
  118. 11.1 使用NSURLSession下载数据
  119. 11.2 通过NSURLSession在后台下载数据
  120. 11.3 通过NSURLSession上传数据
  121. 11.4 通过NSURLConnection进行异步下载
  122. 11.5 处理异步连接中的超时
  123. 11.6 通过NSURLConnection同步下载
  124. 11.7 自定义URL请求
  125. 11.8 通过NSURLConnection发送HTTP请求
  126. 11.9 序列化和反序列化JSON对象
  127. 11.10 将社交分享整合到应用中
  128. 第12章 多媒体
  129. 12.0 介绍
  130. 12.1 播放音频文件
  131. 12.2 录制音频
  132. 12.3 播放视频文件
  133. 12.4 从视频文件中获取缩略图
  134. 12.5 访问音乐库
  135. 第13章 通讯录
  136. 13.0 介绍
  137. 13.1 在系统界面上获得联系人记录
  138. 13.2 在系统界面上获得联系人信息
  139. 13.3 请求访问通讯录数据库
  140. 13.4 获取通讯录中全部联系人
  141. 13.5 获取通讯录联系人的属性
  142. 13.6 在通讯录中插入联系人信息
  143. 13.7 在通讯录中插入群组
  144. 13.8 添加联系人到群组
  145. 13.9 查找通讯录
  146. 13.10 获取和设置通讯录联系人的图片
  147. 第14章 文件与文件夹管理
  148. 14.0 介绍
  149. 14.1 获得磁盘上最常用的文件夹路径
  150. 14.2 对文件进行读写操作
  151. 14.3 在磁盘中创建文件夹
  152. 14.4 枚举文件和文件夹
  153. 14.5 删除文件和文件夹
  154. 14.6 将对象保存到文件中
  155. 第15章 摄像头和照片库
  156. 15.0 介绍
  157. 15.1 侦测和探查摄像头
  158. 15.2 用摄像头拍摄照片
  159. 15.3 用摄像头拍摄视频
  160. 15.4 在照片库中存储照片
  161. 15.5 在照片库中存储视频
  162. 15.6 检索并获取图像和视频
  163. 15.7 响应图像和视频中的变化
  164. 15.8 编辑设备中的图像和视频
  165. 第16章 通知
  166. 16.0 介绍
  167. 16.1 发送通知
  168. 16.2 监听并响应通知
  169. 16.3 监听并响应键盘通知
  170. 16.4 安排本地通知
  171. 16.5 监听并响应本地通知
  172. 16.6 处理本地系统通知
  173. 16.7 为应用设置推送通知
  174. 16.8 向应用发送推送通知
  175. 16.9 响应推送通知
  176. 第17章 Core Data
  177. 17.0 介绍
  178. 17.1 在Core Data中执行批量更新
  179. 17.2 向Core Data写入数据
  180. 17.3 从Core Data中读取数据
  181. 17.4 从Core Data中删除数据
  182. 17.5 在Core Data中对数据排序
  183. 17.6 在表格视图中提升数据访问
  184. 17.7 在Core Data中实现关系
  185. 17.8 在后台获取数据
  186. 17.9 在Core Data模型中使用自定义数据类型
  187. 第18章 日期、日历和事件
  188. 18.0 介绍
  189. 18.1 构建日期对象
  190. 18.2 获取日期组件
  191. 18.3 请求日历访问权限
  192. 18.4 从iOS设备上获取日历组
  193. 18.5 向日历中添加事件
  194. 18.6 访问日历内容
  195. 18.7 从日历中删除事件
  196. 18.8 向日历中添加重复事件
  197. 18.9 获取事件的出席者
  198. 18.10 向日历中添加提醒
  199. 第19章 图形和动画
  200. 19.0 介绍
  201. 19.1 绘制文本
  202. 19.2 绘制图像
  203. 19.3 构造可变尺寸图像
  204. 19.4 画线
  205. 19.5 构造路径
  206. 19.6 绘制矩形
  207. 19.7 为形状添加阴影
  208. 19.8 绘制渐变
  209. 19.9 变换视图
  210. 19.10 进行视图动画
  211. 第20章 Core Motion
  212. 20.0 介绍
  213. 20.1 获取高度数据
  214. 20.2 获取计步器数据
  215. 20.3 侦测加速计是否可用
  216. 20.4 侦测陀螺仪的可用性
  217. 20.5 获取加速计数据
  218. 20.6 侦测iOS设备的摇动
  219. 20.7 获取陀螺仪数据
  220. 第21章 Cloud
  221. 21.0 介绍
  222. 21.1 在您的应用中使用CloudKit
  223. 21.2 使用CloudKit储存数据
  224. 21.3 使用CloudKit获取数据
  225. 21.4 使用CloudKit查询Cloud内容
  226. 21.5 观察CloudKit中记录的变化
  227. 21.6 从CloudKit中获取用户信息
  228. 21.7 在iCloud中储存和同步字典
  229. 21.8 在iCloud中创建并管理文件和文件夹
  230. 21.9 在iCloud中搜索文件和文件夹
书名:Swift编程实战:iOS应用开发实例及完整解决方案
译者:梁士兴, 陈作君, 赵萌 等译
国内出版社:机械工业出版社
出版时间:2016年06月
页数:776
书号:978-7-111-53927-8
原版书书名:iOS 8 Swift Programming Cookbook
原版书出版商:O'Reilly Media
Vandad Nahavandipoor
 
Vandad Nahavandipoor已经从事Cocoa、汇编、Delphi、.NET和Cocoa Touch软件开发很多年,对iPhone OS的开发始于SDK发布之时。从那以后,他便致力于开发基于iPhone的应用,现在也包括iPad。Vandad在开发iOS应用的过程中最有价值的资本是他在与一些向顾客提供移动应用的世界大品牌合作中积累的实际经验,如Visa和U.S.Bank。
 
 
封面中的红嘴热带鸟(Phaethon aethereus)也被称作水手长鸟。热带鸟看起来像是燕鸥,但在遗传学上并没有联系。实际上,热带鸟没有非常相近的现存物种,这令它们的进化多了几分神秘色彩。2009年开始,红嘴热带鸟被选作了百慕大50美元钞票的图案,但随后便被本地的白尾热带鸟所替代,因为白尾鸟在百慕大更为出名。
红嘴热带鸟体型庞大,有长长的尾巴,身体为白色,同时有着向下弯曲的的红色鸟喙。算上尾羽的话,差不多能有40英寸长。一米长的翼展可以让身体保持平衡,成为优雅的飞行者。它们的飞羽和眼睛上有黑色的斑。雄鸟和雌鸟看起来很相似,只不过雄鸟的尾巴会更长。红嘴热带鸟的脚非常靠近身体的后方,因此它们在陆地上移动起来非常滑稽笨拙,而腹部几乎贴到地面。它们也不是敏捷的游泳者,但可以舒适地盘旋在海洋上空,伺机捕捉飞鱼。飞鱼看起来是这些热带鸟的最爱,但它们同样也会吃其他的鱼甚至是头足类动物。
红嘴热带鸟生活在如加拉帕戈斯群岛、佛得角、西印度群岛,甚至是波斯湾等地。尽管它们偏爱温暖和热带海水,但有一类特定的红嘴热带鸟每年都会返回缅因州沿海的海豹岛。缅因州的这一带有大量的海鸟,但这一类则是只有在北部才能找到的种类。几年前,本地人摆放了一个木雕的热带鸟模型,有个拜访者竟然令人费解地尝试向它求爱并进行交配。而对于带领游客观看本地海鸭和黑海鸥的船主来说,参观这只鸟无疑是一桩非常好的生意。
本书封面图片来自《Riverside Natural History》。