iOS 開發工具 (不定期更新)

開發前

Tools

  • CodeBox - 這是一套管理Code的工具,可以將常用的Code放在上面並用Dropbox同步,適合用在把一些程式片段記錄下來,未來重複使用,支援多語言程式碼highlight。
  • SourceTree - 程式碼管理工具,支援git,有相當強大的GUI介面
  • Dash 用來查API的工具。 ColorPicker - 用來選顏色好用。
  • TestFlight - 測試工具

GitHub OpenSource

Uitility

UI

MENU
View Layout
Alert/ Notification
Image
PieChart
KeyFrame
OTHER

Reference

Portable Class Library

身為一個Developer最大的夢想就是,寫一次程式碼多平台都可以使用,Portable Class Library(以下皆以PCL簡稱)就是這樣的腳色,若以MVC架構來做比喻,它就是Model,也可以簡稱為邏輯(Logic)。

把邏輯抽出並寫成PCL有什麼好處?

  • Reduce: 少寫n次code(n: 你的產品所需平台數量)
  • Robust: 容易做Unit Test
  • Focus: 專注在問題的邏輯

多平台是不可避免的趨勢,PCL的出現是微軟為了讓開發者能開發一次商業邏輯,並將其服務延伸到微軟的其他平台之上的解決方案,所以它所支持的平台皆為微軟的產品像是.NET Framework系列、Silverlight系列、Windows Phone系列等等。但我們可以效法其精神,把需要支援多平台的產品(專案)的邏輯抽出,一樣可以達到跨平台的優勢。

PCL for W8 and WP8

接下來就來談談這烏托邦的現實面吧,看起來一切美好的願景,其實不盡然,首先我遇到的問題是API不支援的問題,在W8與WP8上使用HttpClient來作為與REST API溝通是在簡單不過的事情,但當你把這段Code寫成PCL的時候會發現,竟然不支援?? 沒錯,W8與WP8皆支援HttpClient,但他們的交集PCL竟然不支援!

然而這只是其中一個問題,我記得沒錯的話,W8原生支援的JSON轉換物件,在WP8不支援,PCL也就當然不支援,後來用了第三方的Json.NET才搞定。另外,如果你有用Windows Azure mobile service之前在PCL也是不支援的。

PCL for 其他平台

然而費了這麼大的功夫做的PCL如果也能讓其他平台使用就太好了,我想Xamarin可以幫上你這個忙,你可以使用你已經寫好的邏輯(PCL)只需要在把各平台(Android, iOS)的view搞定就好,聽起來很不錯,我就馬上把我的PCL用它的編輯器(Xamarin Studio)打開,想說寫個簡的Android Hello World,結果...不支援await/async 傻眼...不過我想未來這種東西會慢慢改進,最後可以達到跨平台的目標,只是要費多少時間,還有你有沒有那個時間去等這個東西完整,又是另外一回事了。

http://xamarin.com/monotouch

建議

如果你的專案是還沒開始寫,我會建議你確定要支援什麼樣的平台後在開始寫,假設你要Support Android,我建議你可以從Xamarin Studio把Android run起來在看看,才不會遇到你在VS2012裡面寫PCL寫的很開心,結果最後放到Xamarin studio去不能Run的情況(某些API不支援之類的),這樣就會少走一些冤枉路。

後記

後來HttpClient有支援了,詳細內容參考這篇
若你對MVVM有興趣也可以參考我這篇