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

时间:2009-10-01 19:48:09

标签: c# iphone

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

7 个答案:

答案 0 :(得分:24)

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

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

答案 1 :(得分:9)

查看MonoTouch.

答案 2 :(得分:7)

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

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

坚持使用Mono,无论何时你在寻找框架资源,你都必须在心理上将其转化为如何在Mono中使用它们。你的应用程序二进制文件会更大,开发时间在使用Objective-C几个月后不会那么快,而其他应用程序开发人员将比你更有优势,因为他们使用的是原生平台。

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

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

答案 3 :(得分:3)

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

然而,Mono-Touch只需很小的价格就可以让您使用C#开发iPhone应用程序,但目前缺乏调试支持。仿制药和其他高端功能的某些用途也存在限制。 Here's a link to the limitations

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

答案 4 :(得分:1)

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

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

  • 了解iPhone API
  • 了解使用iPhone本身进行开发的怪癖

使用C#有一些缺点,但

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

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

修改

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

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

我发现这个有趣Podcast