Swift 2.0 中字符串設計的背后思想 - iOS移動開發周報
新聞
-
Apple 公布第三財季公報 :iPhone 的銷量持續增長,在 2015 年第三財季,Apple 共售出了 4750 萬部 iPhone 手機。在 Apple Watch,Mac 和 App Store 的協力下,本季度 Apple 同比完成了 33% 的利潤增長,相較去年同期的增長率而言穩中有升。但是一個很明顯的現象是 iPad 的銷售并不如人意,這大概是因為大屏 iPhone 面世所造成的手機和 iPad mini 使用情景上有一些重疊的結果。值得一提的是,除了美國本土外,全球市場的銷售利潤占了 Apple 本財季 64% 的額度,其中在大中華區的利潤增長率更是達到了驚人的 112%,已經成為 Apple 增長的最主要驅動力。
-
iOS 9 和 OSX EI Capitan Public Beta 第二版發布 :從去年開始 Apple 就開放了所謂的 public beta,允許一般用戶使用和幫助測試最新的 beta 軟件。相比于 developer beta,public beta 的測試版本更加穩定,之后也可以直接升級到正式版本。喜歡嘗鮮但是又不需要為新版 OSX 系統做開發的朋友可以嘗試一下。
教程
-
《Strings in Swift 2》 :一篇來自官方的 Swift 博客,為我們講述了新版本中
String
類型的設計思想的變化理由。對字符串的處理在各個語言中都是有很多細節需要注意的。在 Objective-C 里由于一些歷史原因,NSString
其實是有很多不足的。Swift 1 中的String
可以說是真正有機會拋開原來的歷史包袱,而現在借著 Swift 2 中 protocol extension 的引入,String
也有了更好的實現方式。相信通過閱讀這篇文章你能對字符串有更好地理解。 -
《后臺定位上傳的代碼實踐》 :這篇文章為我們講述了一些在后臺定位用戶位置以及上傳位置信息的一些實踐。文章總結了和比較了幾種可能的實現方式和對應的 API 使用方法,雖然這個需求在一些基于位置推薦的 app 中是挺常見的,但是其實現在還并沒有非常穩定和可靠的方法來做這件事情,測試和檢證也相對比較困難,希望這篇文章能夠為你在實現類似功能時提供一些思路。
-
《Changes to the Swift standard library in 2.0 betas 2..<5》 :文章總結了 Swift 2.0 從 beta 2 到 5 的所有改動。雖然在 API 層面上可能看不出來,WWDC 上也并沒有提及,但是很多語言的實現細節都發生了改變。很多內部類型的命名發生了改變,如果你有心仔細研究的話,會發現 Swift 語言設計上的一些考量。另外,因為 Swift 即將開源,如果你有心想讀一讀 Swift 的源碼的話,也應該盡快熟悉這些思想和內部的類型,應該會對理解 Swift 非常有幫助。
開源項目
-
RazzleDazzle :如果你用過 IFTTT 的 app 的話,應該會注意到它們的 app 的初始引導頁面制作非常精美。之前 IFTTT 開源過一個 Objective-C 的基于幀動畫的 scroll view 的框架 JazzHands ,這次的 RazzleDazzle 是由 JazzHands 為基礎使用 Swift 改寫的項目。相比于 JazzHands,這個框架的接口更易于理解和使用,我們可以通過更多的行為描述而非過程描述來構建漂亮的 scroll view 動畫。
-
jot :IFTTT 最近開源的另一個質量很高的項目。使用觸屏隨意繪畫并且使畫出的曲線平滑是一件很有講究的事情,雖然看上去不難,但是一旦你實際動手做的話就會知道其中暗藏玄機。這個框架為我們提供了一個成熟的觸屏繪畫和操作內容的解決方案,非常適合用來制作一些像圖片標注這樣的 app。
-
ResponseDetective :app 開發中難免會與網絡請求打交道,在調試 app 的網絡部分時,我們往往會使用一些工具來截取發出的請求和收到的響應的內容。像是 Charles 或是 Paw 這樣的 Mac app 就是這類工具的代表。而現在 ResponseDetective 采用
-
SignalKit :一個 Swift 的 binding 框架,例如可以將 model 類型的屬性綁定給 UI 元素,或者將一個按鈕的點擊事件綁定到一段代碼上。通過這種對數據流或者事件流的監測和綁定,你可以用更為描述性的語言來書寫代碼,這會使代碼邏輯更清晰,代碼本身更簡潔。框架的思想類似于 ReactiveCocoa,但是顯然要輕量級得多。如果你想開始嘗試一下信號驅動的響應式編程,又不太確定自己是否能夠駕馭 ReactiveCocoa 的話,這個框架會是你入門的好選擇。