2010-04-23 53 views
11

問候語, 我是C#程序員的傢伙。我打算開始爲iphone開發應用程序,但我不確定應該在MonoTouch下使用C#還是僅使用iPhone OS的本機語言Objective C。MonoTouch&C#VS Objective C for iphone應用程序

是否有與使用C#或目標C?

是否有限制使用C#來爲iPhone編程應用程序,或者它可以像Objective C一樣可以完成開發iPhone應用程序?

+2

我認爲,這個問題涵蓋了相同的地一個在這裏問:http://stackoverflow.com/questions/1583856/is-monotouch-worth-the-cost-or-should-i-just-learn- objective-c – 2010-04-23 13:08:45

+0

它確實......但現在這個問題有不同的上下文,因爲蘋果的新術語不允許(技術上)交叉編譯應用程序。 – Armstrongest 2010-04-29 23:16:00

回答

12

MonoTouch包裝大多數但不是所有的iPhone SDK。所以,是的,有些事情你還做不到(但是),但是它們相對較少,而且相距甚遠。

許多.Net人員發現他們使用MonoTouch更高效(至少在初期),因爲他們可以利用他們現有的技能。另一方面,沒有什麼比使用土地的母語工作,只是需要更長的時間。您將不得不學習一些Objective-C,因爲世界上大多數文檔都使用它(和/或C級CoreFoundation API)。 Objective-C的動態特性起初會感到陌生,但是一旦你充分了解它,你會發現它非常自由。在我的職業生涯中使用過很多語言,我發現Objective-C(和Cocoa API)是最愉快的開發體驗之一。

+0

「他們選擇讓MonoTouch應用程序通過」的說法是什麼? – 2010-04-25 17:40:19

+0

@yar,幾位開發者報告說,他們接受新的開發者許可證後接受了他們基於MonoTouch的應用程序。目前還不清楚蘋果是否選擇不爲MonoTouch強制執行β3.3.1(我的懷疑),或者蘋果是否還沒有開始執行它。 – 2010-04-25 20:23:22

+0

@Barry Wark,我認爲目前還沒有辦法 - 讓Apple知道該應用是否使用了MonoTouch?這是真的嗎(我的意思是,鑑於目前的知識)? – 2010-04-25 22:58:07

2

蘋果是否會允許這個問題存在爭議。在它面前,它似乎並不:

在今天由蘋果公司發佈了iPhone 開發者計劃許可協議 的新版本(和 開發商必須同意之前 下載4.0 SDK測試版)部分 3.3.1現規定:

3.3.1 - 應用程序可能只使用記錄的API在蘋果規定的方式 ,不得使用 或調用任何私有的API。應用 必須原文爲 的Objective-C,C,C++或JavaScript由iPhone OS WebKit的 引擎執行 ,只有C語言編寫的代碼, C++和Objective-C可以編譯和 直接針對鏈接已記錄的 API(例如,鏈接到 的文檔API通過 中間轉換或 兼容性層或工具的應用程序禁止使用 )。

monotouch forums

+1

我同意。在蘋果公司澄清他們在MonoTouch上的立場之前,我認爲這對商業項目是一個嚴重的風險。 – 2010-04-23 06:14:03

10

這裏是一個MonoTouch的開發人員的答案,而不是從人的一些猜測的工作撇去閱讀博客。

您是否購買了Monotouch許可證?如果不是那麼明確的客觀C將是首選。如果你已經購買了許可證的話很有道理,開發在MonoTouch的應用程序,因爲:

  • 域和業務邏輯可以很容易地移植於今年晚些時候
  • 同一個Windows Mobile 7的應用程序也是Monodroid即將推出,並且API也可以輕鬆移植到Java。
  • 控制器,視圖和整個Monotouch系統欄static void main可以很容易地轉換爲Objective-C。名字都是一樣的,但在帕斯卡的情況下。

至於應用程序被接受 - 到目前爲止,蘋果已經讓MonoTouch的應用程式通過。我不是說他們不會突然說「NO!THOUALLALL USE OBJECTIVE-C」,但是他們禁止在iPhone等高端網站上使用iPhone的客戶端,比如Stackoverflow會是一個糟糕的公關。

在他們的演示蘋果使用的應用程序,其突破自己的SDK(絲錐革命是一個),以及1在AppStore的10最暢銷的遊戲使用沒有目標-C的健康部分。

單擊是直接映射到Cocoa和UIKit。你需要有一個mac來使用編譯器和IDE。據我所知,Flash沒有這樣的限制,它的UI在強制像UINavigationController,UITabViewController,UIAlertView等常見的「小部件」方面不那麼嚴格。

+0

爲了安全起見,我會使用Obj-C,那麼你不會冒着浪費時間的風險。 – 2010-04-23 09:59:17

+1

如果它被拒絕了,UI部分肯定會浪費時間。但是查詢的這些位稍後可用於Winmo和Android – 2010-04-23 10:06:14

6

這裏是我的看法:如果你絕對不會在你的生活中看到的OBJ-C代碼,它會需要一些時間來適應它。把它與SDK完全不同的事實放在一起,你將不得不學習每一種新的方法,如果你努力學習,它可能需要至少幾個月才能成爲一個普通的obj-c開發者。

相反,使用MonoTouch的使用C#學習整個SDK。在幾個星期之內,您將感受到所有的類,Interface Builder等等。您可以像使用Obj-C一樣開發應用程序,但是可以在C#中使用。演示版本允許您免費使用所有內容。

然後你決定怎麼做。根據蘋果的整個問題,你可能會決定繼續使用MonoTouch,或者你可能決定學習Obj-C,並基本上使用你已經獲得的關於SDK的所有知識,這將使轉換變得更容易。

相關問題