iphone開發學習筆記三 iPhone軟體開發教學課程

經過一段時間的學習,看文檔,算是對Mac OS,Objective C有瞭一些基本的瞭解,直正要學會iphone 開發還是要通過實戰。在選擇開發工具,對於選擇XCode+Objective C 還是用 MonoTouch 幾經反復,經過激烈的心理鬥爭,最終選擇兩種都支持  . 我的目標是將地圖開發包移植到 iPhone (iOS)和 Mac OS上,原始代碼是Java 和 C# ,似乎選擇 MonoTouch 是個正確的選擇,而且事實上.Net 平臺上C#代碼基本上可以不用修改在MonoTouch 編譯通過,移植工作量很小,似乎沒什麼挑戰性。另外經過幾周的Objective C和 Cocoa Touch學習,對於開發人員來說XCode+Objecitve C實在不是什麼好用的開發環境,Objective C本質上還是C,重新回到用C寫代碼真是不習慣,滿腦的指針又回來。。。
但用MonoTouch 基本上沒什麼工作量,也就不能較深入的瞭解iOS,另外用MonoTouch也有兩個比較大的缺點:一是編譯後可執行程序較大,iphone不帶.Net 運行環境,MonoTouch 編譯後的程序需要包含MonoTouch運行環境,我查到網上一個資料,一個簡單的”Hello world”,用Objective C寫,最後大約50k,而用MonoTouch大約是5M. 另一個缺點可能是致命的,不是技術上的而是來自Apple限制,Apple在新的開發者協議中明確指出在iphone寫程序隻能是C,C++,Objective C或是JavaScripts,有點變態的規定,盡管Apple很難強制執行這個政策,但對用MonoTouch開發iphone 4還是一個很大的風險。最終我還是決定兩個都支持。其實主要是支持Objective C 接口。MonoTouch 接口支持工作量很小。
下面就說說移植的工作量,在後面的文章中陸續介紹在移植中碰到的問題及解決方法,C#和Objective C是兩種異常迥異的語言,.Net Framework 和 Cocoa Touch Framework 也大不相同。移植工作是一個非常有挑戰性的工作:)。
下圖是引路蜂地圖開發包的包之間關系圖。其中綠色為對外開放的API.
所用的平臺API涉及到 String, Collections ( Array, Hashtable etc) (Util), Network (Http etc) ,Ajax (Json), 文件操作 (RMS),加密解密 (Crypto),二維圖形 (Drawing) ,最後是地理信息系統(GIS)。
這些平臺API在 .Net Framework 和 Cocoa Touch 實現不同,C#和 Objective C語法不同,都給移植增加瞭工作量。在之後的文章會慢慢介紹。

 

 

摘自 引路蜂移動軟件

You May Also Like