本書分為四部分,涵蓋以下內(nèi)容:Swift基礎(chǔ)知識,學(xué)習(xí)Swift的面向?qū)ο筇匦裕约案鞣N開發(fā)工具。OS X應(yīng)用開發(fā),規(guī)劃應(yīng)用,處理文檔,然后構(gòu)建各項功能。iOS應(yīng)用開發(fā),使用多媒體、聯(lián)系人、位置、通知和iCloud構(gòu)建一個功能完善的iOS記事本應(yīng)用。高級應(yīng)用擴展,支持Apple Watch,學(xué)習(xí)如何調(diào)試、監(jiān)控和測試全部三個Swift應(yīng)用。
本書講解常用的Swift設(shè)計模式、Apple平臺中應(yīng)用的結(jié)構(gòu),還會說明如何把應(yīng)用提交到App Store。構(gòu)建真實可用的OS X和iOS應(yīng)用,動手實踐Swift編程語言。
歡迎閱讀本書!我們將為Apple 的 OS X 、iOS 和 watchOS 平臺開發(fā)一個筆記應(yīng)用,讓你實踐Swift 編程語言。
Swift 是一門出色的現(xiàn)代語言,借鑒了其他新式語言的最佳實踐,而沒有重新發(fā)明輪子。Swift 易于編寫、易于學(xué)習(xí),極難犯錯。
我們認(rèn)為,學(xué)習(xí)Swift 的最佳方法是使用它構(gòu)建應(yīng)用。不過,若想構(gòu)建應(yīng)用,需要趁手的框架,而Apple 為我們提供了好多,例如Cocoa、Cocoa Touch 和WatchKit 。本書的書名也可以改成“通過 Swift 學(xué)習(xí)Cocoa 和Cocoa Touch”,因為框架和語言本身同等重要。寫作本書時,Swift 的當(dāng)前版本是2.2,而且未來一片光明。
書中使用的資源,我們建議你在閱讀每一章的同時自己動手編寫代碼。如果卡住了,或者想獲取一份代碼,可以訪問我們的網(wǎng)站(http://www.secretlab.com.au/books/learning-swift )。本書的目的是教你構(gòu)建真實的應(yīng)用,主要集中講解代碼,不是讓你設(shè)計圖標(biāo),我們已經(jīng)為你準(zhǔn)備好了。圖標(biāo)也可以從我們的網(wǎng)站中下載。
本書只講Swift ,不涉及Objective-C 。我們偶爾會提及后者,但是不要求你知道如何使用它。本書先講Swift 的基礎(chǔ)知識,然后分別為OS X 和iOS 構(gòu)建一個完整的應(yīng)用,在這個過程中學(xué)習(xí)Cocoa、 Cocoa Touch 和watchOS 框架。注意,Swift 是編程語言,Cocoa 是開發(fā)OS X 應(yīng)用的框架,Cocoa Touch 是開發(fā) iOS 應(yīng)用的框架,而watchOS 是開發(fā) Apple Watch 應(yīng)用的框架。
本書采用的教學(xué)方式與其他編程書不同。前面說過,我們認(rèn)為學(xué)習(xí)Swift 的最佳方法是使用它構(gòu)建應(yīng)用。我們假定你有一定的編程基礎(chǔ),但是不假設(shè)你曾為OS X 或iOS 做過開發(fā),或者之前用過Swift或Objective-C。我們還假設(shè)你能熟練操作 OS X 和 iOS。
……
感謝技術(shù)審校,尤其是 Chris Devers 和 Tony Gray ,感謝他們細(xì)致且專業(yè)地審校。
最后,非常感謝你購買我們的書,謝謝你!如果你有什么要反饋,請聯(lián)系我們。你可以發(fā)電子郵件給我們,地址是lab@secretlab.com.au ;也可以在Twitter 上聯(lián)系@ thesecretlab
(http://twitter.com/thesecretlab )。
前言 1
第一部分 Swift 基礎(chǔ)
第1章新手入門 9
11 Apple開發(fā)者計劃 11
12 使用Xcode創(chuàng)建第一個項目 13
13 開發(fā)一個簡單的Swift應(yīng)用 26
14 使用iOS模擬器 30
15 小結(jié) 32
第2章 Swift基礎(chǔ) 33
21 Swift編程語言 34
22 Playground 36
23 注釋 38
24 流程控制 38
25 變量和常量 42
26 運算符 43
27 類型 44
28 處理字符串 45
29 函數(shù)和閉包 56
210 小結(jié) 63
第3章 Swift面向?qū)ο髴?yīng)用開發(fā)64
31 類和對象 64
32 結(jié)構(gòu)體 77
33 模塊 78
34 Swift標(biāo)準(zhǔn)庫、Foundation、Cocoa和Cocoa Touch 78
35 數(shù)據(jù) 79
36 錯誤處理 81
37 內(nèi)存管理 83
38 Cocoa和Cocoa Touch 采用的設(shè)計模式 84
39 應(yīng)用的結(jié)構(gòu) 88
310 小結(jié) 89
第二部分 構(gòu)建一個OS X應(yīng)用
第4章 構(gòu)建OS X記事本應(yīng)用的前期準(zhǔn)備工作93
41 設(shè)計這個OS X記事本應(yīng)用93
42 創(chuàng)建OS X應(yīng)用項目97
43 定義文檔類型 101
44 添加圖標(biāo) 106
45 小結(jié) 108
第5章 在OS X中處理文檔 109
51 NSDocument類 109
52 在文檔中存儲數(shù)據(jù) 110
53 存儲文本 111
54 基本的UI 120
55 小結(jié) 128
第6章 用戶界面和 iCloud 129
61 更新UI 129
62 附件和文件擴展名的UI 133
63 增強附件系統(tǒng) 154
64 通過拖曳添加附件 159
65 iCloud 166
66 iCloud基礎(chǔ) 167
67 小結(jié) 170
第三部分 構(gòu)建一個iOS應(yīng)用
第7章 構(gòu)建iOS記事本應(yīng)用的前期準(zhǔn)備工作173
71 設(shè)計這個iOS應(yīng)用 174
72 創(chuàng)建iOS應(yīng)用項目 179
73 為iOS應(yīng)用啟用iCloud 183
74 定義文檔類型 187
75 小結(jié) 189
第8章 處理iCloud中的文件190
81 應(yīng)用沙盒 190
82 iCloud 的可用性 192
83 創(chuàng)建文檔列表視圖控制器 192
84 定義 Document 類204
85 列出文檔 210
86 創(chuàng)建文檔 218
87 從iCloud中下載文件 221
88 刪除文檔 225
89 重命名文檔 231
810 小結(jié) 235
第9章 在iOS中處理文檔 236
91 添加顯示筆記的視圖 236
92 編輯和保存文檔 244
93 小結(jié) 246
第10章 處理文件和文件類型 247
101 設(shè)計附件的界面 247
102 列出附件 251
103 處理沖突 261
104 創(chuàng)建快速查看縮略圖 267
105 小結(jié) 269
第11章 圖像和刪除 270
111 添加附件 270
112 添加圖像附件 272
113 查看附件 277
114 刪除附件 286
115 小結(jié) 293
第12章 支持iOS生態(tài)系統(tǒng)294
121 通過UIActivityController實現(xiàn)分享 294
122 Handoff 297
123 可搜索性 301
124 小結(jié) 303
第13章 擴展iOS應(yīng)用 304
131 使用Spotlight索引擴展搜索305
132 “今天”小組件 315
133 小結(jié) 323
第14章 多媒體、聯(lián)系人、位置和通知324
141 位置附件 324
142 音頻附件 338
143 視頻附件 350
144 聯(lián)系人附件 356
145 通知 360
146 小結(jié) 371
第15章 改進(jìn)這個iOS應(yīng)用372
151 朗讀文本 372
152 在SFSafariViewController 中打開鏈接 374
153 設(shè)置 380
154 撤銷功能 381
155 圖像濾鏡 384
156 全球化應(yīng)用 388
157 輔助功能 396
158 分屏多任務(wù) 400
159 小結(jié) 401
第四部分 擴展應(yīng)用
第16章 構(gòu)建一個watchOS應(yīng)用 405
161 為Apple Watch 設(shè)計 406
162 設(shè)計我們的watchOS應(yīng)用 407
163 創(chuàng)建watchOS擴展 409
164 小結(jié) 441
第17章 代碼質(zhì)量和應(yīng)用分發(fā) 442
171 調(diào)試 442
172 Instruments 444
173 測試 449
174 在同一個項目中同時使用Objective-C和Swift 453
175 App Store 454
176 小結(jié) 457