課程:Swift 2.0 程式設計入門
Swift 是 Apple 全新發明的新時代程式語言,簡潔、易懂、快速、安全。經過短短一
年,Swift 全面進化成2.0,不只成為開發 iOS App 的最佳利器,更因為 Open Source
,讓人看到它未來開發跨平台軟體的無窮潛力。本課程將以彼得潘生動有趣的著作 “Swi
ft 程式設計入門” 為主,輔以全面進化的 Swift 2.0 ,帶領學員十小時練成 Swift 2.
0 神功 !
講師:彼得潘
主辦單位: ALPHA Camp
課程網頁連結: https://www.alphacamp.co/seminars/swift2/
【課程大綱】
1. 新時代的App開發語言 Swift
為了說服大家移情別戀,拋棄 C , Java , Objective-C 轉投 Swift 的懷抱,且聽彼
得潘娓娓道來 Swift 令人難以抗拒的優點。
2. 練功遊樂園 – Playground
Apple 重金打造適合練習 Swift 程式設計的遊樂園: Playground 。在遊樂園裡我們可以
隨心所欲地輸入程式碼,立即見到程式執行的結果,明明白白每行程式造成的善報和惡報
。
3. 說變就變的變數,始終如一的常數
變數像雙子座一樣說變就變,常數像水瓶座一樣始終如一,他們倆都是 App 裡儲存資料
的大功臣。在認識他們兄弟倆的同時,我們也將見識 Swift 可跟福爾摩斯比美的型別推
理奇技和初始值的重要性。
4. Swift 的基本型別
再複雜的程式,最常使用的資料型別還是逃不開數字和字串。且讓我們放慢腳步,如同月
球漫步般,好好熟悉它們的相關操作,尤其字串的置換和相加更是令人愛不釋手,大大簡
化我們開發程式的艱辛。
5. 控制流程的四大天王
If else , switch , while , for ,號稱控制流程的四大天王。我們一定要當他們的
頭號粉絲,好好地崇拜他們,待他們心花怒放,乖乖聽話後,再好好利用他們。唯有掌握
四大天王,才能隨心所欲地控制程式流程,此時想在App裡叫太陽從西邊升起都不是問題。
6. 可有可無的 optional
Swift 全新發明的optional即將登場!有了它,無論何種型別的變數常數,都可像莎士比
亞說的” To be, or not to be ”一樣,可以無值,也可以無值。善用 optional ,將
幫助我們開發更安全更不易閃退的程式!
7. 程式碼居住的溫暖的家 – function
我們希望程式做的大小事,全都包含在一個個的 function 定義裡。有了隨傳隨到的
function ,我們才能方便地於任何時刻呼叫 function ,執行其中千言萬語的程式碼。
8. 遲到大王defer和守護天使 guard
Swift 2.0 多了遲到大王 defer 和守護天使 guard 這對哥倆好,幫助我們創作更厲害更
安全的程式碼。定義於 defer 裡的程式碼有著遲到的天性,總在 function 結束時才執
行,但它使命必達,一定執行。而守護天使 guard 一心一意地檢查我們要求的項目,一
有違規馬上回報,有了它的守護,程式將變得更加安全可靠!
9. 無名卻厲害無比的 closure
closure ,江湖人稱無名 function ,比起已經消失的無名小站,它可厲害不只一百倍。
它的功能跟 function 幾乎一模一樣,但當它化身為function 的參數時,卻可幫助我們
開發更有彈性的程式碼。 closure 的模樣千變萬化,擁有多種簡化的變形,且讓我們張
大眼睛看個仔細,才不會將來看到它時,尷尬地變成最熟悉的陌生人。
10. 無所不在的物件
物件是 App 開發的核心。學習已經進化到一輩子也學不完的 iOS SDK ,正是學習運用
SDK 類別建立物件,操控物件實現各種 App 功能的過程。且讓我們靜下心來,好好地認識
物件,學習關於類別( class ),方法,屬性,初始化等物件使用的基本功。
11. 物件深層探索 – 繼承和型別能力
物件的故事,未完待續! 我們將繼續探討老天爺賜給物件的禮物,免費得到父類別能力的
神奇繼承,以及不需懷胎十月生成物件即可存取的型別方法屬性。
12. 模仿天王 – 和 class 百分之九十雷同的 struct
struct 是 Swift 界臉皮最厚的人。它在一旁偷偷地看著 class ,模仿地唯妙唯俏,幾
乎像是同一個模子印出來的。幸好彼得潘很會剝洋蔥,一層一層地剝開 struct 的心,看
出他們本質上全然不同, class 是 reference 型別, struct 是 value 型別,而且
struct 還偷藏 class沒有的特別功能!
13. 全面進化的 enum
期待有一天人類能全面進化,男人生來帥如劉德華,女人生來美如林志玲。想不到 enum
全面進化的一天比人類還快,在 Swift 裡 enum不再受限整數型別,和 switch 成為最佳
拍檔,甚至還學會傳說中動態設定相關聯資料的特殊能力。
14. 哪裡都是你的case比對
case 很方便,搭配 switch 輕輕鬆鬆,一個不漏地為我們比對所有可能。如此好用的功
能,只讓 switch 一人獨享也未免可惜。 Swift 2.0 裡 case 無所不在,哪裡都是它,
if , for , while 和 guard ,全都可以和 case 天衣無縫地搭配比對!
15. 容納眾多資料的 array , dictionary , set 和 tuple
容納眾多資料,桃園結義的四兄弟 array , dictionary , set 和 tuple 聞名江湖 ,
array 專精排序, dictionary 擅長搜尋, set 絕不重覆, tuple 超會混搭,我們可
以依不同的需求,不同的情境挑選最合適的對象交往,哦,不是啦,是儲存程式裡寶貴的
資料。
16. 關於型別的兩三事 – 成為最有型的型別大師
想成為最有型的型男型女,一定得學會型別使用的進階技巧,諸如化身任意型別的 Any
和 AnyObject ,轉型變身的 as ,比較型別的 is ,型別裡定義型別的 nested type 等
。掌握熟練這些技巧後,未來在程式裡處理任何資料,相信都能遊刃有餘地轉換處理,不
再害怕型別處理不當造成的 compile error 和可怕 crash 。
17. 擴充型別能力的大補帖 – protocol 和 extension
protocol 和 extension 乃名醫華陀私藏的擴充型別能力大補帖,不管是 class ,
struct 還是 enum 通通適用。出一張嘴,只宣告不定義的protocol 方便我們在型別裡定
義方法屬性的行為。 extension 則讓我們擴充原有型別的能力,甚至連內建的型別都可
升級,而 Swift 2.0 裡,protocol 還能結合 extension ,甚至擁有定義預設行為的能
力。學會這些技巧後,實現擁有強大能力的型別就像呼吸一樣簡單!
18. 通吃型別的 generic
平生不識 generic ,就稱英雄也枉然。同樣是通吃型別的大胃王,比起 Any 和
AnyObject , generic 不只擁有接受任意型別的彈性,還多了許多強大的特點,諸如多個
型別條件的設定,不需要轉型,更安全的型別檢查等。
19. 為程式披上金剛防護罩的錯誤處理 – Error Handling
人非聖賢,孰能無過,人寫的程式也一樣,難免有錯。 Swift 2.0 全新推出 Error
Handling 機制,幫助我們完美修復那些年,全天下每個男人(女人)都會犯的錯。