微軟開源 WinObjC,用 Objective-C 開發 Windows app - iOS移動開發周報
新聞
-
微軟開源 WinObjC :本周微軟開源了他們 Windows Bridges 計劃中的重要一環 - Windows Bridges iOS - 中的關鍵內容。iOS 開發者們現在可以使用熟悉的 Objective-C 語言和微軟全盤重新實現的 Cocoa 框架來在 Windows 平臺上開發 app。你甚至可以直接把原來的 Xcode 項目導入到 Visual Studio 中經過調整運行,來構建一個 Windows app。這是繼 Windows Mobile 中內嵌 Android 后微軟為了拯救自家移動平臺的又一努力,但是開發者們會不會有所轉變還有待觀察。
-
Apple 官網改版,商店不再使用獨立二級域名 :最近 Apple 將原來的 store.apple.com 的停用,而將商店和購買的選項合并到了產品介紹的頁面上。之前的設計其實被詬病已久,經常會有客戶無法找到購買按鈕。而現在用戶能在同一個站點上了解產品特性并很方便地進行購買了,在設計上可以說是巨大的進步。
教程
-
WWDC15 Session筆記 - 30 分鐘開發一個簡單的 watchOS 2 app :Apple Watch 和 watchOS 第一代產品只允許用戶在 iPhone 設備上進行計算,然后將結果傳輸到手表上進行顯示。在這個框架下,手表充當的功能在很大程度上只是手機的另一塊小一些的顯示器。而在 watchOS 2 中,Apple 開放了在手表端直接進行計算的能力,一些之前無法完成的 app 現在也可以進行構建了。這篇文章通過一個很簡單的天氣 app 的例子,講解了 watchOS 2 中新引入的一些特性 (如 complications 和 WatchConnectivity) 的使用方法。
-
Using Cocoapods with watchOS 2 :watchOS 2 的依賴庫現在也隨著 watch app 一起轉移到了手表上,這樣一來,之前直接使用 CocoaPods 為 watch extension 設置依賴的方法也失效了。這篇文章說明了如何在 podspec 中添加 watchOS 2 的支持,以及在使用時應該如何更改 Podfile 以支持 watchOS 2。
-
Advanced NSOperations :這篇文章從
NSOperation
和NSOperationQueue
的基礎入手,闡述了基于 Operation 的思路來構建一個 app 的基本方法,思路非常新穎。這種架構方法的基本思想是將復雜的任務拆分成粒度更細的 Operation,然后再進行組裝。當然,在實際操作中可能會遇到不少挑戰和對最佳實踐的探索,但是作為加深對NSOperation
的理解的話,這篇文章是絕對值得一讀的。 -
How Not to Crash :作者是 Omni 系列軟件的開發者之一。這個系列是作者今年開始的專題,列舉和分析了一些在 iOS/OSX 開發中常見的由開發者引入的導致 app 崩潰的錯誤代碼。其中每篇文章都結合了作者自己豐富的軟件架構經驗和感悟,不論對于新人還是已經富有經驗的 iOS 開發者,逐條對照并反思自己在開發中的做法,能有效避免在今后引入這些潛在的問題。這個系列依然在繼續,可以持續關注。
開源項目
-
WinObjC :雖然這個項目不知道能不能改善 Windows Phone 的現狀,但是它還是本周最值一提的開源項目。雖然這個項目還處于非常前期,雖然我們可能在之后一段時間里并不使用它進行 Windows app 的開發,但項目里的一些內容還是很值得玩味的。微軟在這個項目中完整地重新實現了包括 UIKit 在內的一些 Cocoa 框架,目測應該是在對 Apple 的框架進行逆向后的改寫。如果你想了解一下 Cocoa 內部的實現,也許閑暇的時候看看這個項目的源碼會是很有意思的選擇。
-
spacetime :非死book 開源的一個實驗性質的庫,它可以用來實時地對 layer 進行變形操作。你可以將這個庫想象為在
CALayer
上添加了一些網格,通過操縱這些網格的形狀和數量來讓一個 layer 呈現不同的形狀,比如圓柱形或者錐形的 view。這個框架使用了CAReplicatorLayer
以及 time hierarchy 來進行實現,在一般開發中這兩者都是鮮為人知的,閱讀看看是如何實現的會很有意思。
工具
- Pixel Winch :一款可以在截圖上測量各個元素之間距離的 OSX app,開發者可以截取模擬器或者真機上的圖片來確定 UI 元素的位置是否滿足設計需求,設計師也可以用它很方便地來進行一些標注工作。