那些用 Swift 編寫的開源 App

jopen 9年前發布 | 32K 次閱讀 Swift Apple Swift開發

Swift 已經正式面世一年,而它的 2.0 版本(在我看來是真正的 1.0)也將于今年秋季正式發布,這一年,到底有多少公司、團隊開始使用 Swift,并且將他們的 App 用 Swift 來寫了呢?

對于新技術的采納,我相信無論誰都會持謹慎態度的,不僅是因為新技術本身通常意味著不穩定和不成熟,并且可能會遇到各種問題最后被宣布放棄。比如 Google 的 SPDY 協議,還有 Apple 曾經推廣過的 Garbage Collection 技術,都屬于「新事物」,但不再維護、有更新東西替代的東西。

Swift 作為一門新語言的命運會如何?根據我一年多來針對 Apple 公司及整個生態圈的觀察,我的判斷是,會成為 Apple 和這個生態圈的主力語言。關于為何得出這個結論又可長篇大論一番,總之今天我想簡單地說說,世面上有多少 App 已經用 Swift 來寫了,讓正在觀望的同學能有個參考。

評判標準

關于「用 Swift 寫的 App」,有個疑問是:到底怎么樣的一個 App 才算是用 Swift 寫的?因為 Apple 對 Swift 語言和 Objective-C 的無縫溝通做了很大的努力,這意味著在你的 App 中可以只用 Swift 來寫其中一部分。我總不能將一個只用 Swift 寫了 1% 的代碼的 App 稱作 Swift App。因而我的標準是: 50% 以上的代碼是用 Swift 寫(不包括第三方庫),或者正在用 Swift 逐步重寫原 Objective-C 代碼的 App

那么如何驗證?兩個方法:第一個方法,通過 OS X 的 iTunes 下載這個 App 的 IPA 包,解包以后看 App 里面有沒有一個 Frameworks 目錄,里面有 Swift 的運行庫,但這個方法只能判斷這個 App 用了 Swift,而不能判斷是不是主要以 Swift 寫。第二個方法,當然是通過業界一些活動和會議上的分享,也就是開發團隊主動告之外界的形式。

OK,讓我們開始吧!

那些用 Swift 編寫的開源 App

WWDC:  https://itunes.apple.com/app/wwdc/id640199958?mt=8

WWDC 應該是這個世界上第一款用 Swift 寫的并且正式發布出來的 App。也就是去年 WWDC 14 的時候,Apple 在推出 Swift 的時候,同時在某個渠道說明 WWDC 這款 App 就是用 Swift 寫的…不過目前來源找不著了。

現在我還不知道 Apple 還有哪些 App 用 Swift 寫的,目前還知道一個比較重要的信息是:iOS 9 和 OS X 10.11 的 Dock 和 Calendar 是用 Swift 寫的,具體見 Apple 的雇員發的 推ter: https://推ter.com/jckarter/status/608441279677128705

所以說,Apple 已經用 Swift 語言來寫自己的 App 和操作系統的部分組件了,不然怎么能說服我們也去用呢?

那些用 Swift 編寫的開源 App

奇點: https://itunes.apple.com/app/qi-dian-for-wei-bo/id947792507?mt=8

第二個 App 當然要拿我自己的作品「奇點」來作例子了。我在 2014 年 7 月 13 日寫下這個項目的第一行代碼,歷經了 Swift 1.0 的 N 個 Beta,一直折騰到 Swift 1.2,未來還會將其用 Swift 2 來重構。可謂 Swift 的「忠粉」,也是吃盡酸甜苦辣。

當時只是本著操練新語言的嘗試心態寫了一個 demo,每想到寫著寫著就下決心寫成正式的 App 了。當然這有另外一個故事。總之,奇點里盡管有極少部分的代碼仍用 Objective-C 寫(涉及到 C Function Pointer 部分),但整個項目真是 99.9% 的 Swift。

在 9 月份 Swift 2 正式發布以后,我也會把它變成 100% 的 Swift 項目,同時分享更多開發心得。

那些用 Swift 編寫的開源 App

Coursera:  https://itunes.apple.com/app/coursera/id736535961?mt=8

Coursera 的大名想必不需要介紹了,我在去年的時候在某個技術分享視頻看到來自 Coursera 的員工的分享,就知道 Coursera 已經用上 Swift 了。很遺憾今天我找不到這個視頻分享了,不過我從他們的官方技術博客里看到一篇《 Writing a Custom Control for iOS 8 using Swift and Auto Layout 》,嗯,這也是證明他們用了 Swift 的一個技術。

那些用 Swift 編寫的開源 App

Duolinggo Test Center: https://itunes.apple.com/app/duolingo-test-center/id929167184?mt=8

如果你可能不知道這個 Test Center,那么你一定知道 Duolingo(多鄰國)。這是由 Duolingo 出品的一個用來測試英文水平的工具,根據官方的文章《 Real World Swift 》,這是一個 100% 用 Swift 寫的 App,這篇文章干貨十足,非常值得一看。另外,和官方在文章中透露的一樣,Duolingo 這個 App 本身也正在用 Swift 進行一個「漸進式重寫」的過程,不信你可以自己解包看看,里面有 Swift 的運行庫。沒準某天一個大版本更新后,Duolingo 已經是個 100% Swift App 了。

那些用 Swift 編寫的開源 App

SlideShare: https://itunes.apple.com/app/slideshare-presentations-official/id917418728?mt=8

SlideShare 相信大家也不陌生,這是老牌的一個 Slide (Keynote/PPT) 分享網站,只是我不知道它是什么時候被 LinkedIn 收購了?!回到正題,SlideShare 團隊是我目前已知分享 Swift 經驗很頻繁的一個團隊。在他們的 Engineering 網站上,不到一年的時間他們一共分享過兩篇文章:

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!