五個改用最新Swift程式語言開發iOS App的理由

在這次的WWDC 2014中,Apple的iOS 8竟然開放了超過4000個API呀!開放的數量是有史以來最大的。這些API涵蓋了相當多的層面,如個人健康管理的HealthKit、智慧家庭的HomeKit、以及雲端存取的CloudKit….等。

但是最令人震撼的,則是Apple宣布將以最新程式語言Swift取代既有的Objective-C!這個訊息應該讓很多人感到意外,因為Apple已經使用Objective-C將近20年了,為什麼會在這個時候把他們的主流開發語言更換成一個全新的程式語言Swift(雨燕)呢?

swift0

Apple請iOS開發者轉向Swift的理由,經過歸納後大概有以下五點:

1. Swift執行速度更快

從Complex object sort的執行速度來比較,Swift執行的速度是Python的3.9倍,而舊的Objective-C則只有2.8倍!

swift1

而從RC4 encryption的執行速度比較,Swift執行的速度是Python的220倍,而舊的Objective-C只有127倍!

swift2

2. Swift比Objective-C更簡潔易用

原本在Objective-C上面要撰寫很多行的程式:

swift3

在Swift上只要一行:

swift4

3. Swift比Objective-C更安全

Swift的設計避免了許多開發者在撰寫程式時常犯的錯誤,像是goto、pointers的錯誤使用、緩衝區溢位、變數沒有初始化、設定了不安全的字串格式…等問題,也因為避免了這些問題,而讓它成為更安全的程式語言。

swift5

4. Swift與Objective-C可以相容於同一個iOS 8應用程式

貿然讓Swift獨挑大梁是有風險的,因此Apple宣布Swift可以跟Objective-C以及C同時相容於同一個應用程式中,也就是在iOS 8,開發者可以在現有的Objective-C程式中加入Swift的程式碼,而不會出現編譯錯誤。

這個目的應該是讓開發者有個過渡期,讓原本寫好的Objective-C程式碼仍可發揮作用,但是在未來開發者熟悉Swift之後,原先的Objective-C可能就會慢慢失去其相容性

swift6

5. Swift具備Objective-C所沒有的強大互動性

在最新的Xcode 6 beta中,提供了一個新功能Playgrounds(遊樂場),透過它撰寫Swift程式,將可以即時顯示程式的結果!例如下圖這個例子,工程師撰寫了一個變數s,並且讓它等於”Hello” + “WWDC!”,畫面的右邊就立即顯示變數s目前的結果是什麼。

playgrounds1

而Playgrounds的功能不僅如此,除了變數內容的呈現,它還可以透過圖表的時間軸方式檢視程式的進行,如果你撰寫的是一個遊戲程式的話,那麼它還可以進行遊戲的動態播放!

playgrounds2

快速結論

新的Swift程式語言在「執行速度、易用性、安全性、舊語言相容性、即時互動性」等五大特點上表現傑出,尤其是它的新語法簡潔易懂,撰寫程式時又可以即時取得結果,這些新特點勢必吸引不少原先觀望的開發者投入iOS的開發行列。

而對於原先的iOS開發者來說,我認識的許多開發者都已經爭相投入研究Swift的語法,並且也陸續在論壇提供了一些他們的心得,對於Swift的新語法與即時互動性大多給予正面的評價,以此推斷,Swift應該很快就可以取代Objective-C,成為iOS開發的主要程式語言!

喜歡這篇文章嗎?

立即訂閱部落格,你不會再錯過任何新內容,我還會再送你三段iOS課程影片作為訂閱的禮物!

You have Successfully Subscribed!

  • Pingback: 五個改用最&#26032...()

  • mouse

    Leo您好,有段是這樣說”Apple宣布Swift可以跟Objective-C以及C同時相容於同一個應用程式中,也就是在iOS 8″,是說Swift只能在iOS8以上執行,所以若使用者是iOS 6 or 7,就不能使用Swift所開發的App嗎?

    • http://leolinn.com/ Leo

      當然不是!Swift開發的App可支援iOS 7或以上,只有iOS 6或以下的才不支援!而iOS 7市佔率已達91%,也就是Swift開發的App目前可支援91%的iOS裝置,而未來iPhone 6發售後,支援比例可望再繼續上升!

  • Pingback: 史丹佛大學2015年iOS開發課程分享(使用Swift/Xcode 6) | App開發輕鬆學 – Leo的部落格()