我覺得這個標題很自我解釋。唯一的是我來自XCode和Obj-C的背景,我有這個項目,我必須爲iOS,Android和BB開發。那麼我有什麼選擇?你會推薦哪一個?我更傾向於莫諾,這是一個很好的電話嗎?Airplay SDK與Monotouch?
A
我覺得這個標題很自我解釋。唯一的是我來自XCode和Obj-C的背景,我有這個項目,我必須爲iOS,Android和BB開發。那麼我有什麼選擇?你會推薦哪一個?我更傾向於莫諾,這是一個很好的電話嗎?Airplay SDK與Monotouch?
A
您對C#有任何經驗嗎?
由於您有Objective-C背景,因此您可能更容易使用Obj-C和Java for Android/BlackBerry。否則,它將是iOS/Android的C#和BlackBerry的Java(您可能需要在那裏學習2種語言)。
我有很非常喜歡MonoTouch,並且發現它比Objective-C更有效率,但我來自C#.Net/Windows背景。
我會遠離諸如Airplay SDK之類的「跨平臺」工具,你的應用程序可能會比較慢,並且不會感覺到最終本機。適用於Android的MonoTouch和Mono更加真實。
由於您想要定位三個平臺,我認爲您唯一的選擇是Marmalade。否則,你必須分別爲這三個平臺編寫你的項目。通過使用Marmalade,您可以使用他們的部署工具輕鬆地爲所有這些平臺分發項目。而對於iOS開發,您不需要擁有Mac或xCode,但是要將您的項目發佈到Apple Store,您仍然需要加入Apple開發人員計劃。
我個人不推薦使用MonoTouch,因爲您仍然需要Mac電腦(如果您已經沒有Mac電腦)。另外,由於AFIK MonoTouch不支持它,因此您仍然面臨將項目移植到BB的問題。同樣,對於MonoTouch,您必須學習Cocoa,Cocoa Touch框架和Android框架,因爲MonoTouch只是C#中這些SDK的抽象類。但是,如果你使用Marmalade,你只需要學習Marmalade SDK,這比IMP和Android和Cocoa *更簡單。
實際上,Marmalade(Airplay SDK)完全生成本機代碼,而MonoTouch代碼並不是真正的本地代碼,因爲在任何環境下(包括iOS),.NET在哲學上都不會生成本機代碼。 – bman 2012-06-18 07:35:51
編譯完整的AOT時,MonoTouch會生成本機代碼,請參見:http://www.mono-project.com/AOT在發佈模式下編譯iOS時會發生這種情況。與使用C#的生產力收益相比,MonoTouch的任何性能影響都可以忽略不計。 – jonathanpeppers 2012-06-18 11:59:29