MonoTouch&适用于iphone app的C#VS Objective C.

时间:2010-04-23 05:59:29

标签: c# iphone objective-c xamarin.ios

问候语, 我是C#程序员。我打算开始为iphone开发应用程序,但我不确定是否应该在MonoTouch下使用C#,或者只使用iphone OS Objective C的本地语言。

使用C#或Objective C的iphone应用程序有不同的程序吗?

使用C#为iphone编程应用程序是否存在限制,或者它可以像Objective C那样开发iphone应用程序吗?

4 个答案:

答案 0 :(得分:12)

MonoTouch包含大多数但不包括所有iPhone SDK。所以,是的,有些东西是你还不能做的,但它们相对较少,而且相差甚远。

许多.Net人发现他们使用MonoTouch更有效率(至少在最初阶段),因为他们可以利用他们现有的技能。另一方面,没有什么比用这种土地的母语工作,只需要更长的时间。您将不得不学习一些Objective-C,因为世界上大多数文档都使用它(和/或C级CoreFoundation API)。 Objective-C的动态性质一开始会让人觉得陌生,但是一旦你完全理解它,你会发现它很自由。在我的职业生涯中使用过多种语言后,我发现Objective-C(以及Cocoa API)是最愉快的开发体验之一。

答案 1 :(得分:10)

这是一个Monotouch开发人员的答案,而不是一些猜测人们浏览博客的工作。

您是否购买了Monotouch许可证?如果没有那么明确客观-C将是首选。如果你已经购买了许可证,那么在Monotouch中开发应用程序是有意义的,因为:

  • 今年晚些时候,可以轻松地为Windows Mobile 7应用移植域和业务逻辑
  • 即将推出的Monodroid也是如此,API也很容易移植到Java上。
  • 控制器,视图和整个Monotouch系统栏static void main可以非常轻松地转换为objective-C。名称都相同,但在Pascal案例中。

就应用程序而言 - 到目前为止,Apple已经让Monotouch应用程序通过了。我并不是说他们不会突然说“不!你应该使用目标-C”,但是对于他们在像Stackoverflow这样的高端网站上禁止SO iPhone客户端将是糟糕的公关。

Apple在他们的演示中使用应用程序打破了他们自己的SDK(Tap Tap Revolution就是其中之一),并且十分之一的appstore畅销游戏使用了非客观C的健康部分。

Monotouch 直接映射到Cocoa和UIKit 。你需要有一个mac来使用编译器和IDE。据我所知,Flash没有这样的限制,它的UI在强制UINavigationController,UITabViewController,UIAlertView等常见的“widget”设置方面要严格得多。

答案 2 :(得分:6)

这是我的看法:如果你生活中绝对没有见过Obj-C代码,那么需要一点时间来适应它。将SDK与完全不同的事实放在一起,你将不得不学习每一种新方法,如果你努力学习,你可能需要至少几个月的时间才能成为一名普通的开发人员

相反,使用MonoTouch并使用C#学习整个SDK。在几周内,您将感到宾至如归,所有课程,Interface Builder等。您将能够以与Obj-C相同的方式开发应用程序,但在C#中。演示版允许您免费使用所有内容。

然后你决定做什么。取决于Apple的整个问题如何,您可能决定继续使用MonoTouch,或者您可能决定学习Obj-C,并且基本上使用您已经获得的关于SDK的所有知识,这将使转换更容易

答案 3 :(得分:2)

关于Apple是否允许这样做,存在一些争论。从表面上看,它似乎不是:

  

在新版iPhone中   开发者计划许可协议   今天由Apple发布(以及哪些   开发者必须先同意   下载4.0 SDK测试版),部分   3.3.1现在读取:

     

3.3.1 - 应用程序只能以这种方式使用Documented API   Apple规定,不得使用   或致电任何私人API。应用   必须最初写在   Objective-C,C,C ++或JavaScript as   由iPhone OS WebKit执行   引擎,只有用C编写的代码,   C ++和Objective-C可以编译和   直接链接到Documented   API(例如,链接到的应用程序)   通过标记的API   中介翻译或   兼容层或工具   禁用)。

来自monotouch forums