Q1:為什麼要學Swift,而不是Objective C?
自2014年Swift推出以來,掀起一番熱潮,十分受開發者青睞。除了Apple這幾年來致力推廣Swift外,最主要原因在於Swift簡化了Objective C裡面許多複雜的程式語言架構,專門設計給無程式基礎的人。
讓許多人在無需冗長專業訓練的情況下可以學習Swift,語法的使用更簡潔、更直覺。
根據TIOBE統計(update to 2017/05),不難發現Swift的使用者已逐漸成為macOS / iOS開發主流,應用框架開發已逐漸從Objective-C移轉到Swift。
↑ ↑ 201705 TIOBE統計資料
↑ ↑ 2014 至今 Swift成長趨勢
Q2:Swift有什麼特點讓開發者這麼喜愛?
- 語言集合很多程式語言的特性以及優點
集合Objective-C、Python、Ruby與 JavaScript等特性、優點,以簡單直覺的程式碼來實現原本較為複雜的程式碼,來實現的功能。
- 更安全、更不容易犯錯
Swift 取消了指標等機制,讓程式碼更加的安全,更不容易因此而出錯或者Crash。
- 相當高度的彈性以及自由度
讓開發者可以更輕易的進行開發,並且簡化了語言的結構、少了標頭檔、省略每一行 Code 最後的分號以及省略變數型態等,讓整個程式語言更加的簡潔。
- 完整的支援Unicode
連中文、圖形化文,也都可以變成程式語言的一部分。
- 提供的Playground
讓開發者可以更容易的預覽程式碼片段的執行結果,更容易的分析以及觀看目前程式碼的運行是否正常與如預期。
Q3:學習Swift需要有什麼開發工具?
不用多想,當然要有一台Mac,然後下載Xcode。有了Mac後,還需注意相關硬、軟體的需求,有時候無法下載Xcode跟OS系統的版本有關係,需要多做留意。
規格如下 :
軟體需求 | 硬體需求 |
|
|
↑ ↑ 資料更新於2017/05/09 (Xcode8.3.2、Swift3.1)
但是,如果沒有Mac怎麼辦?不用先急著買Mac也有其他管道可以學習Swift。
1. IBM有提供線上Playground讓沒有Mac的人可以使用。
由於Swift語言已經OpenSource,與IBM合作推出了這個網頁版的Swift 練習環境。
2. 雲端 Mac 可以租借
可以在自己的電腦使用Mac操作介面,有多種租借的方案可選擇。
3. iPad下載Swift Playgrounds
今年三月也推出了中文版本(簡體),透過輕鬆玩遊戲學習Swift語言。
Q4:網路上那麼多的教學平台,要如何開始自學Swift?
Apple在Swift上花了許多心思,光是官方提供的教學資源平台就有兩~三個,裡面已有許多相當詳細的資源,若是大多以英文為主,但也有中文版本可供參考。
1. Swift程式語言電子書iBooks Store免額外付費下載
官方版 https://itunes.apple.com/us/book/the-swift-programming-language/id881256329?mt=11
中文版 https://itisjoe.gitbooks.io/swiftgo/content/ch1/ch1.html
針對開發者提供的swift領域相關資訊,內有許多資源,像是simple code、API Reference,還有 與iOS、Mac、Apple TV、Apple Watch的app開發相關教學。
3. Swift.org社群
開放原始碼授權,讓各種開發人員、教育工作者和學生使用。
其他,非官方的學習平台也有不少,下面列舉近年較為知名的網站:
1. Stanford iOS
最為知名的是史丹佛大學在iTunes提供免費線上課程,至今仍有不斷更新課程。
提供24種Swift基礎用法,透過解釋程式碼範例,來了解Swift語言。
Ray Wenderlich是一個專業的國外教學網站,專注於iOS開發以及App遊戲設計。
有些免費,有些付費。
開發者Sam Lu分享了他學習100天Swift的歷程,平台上呈現了他在這100天完成的40幾個練習,另外也有付費教學影片給想要學習的人。
Q5:還有什麼自學Swift需要注意?
Swift作為一個新語言,以短短三年的時間,就已有驚人的成長率,不外乎是由於其本身作為macOS / iOS系統開發語言。雖然仍在初期階段,從最早的Xcode 6.0到現在的Xcode 8.0有不少差異,仍需開發者做適時的調整。目前還有諸多的Bug以及不穩定的地方,有待Apple去做改善。另外,對於初學者來說,第三方套件的使用也需要格外小心,因Swift語言的改版非常的快速,所以第三方套件能否即時更新,存在著日後會有維護與升級上的問題。