本书分为四部分,涵盖以下内容:Swift基础知识,学习Swift的面向对象特性,以及各种开发工具。OS X应用开发,规划应用,处理文档,然后构建各项功能。iOS应用开发,使用多媒体、联系人、位置、通知和iCloud构建一个功能完善的iOS记事本应用。高级应用扩展,支持Apple Watch,学习如何调试、监控和测试全部三个Swift应用。
本书讲解常用的Swift设计模式、Apple平台中应用的结构,还会说明如何把应用提交到App Store。构建真实可用的OS X和iOS应用,动手实践Swift编程语言。
欢迎阅读本书!我们将为Apple 的 OS X 、iOS 和 watchOS 平台开发一个笔记应用,让你实践Swift 编程语言。
Swift 是一门出色的现代语言,借鉴了其他新式语言的最佳实践,而没有重新发明轮子。Swift 易于编写、易于学习,极难犯错。
我们认为,学习Swift 的最佳方法是使用它构建应用。不过,若想构建应用,需要趁手的框架,而Apple 为我们提供了好多,例如Cocoa、Cocoa Touch 和WatchKit 。本书的书名也可以改成“通过 Swift 学习Cocoa 和Cocoa Touch”,因为框架和语言本身同等重要。写作本书时,Swift 的当前版本是2.2,而且未来一片光明。
书中使用的资源,我们建议你在阅读每一章的同时自己动手编写代码。如果卡住了,或者想获取一份代码,可以访问我们的网站(http://www.secretlab.com.au/books/learning-swift )。本书的目的是教你构建真实的应用,主要集中讲解代码,不是让你设计图标,我们已经为你准备好了。图标也可以从我们的网站中下载。
本书只讲Swift ,不涉及Objective-C 。我们偶尔会提及后者,但是不要求你知道如何使用它。本书先讲Swift 的基础知识,然后分别为OS X 和iOS 构建一个完整的应用,在这个过程中学习Cocoa、 Cocoa Touch 和watchOS 框架。注意,Swift 是编程语言,Cocoa 是开发OS X 应用的框架,Cocoa Touch 是开发 iOS 应用的框架,而watchOS 是开发 Apple Watch 应用的框架。
本书采用的教学方式与其他编程书不同。前面说过,我们认为学习Swift 的最佳方法是使用它构建应用。我们假定你有一定的编程基础,但是不假设你曾为OS X 或iOS 做过开发,或者之前用过Swift或Objective-C。我们还假设你能熟练操作 OS X 和 iOS。
……
感谢技术审校,尤其是 Chris Devers 和 Tony Gray ,感谢他们细致且专业地审校。
最后,非常感谢你购买我们的书,谢谢你!如果你有什么要反馈,请联系我们。你可以发电子邮件给我们,地址是lab@secretlab.com.au ;也可以在Twitter 上联系@ thesecretlab
(http://twitter.com/thesecretlab )。
前言 1
第一部分 Swift 基础
第1章新手入门 9
11 Apple开发者计划 11
12 使用Xcode创建第一个项目 13
13 开发一个简单的Swift应用 26
14 使用iOS模拟器 30
15 小结 32
第2章 Swift基础 33
21 Swift编程语言 34
22 Playground 36
23 注释 38
24 流程控制 38
25 变量和常量 42
26 运算符 43
27 类型 44
28 处理字符串 45
29 函数和闭包 56
210 小结 63
第3章 Swift面向对象应用开发64
31 类和对象 64
32 结构体 77
33 模块 78
34 Swift标准库、Foundation、Cocoa和Cocoa Touch 78
35 数据 79
36 错误处理 81
37 内存管理 83
38 Cocoa和Cocoa Touch 采用的设计模式 84
39 应用的结构 88
310 小结 89
第二部分 构建一个OS X应用
第4章 构建OS X记事本应用的前期准备工作93
41 设计这个OS X记事本应用93
42 创建OS X应用项目97
43 定义文档类型 101
44 添加图标 106
45 小结 108
第5章 在OS X中处理文档 109
51 NSDocument类 109
52 在文档中存储数据 110
53 存储文本 111
54 基本的UI 120
55 小结 128
第6章 用户界面和 iCloud 129
61 更新UI 129
62 附件和文件扩展名的UI 133
63 增强附件系统 154
64 通过拖曳添加附件 159
65 iCloud 166
66 iCloud基础 167
67 小结 170
第三部分 构建一个iOS应用
第7章 构建iOS记事本应用的前期准备工作173
71 设计这个iOS应用 174
72 创建iOS应用项目 179
73 为iOS应用启用iCloud 183
74 定义文档类型 187
75 小结 189
第8章 处理iCloud中的文件190
81 应用沙盒 190
82 iCloud 的可用性 192
83 创建文档列表视图控制器 192
84 定义 Document 类204
85 列出文档 210
86 创建文档 218
87 从iCloud中下载文件 221
88 删除文档 225
89 重命名文档 231
810 小结 235
第9章 在iOS中处理文档 236
91 添加显示笔记的视图 236
92 编辑和保存文档 244
93 小结 246
第10章 处理文件和文件类型 247
101 设计附件的界面 247
102 列出附件 251
103 处理冲突 261
104 创建快速查看缩略图 267
105 小结 269
第11章 图像和删除 270
111 添加附件 270
112 添加图像附件 272
113 查看附件 277
114 删除附件 286
115 小结 293
第12章 支持iOS生态系统294
121 通过UIActivityController实现分享 294
122 Handoff 297
123 可搜索性 301
124 小结 303
第13章 扩展iOS应用 304
131 使用Spotlight索引扩展搜索305
132 “今天”小组件 315
133 小结 323
第14章 多媒体、联系人、位置和通知324
141 位置附件 324
142 音频附件 338
143 视频附件 350
144 联系人附件 356
145 通知 360
146 小结 371
第15章 改进这个iOS应用372
151 朗读文本 372
152 在SFSafariViewController 中打开链接 374
153 设置 380
154 撤销功能 381
155 图像滤镜 384
156 全球化应用 388
157 辅助功能 396
158 分屏多任务 400
159 小结 401
第四部分 扩展应用
第16章 构建一个watchOS应用 405
161 为Apple Watch 设计 406
162 设计我们的watchOS应用 407
163 创建watchOS扩展 409
164 小结 441
第17章 代码质量和应用分发 442
171 调试 442
172 Instruments 444
173 测试 449
174 在同一个项目中同时使用Objective-C和Swift 453
175 App Store 454
176 小结 457