2010-03-26 61 views
8

我是iPhone新手,不得不决定一个合适的工具来开发我的应用程序。由于我知道C#/ .NET,但不是客观的C,所以Mono Touch似乎对我很有吸引力。但是值得花费额外的400美元吗?Mono Touch与iPhone SDK相比有多好?

如果两者都尝试过,我会对你的意见感兴趣。

+0

这已在此前深入讨论:http://stackoverflow.com/questions/1847274/is-monotouch-a-viable-platform-for-iphone-development,http://stackoverflow.com/questions/ 2509759/monotouch-has-anyone-used-this,并且可能http://stackoverflow.com/questions/1488402/monotouch-or-titanium-for-rapid-application-development-on-iphone – 2010-03-27 14:44:28

+0

当涉及到是否成本是值得的,这个问题似乎涵盖了这一点:http://stackoverflow.com/questions/1583856/is-monotouch-worth-the-cost-or-should-i-just-learn-objective-c – 2010-03-27 14:45:18

回答

6

大播客本周的这个dotnetrocks。这将动摇我

一个大因素是,他们目前正在MonoDroid的,我猜的WinMo 7可能会通过一些月光般的魅力所支持的事实。

想象一下,使用一种语言来定位前3个移动平台?甜....

+0

确实非常有用的播客,特别是因为我打算几乎准确地构建这些人正在讨论的内容 - 围绕Web服务的瘦客户端。非常感谢链接! – 2010-03-26 17:33:02

2

我会说不,因为学习iPhone SDK最大的不是Objective-C,而是API。即使你使用Mono Touch,你也必须学习iPhone的API。

它从来没有伤害学习一种新的编程语言。

(但是,不听我的,因为我使用的Lua写我的iPhone应用程序...)

+3

一我相信我们在MonoTouch中正确的做法是,所有的Objective-C API都变成了强类型。 这意味着IDE可以为所有类型的对象和参数提供智能感知,而无需查找文档(NSArray内部是什么?我必须在此NSObject中传递什么?) – 2010-03-27 16:28:15

+2

确实,您需要了解API,但是使用MonoTouch,您还可以使用完整的.NET框架,这使开发变得相当容易,尤其是在您已经熟悉它的情况下。 – NeilDurant 2010-07-23 18:33:15

5

我的iPhone开发者,我曾尝试单点触控,但对我来说,我会说NO,这是不值得的额外400

所有几个免费的框架,首先存在,让您一次用不同的(通常是高层次)的语言针对多种平台,如PhoneGap,甚至有一个Flex框架的地方,不计Unity3D这实际上使用C#,甚至可以让你部署在iPhone和任天堂Wii上。

一些使用这种第三方框架的缺点是:

1-额外的软件层,这显然增加了故障的可能性。去年它发生在Unity3D上。不知何故,随着它开发的应用程序开始被苹果拒绝(这里的官方统一announcement),团结人员反应迅速,我认为他们在三天内解决了苹果的问题。但是,如果3天对你来说太过分了,或者更糟的是,如果你用来开发的外部框架没有这种质量的支持,3天最终会变成几周呢?......如果你的应用程序用操作系统更新破了?

2 - 你完全松散的Xcode调试的机会(松散的符号),而你还挺减少到printf调试。当然,您可以在Mono IDE中进行调试,但Xcode仍然是一款功能强大的野兽,所有SDK Betas都将交付给开发人员,以便与特定的Xcode版本一起使用。

3-与本机Objective-C应用程序相比,二进制大小往往更大。 (平均大6至7Mb),并记住如果您的应用程序高于20 Mb,则不能从使用3G或Edge(这是安装应用程序最流行的方式)从iPhone下载。所以如果这对你很重要,那是另一个问题。

结论:

如果你想使用MonoTouch的,因为你不知道的Objective-C,去了,但我仍然会真的建议你需要一点时间来学习Objective-C的语言和官方的Apple API。 Here's这是一个很棒的观点。

+0

好的解释,虽然我不同意它的一些。是的,它的另一层,但它有几个原因实际上减少了失败的可能性,而不是增加。如果你正在开发一款游戏,那么你可能会使用图书馆,而这些可能会被拒绝,对吧? 2-x-code调试不可用,因为您不使用x代码。有点明显。其他工具取代它。 3限制是20,而不是10Mb,但是,它是一个有效的点。 – 2010-03-26 17:28:00

+0

@Eduardo: 1-在开发游戏或许多其他实用程序的情况下,您使用库。但是一般来说,图书馆并不是我警告Alex的。例如,当你得到一个链接到Cocoa-Touch API的ARM二进制文件时,问题就出现了,例如你可能会调用私有API,你不控制那个开发库的公司。2-不明显的是,如果你在Xcode项目中从头开始构建一个库,你可以用一种聪明的方式来完成它,并且仍然保留所有符号以进行调试。 3,是的,不知道我为什么说10 Mb,相应地编辑了我的答案。 – Goles 2010-03-26 17:49:24

+0

1-是的,但您使用的库也可能在您不知情的情况下使用这些私有API。没有理由选择一个供应商来解决任何人都可能遇到的问题。 2- MonoTouch使用不同的开发平台,因此生成x代码符号是没有意义的。在MT上调试比在x-code中简单得多,如果你愿意的话,你甚至可以通过无线方式进行调试。 :) – 2010-03-26 21:28:03

10

我刚刚在www.zouak.com上发布了这个消息,但总而言之,这是一个分而治之的例子。我有多年的.NET经验,并诚实地发现学习Objective-C令人沮丧。拥有一种新的语言和一套新工具显着降低了我的工作效率,而且多年后还不得不处理手动内存管理(在2001年之前,我开始使用.NET时,自从创建以来,我一直是一名Java人,所以它一直是同时)是一个额外的层“在那里,不想回去”。

我发现MonoTouch工具箱非常有价值,虽然我理解了一些反对意见和担忧,但我是一个利用我知道的东西(C#)让我专注于我没有的东西的人知道(Interface Builder,API等)。现在我已经对Apple工具有了大量的了解,所以我已经接近了一个要点,如果我想要,我可以考虑将Objective-C作为一种新语言,因为我还有更多舒适,但对于我来说,学习一门新语言并不像我学习平台和获得高质量应用程序那样对我而言是一种成就。对于其他人,我知道他们喜欢“按照苹果的意图”提供,我完全尊重这一点。另外,如果Apple有一个Java工具包,我会完成这一切。但是C#和Objective-C之间的概念距离比我愿意在这一点上投入的要多。

这是我的2美分,

Driss。