ac#程序员为i-Phone开发的最简单方法是什么?

我应该使用Mono + c#吗? 或者我最好学习和使用目标c? 谢谢

这将是一个意见问题,但我认为你最好坚持使用C#。 切换到objective-C会增加您必须学习的新信息量,然后才能在您的环境中提高工作效率。

即使与C#保持一致,你仍然需要……

  • 了解iPhone API
  • 了解用iPhone开发的怪癖

但是使用C#有一些缺点

  • 大多数iPhone样本都在Objective-C中。 因为您不了解该语言,所以将它们应用于您的问题集会更加困难
  • 在Mono中使用静态编译肯定会有一些小问题,你需要习惯。

我的直觉是,与学习新语言的成本相比,这些将是微不足道的。

编辑

我想澄清一下我学习一门新语言的想法。 我认为学习语言很有趣,也是程序员生活中必不可少的一部分。 你应该至少每年尝试一次新语言。 今年我和F#玩弄。

我推荐这个问题的唯一原因是OP说“最简单的方法……”。 学习一门新语言确实需要额外的时间,需要花费更多的精力,所以我认为它更容易坚持使用C#。

这可能会冒犯一些,但说实话,如果你要进行任何认真的开发,你应该学习Objective-C。 不了解iPhone开发中的Objective-C只会成为一个障碍。 你将无法理解许多例子; 你必须处理Mono的怪癖,而如果你有Objective-C的工作知识,你可以从平台文档中获得更多。

就个人而言,我不理解这样的立场,即增加您需要的信息量,以支持在平台的母语上使用Mono。 这对我来说似乎有点适得其反。 我认为如果这是一个非常昂贵的命题(学习一门新语言),那么花一些时间在基础编程概念上可能是值得的,因此学习新语言是一个相当便宜的命题。

看看MonoTouch。

Monotouch现在更容易。 但后来更难。

例如,当新种子问世时你需要测试但是出于某种原因打破MonoTouch会发生什么?

通过坚持使用Mono,只要您在查找框架资源,就必须在心理上将其转换为如何将它们与Mono一起使用。 您的应用程序二进制文件会更大,在开发Objective-C几个月后,您的开发时间不会那么快,而其他应用程序开发人员将比您更具优势,因为他们使用的是本机平台。

另一个考虑因素是您希望使用C#,因为您比Objective-C更熟悉该语言。 但是iPhone的绝大部分学习曲线都不是Objective-C,而是框架 – 您也必须使用C#调用它。

对于任何平台,您应该使用直接表达该平台设计理念的平台 – 在iPhone上,即Objective-C。 从相反的角度考虑这个问题,如果一个习惯于在GTK中编程的Linux开发人员想要编写Windows应用程序,你会认真地建议他们不要使用C#并坚持使用GTK,因为他们“更容易”这样做吗?

如果您希望能够使用iPhone的所有API并且可以访问本机代码调试,那么您可能希望学习Objective C.

但是, Mono-Touch只需很小的价格就可以使用C#开发iPhone应用程序但目前缺乏调试支持。 仿制药和其他高端function的某些用途也存在局限性。 这是限制的链接 。

此外,要使用Mono-Touch,您仍需要为iPhone开发Xcode和Mac环境。 毫无疑问,如果您真的想要在实际设备上部署任何内容,则需要加入Apple iPhone开发人员计划。

MonoTouch我认为是要走的路,但请记住,它还处于初期阶段。 我能够安装Mono开发工具并使MonoDevelop IDE工作,但处于当前状态的IDE非常慢且几乎无法使用; 至少在适用于Mac OSX的Snow Leopard上运行。 我做了一些谷歌搜索,看起来这是一个已知的问题,但修复在MonoDevelop的前沿存储库中。 我认为Novell正在努力,但我也觉得你将在整个框架中挣扎,而它仍处于早期阶段。

所以,如果你想要进入C#/ MonoTouch路线,准备投入大量的工作,并且因为框架的不稳定性或不完整性而追逐幽灵。 我认为任何新框架都是如此。

我找到了这个有趣的播客