我最近已经看到了这个问题(及其变化)。使我惊讶的是人们经常回应,却很少回答。
我有我的喜好(我喜欢两个堆栈),但这是大多数“答案”开始出错的地方。这不应该是我想要的(或其他人想要的)。
我将按照以下方法确定MonoTouch的值-显然我不能很客观,但是我认为这是没有狂热行为的:
这是娱乐还是商务活动?如果您想从事这一领域的咨询工作,可以很快退还399美元。
您想从内到外学习该平台,还是“只是”想要为其编写应用程序?
您是否足够喜欢.Net,因此使用其他开发堆栈将为您带来很多乐趣?同样,我喜欢这两个堆栈(Apple和Mono),但对我而言,MonoTouch使体验变得更加有趣。我没有停止使用Apple的工具,但这主要是因为我确实很喜欢这两个堆栈。我爱iPhone,也爱.Net。在那种情况下,对我而言,MonoTouch毋庸置疑。
您对使用C感到满意吗?我不是说Objective-C,而是C-这很重要,因为Objective-C 是 C。这是一个不错的,漂亮的,友好的OO版本,但是如果指针给您带来了heebie-jeebies,MonoTouch是您的朋友。而且,如果碰巧您不喜欢指针(或C等),也不要听那些认为您是开发者的反对者。我过去经常走一看IBM ROM BIOS Pocket Reference的副本,当我编写程序集并迫使计算机进入有趣的视频模式,并为它们和(当然是垃圾的)窗口系统编写自己的字体渲染位时,我没有认为QuickBasic开发人员是坏事。我当时一个QuickBasic开发人员(除了其余人员)。永远不要屈服于书呆子的大男子主义。如果您不喜欢C,并且不喜欢指针,并且希望与手动内存管理保持尽可能的距离(公平地说,在ObjC中一点也不错),那么。 .. MonoTouch。而且不要为此而烦恼。
您想定位用户或企业吗?对我来说并不重要,但是Edge上仍然有很多人,事实是:如果使用Apple的堆栈,则可以创建一个更小的下载程序包。我一直在玩MonoTouch,我有一个不错的小应用程序,一旦压缩,它的大小就会减少到2.7 MB(将您的应用程序提交分发时,请压缩它-从商店下载应用程序时,它们会重新压缩-因此在确定您的应用程序是否将在10MB OTA限制下使用时,请先压缩傻瓜-MonoTouch给您带来惊喜。但是,除了MT的幸福感外,如果您以最终用户为目标,则对您而言可能很重要,例如,半微秒对近三微秒。如果您正在考虑企业工作,那么几MB根本不重要。和,只是要清楚-我将尽快向商店提交基于MT的应用程序,而且大小没有问题。根本不打扰我。但是如果那会引起关注你们,那么苹果的筹码就赢得了这一局。
做任何XML工作吗?MonoTouch。期。
字符串操作?日期操作?我们已经习惯了.Net的一切-厨房-接收器框架的其他一百万个小东西?MonoTouch。
网页服务?MonoTouch。
从语法上讲,它们都有自己的优势。在必须编写 Objective-C的地方,它往往会更加冗长。您会发现自己用C#编写代码,而不必使用ObjC编写代码,但是这两种方式都可以。这个特定的主题可以写一本书。我更喜欢C#语法,但是在摆脱了对Objective-C的最初的“这是一个超乎寻常的反应”之后,我学到了很多东西。我取笑它在谈判中位(这是怪异的习惯了C#/的Java /等谁开发者),但事实是,我有一个Objective-C的形状在我的心脏点使我幸福。
您打算使用Interface Builder吗?因为,即使在这个早期版本中,我发现自己要用IB构建UI并在代码中使用它们的工作量也要少得多。感觉好像缺少Objective-C / IB的处理的所有步骤,而且我很确定这是因为缺少Objective-C / IB的处理的所有步骤。到目前为止,我认为我还没有经过充分的测试,但是到目前为止,MonoTouch在您要做的工作上要少得多,因此是赢家。
您认为学习新的语言和平台有趣吗?如果是这样,iPhone可以提供很多东西,而苹果的堆栈可能会让您脱离舒适区-对于某些开发人员来说,这很有趣(嗨-我是其中一些开发人员-我开玩笑并给予苹果很难,但通过苹果的工具学习iPhone开发给我带来了很多乐趣。
有很多事情要考虑。价值是如此抽象。如果我们在谈论成本以及它是否值得,那么答案就落在我的第一个项目符号上:如果这是用于商业活动,并且您可以得到工作,那么您将立即赚钱。
所以...这几乎是我的目标。这是您可能会问自己的简短列表,但这是一个起点。
就个人而言(我暂时放弃客观性),我喜欢并使用两者。我很高兴我首先学会了苹果堆栈。当我已经了解了苹果世界的方式后,使用MonoTouch起来就容易起来了。正如其他人所说,您仍将与CocoaTouch一起使用-它只会处于.Net格式的环境中。
不仅如此。没有使用MonoTouch的人往往会停在那里-“这是一个包装等等……”-不是MonoTouch。
MonoTouch使您可以访问CocoaTouch必须提供的功能,同时还可以访问.Net(提供的一部分)所提供的功能,使某些人更满意的IDE(我是其中的一个),与Interface Builder的更好集成,尽管您不会完全忘记内存管理,但是您有很大的回旋余地。
如果不确定,请抓住Apple的堆栈(免费),然后抓住MonoTouch评估堆栈(免费)。在您加入Apple的开发计划之前,两者都只能在模拟器上运行,但这足以帮助您确定您是否非常喜欢另一个,以及MonoTouch是否对您来说值得399美元。
而且不要听狂热者-他们往往是没有使用他们反对的技术的人:)