2012-01-30 75 views
0

我觉得这个标题很自我解释。唯一的是我来自XCode和Obj-C的背景,我有这个项目,我必须为iOS,Android和BB开发。那么我有什么选择?你会推荐哪一个?我更倾向于莫诺,这是一个很好的电话吗?Airplay SDK与Monotouch?

A

回答

1

您对C#有任何经验吗?

由于您有Objective-C背景,因此您可能更容易使用Obj-C和Java for Android/BlackBerry。否则,它将是iOS/Android的C#和BlackBerry的Java(您可能需要在那里学习2种语言)。

我有非常喜欢MonoTouch,并且发现它比Objective-C更有效率,但我来自C#.Net/Windows背景。

我会远离诸如Airplay SDK之类的“跨平台”工具,你的应用程序可能会比较慢,并且不会感觉到最终本机。适用于Android的MonoTouch和Mono更加真实。

+0

实际上,Marmalade(Airplay SDK)完全生成本机代码,而MonoTouch代码并不是真正的本地代码,因为在任何环境下(包括iOS),.NET在哲学上都不会生成本机代码。 – bman 2012-06-18 07:35:51

+2

编译完整的AOT时,MonoTouch会生成本机代码,请参见:http://www.mono-project.com/AOT在发布模式下编译iOS时会发生这种情况。与使用C#的生产力收益相比,MonoTouch的任何性能影响都可以忽略不计。 – jonathanpeppers 2012-06-18 11:59:29

0

由于您想要定位三个平台,我认为您唯一的选择是Marmalade。否则,你必须分别为这三个平台编写你的项目。通过使用Marmalade,您可以使用他们的部署工具轻松地为所有这些平台分发项目。而对于iOS开发,您不需要拥有Mac或xCode,但是要将您的项目发布到Apple Store,您仍然需要加入Apple开发人员计划。

我个人不推荐使用MonoTouch,因为您仍然需要Mac电脑(如果您已经没有Mac电脑)。另外,由于AFIK MonoTouch不支持它,因此您仍然面临将项目移植到BB的问题。同样,对于MonoTouch,您必须学习Cocoa,Cocoa Touch框架和Android框架,因为MonoTouch只是C#中这些SDK的抽象类。但是,如果你使用Marmalade,你只需要学习Marmalade SDK,这比IMP和Android和Cocoa *更简单。