内容简介
本书完全用苹果公司的Swift编程语言进行了重写,读者在创建iOS应用时遇到的许多烦人问题,都可以通过本书介绍的方法得到解决。
本书使用了iOS 8的SDK,读者会在书中找到数百个全新的、改进过的知识点,包括使用健康应用数据和HomeKit配件、增强的动画和绘图、存储和保护数据、收发通知、管理文件和文件夹,等等。每节的示例代码都在Github上,读者可以立即使用
作者简介
Vandad Nahavandipoor,资深iOS和OS X工程师,现就职于一个范围覆盖29个国家、拥有超过7000名员工的国际传媒公司。此前他曾在英国劳埃德银行工作,为数百万英国用户提供iOS应用程序。
精彩书评
“从使用iOS的新特性进行编码到处理复杂的需求,本书总是带给我所需要的资源和优秀、清晰、有实践性的示例。现在,我开始使用Swift,本书成为我的*佳参考,没有它我会迷失。”
——Joao Duarte iOS高级软件工程师
目录
前言 1
第1章 基础知识 9
1.0 介绍 9
1.1 为视图添加模糊效果 17
1.2 使用popover展示临时信息 20
1.3 使用UIImageView显示图片 24
1.4 使用UILabel显示静态文本 28
1.5 使用UIButton向UI中添加按钮 34
1.6 显示警告视图或者操作列表 38
1.7 使用UISwitch创建、使用、自定义开关 43
1.8 使用UIPickerView选取值 47
1.9 使用UIDatePicker选择日期或时间 51
1.10 使用UISlider实现区间滑块 55
1.11 使用UISegmentedControl实现分组的紧凑选项 59
1.12 使用UIActivityViewController显示分享选项 62
1.13 使用UIActivityViewController展示自定义分享选项 67
1.14 在导航栏上显示图片 72
1.15 使用UIBarButtonItem向导航栏添加按钮 73
1.16 使用UITextField接受用户文本输入 78
1.17 使用UITextView显示多行文本 85
1.18 使用UIScrollView创建可滚动的内容 89
1.19 使用WebKit载入网页 92
1.20 使用UIWebView载入网页 95
1.21 使用UIProgressView显示进度 98
1.22 创建配置文件 100
第2章 扩展 107
2.0 介绍 107
2.1 为照片应用添加新的照片编辑能力 110
2.2 向iOS提供自定义分享扩展 117
2.3 构建自定义键盘 126
2.4 通过操作扩展,在应用内部提供服务 132
2.5 向通知中心添加小工具 139
第3章 使用HealthKit管理健康数据 149
3.0 介绍 149
3.1 设置应用以使用HealthKit 149
3.2 获取和修改用户体重信息 152
3.3 访问和修改用户身高信息 158
3.4 获取用户特征 165
3.5 观察用户健康信息变化 169
3.6 读写用户燃烧的总卡路里值 174
3.7 单位转换 186
第4章 使用HomeKit管理家用电器 189
4.0 介绍 189
4.1 模拟HomeKit配件 191
4.2 在HomeKit中管理用户住宅 197
4.3 向用户的住宅添加房间 204
4.4 在用户住宅中指定区域 208
4.5 发现和管理支持HomeKit的配件 213
4.6 与HomeKit配件进行交互 218
4.7 对HomeKit配件进行分组 225
第5章 创建有动态交互性的用户界面 228
5.0 介绍 228
5.1 向UI组件添加重力效果 229
5.2 在UI组件之间检测并响应碰撞 231
5.3 使用推动(push)实现UI组件动画 237
5.4 对动力项目进行关联 241
5.5 向UI组件添加“跳动”效果 245
5.6 为动力特效设定特征 248
第6章 表格视图和集合视图 252
6.0 介绍 252
6.1 填充表格视图数据 253
6.2 为表格视图的单元格添加滑动删除功能 257
6.3 在表格视图中创建页眉和页脚 258
6.4 在表格视图中显示刷新控件 265
6.5 为集合视图提供基本内容 268
6.6 使用.xib 文件填充集合视图的自定义单元格 271
6.7 处理集合视图中的事件 278
6.8 为集合视图提供页眉和页脚 281
6.9 为集合视图添加自定义交互 285
第7章 并发和多任务 289
7.0 介绍 289
7.1 执行UI相关任务 292
7.2 执行非UI相关任务 294
7.3 在特定延时之后执行任务 301
7.4 对某个任务仅仅执行一次 303
7.5 将任务进行分组 305
7.6 使用操作(NSOperation)创建简单并发 307
7.7 在操作间创建依赖关系 312
7.8 触发周期性任务 314
7.9 在后台执行长时间运行的任务 317
7.10 为应用添加后台抓取功能 320
7.11 在后台中播放音频 328
7.12 在后台处理位置变化 331
7.13 在后台处理网络连接 333
第8章 安全 336
第9章 Core Location、iBeacon和地图 370
第10章 手势识别 403
第11章 网络与分享 420
第12章 多媒体 451
第13章 通讯录 474
第14章 文件与文件夹管理 500
第15章 摄像头和照片库 521
第16章 通知 556
第17章 Core Data 594
第18章 日期、日历和事件 628
第19章 图形和动画 657
第20章 Core Motion 708
第21章 Cloud 724
前言/序言
译者序
移动应用开发作为当今最热门的应用开发方向,已经受到全世界开发者的极大关注。一方面,在主流的移动平台iOS中,Swift语言作为这一领域的新贵,无疑会在未来几年赚足眼球。对于原有的iOS开发人员,有喜也有悲。欢喜的是,开发人员终于有了一门更加优秀、更加现代化、更加高性能的编程语言。将Swift作为武器,可以高效地开发出高质量的移动应用。悲伤的是,如果开发人员现在还不开始学习Swift,恐怕用不了多久就会被Swift带来的技术革新无情淘汰。另一方面,iOS本身也在快速地进行技术演进。不同以往,iOS 8引入和开放了许多别出心裁的新技术,如Extensions、HealthKit、HomeKit、TouchID,等等。如果开发人员能够充分利用这些新技术,就可以显著改善应用带给用户的使用体验,进而在移动应用时代取得制高点。在这个时候,我深深地体会到拥有一本优秀教材的重要性。
第一次拿到本书的原版作品时,既兴奋又倍感压力。一方面,本书既介绍了iOS,又介绍了如何用Swift进行实战,与当今的市场需求非常契合。另一方面,随着深入阅读,我深深地被原作者的睿智和才华所打动。本书的内容完整详实,书中例子尽可能追求简单,并切中要害。既可以作为教材供在校师生使用,也可以作为工具书,供一线工程师备查。如何将这样一部优秀的作品尽可能快并且尽可能高质量地呈现给国内的读者,对我们来说是一个前所未有的巨大挑战。
作为美团移动团队的成员,我们都是奋战在一线的iOS开发工程师,但是翻译图书对我们来说仍然是个巨大的挑战。首先是时间,我们需要利用业余时间和尽可能多的碎片时间进行本书的翻译工作,深夜还经常看到小伙伴们仍然在奋笔疾书。不仅如此,我还有些许忧虑,担心自己把握不好原著恰到好处的笔锋,不能有效地将这样一部优秀的作品呈现在读者面前。因此,我们对这次翻译非常用心,与几位合作者一起查阅了大量相关资料,力求做到专业词汇准确权威,将原书的精华呈现给每一位读者。
现在,我怀着期盼和忐忑的心情,将这本译著呈现给大家,渴望得到您的认可,更渴望与您成为朋友,如果您有任何问题和建议,请与我联系(liangshixing@gmail.com),让我们一起探讨,共同进步!
感谢机械工业出版社华章公司的陈佳媛老师对我们的信任与支持。感谢(美团)酒店旅游事业群负责人陈亮建立了这支充满技术热情的移动团队。感谢另外两位主要译者——我的多年好友陈作君以及团队主管赵萌——几个月以来的共同努力。感谢北京航空航天大学的宋友老师和杨思宇同学,他们为本书的定稿和审读提出了大量有建设性的宝贵意见,并做出了许多有创新性的指导工作。感谢团队其他小伙伴,郝田田、王禹华、吴卓和张杰,对本书翻译审读工作的鼎力相助。最后,还要特别感谢家人的理解与包容。
梁士兴
2016年6月于北京
Swift编程实战:iOS应用开发实例及完整解决方案 下载 mobi epub pdf txt 电子书 格式