移动应用程序 – 针对iPhone,WP7,Android和黑莓

有没有一个理智的方式来开发一个跨平台的移动应用程序? 我们希望这些在每个平台上都是原生应用,而不一定是某种网页。

目前我们正在考虑将其分成两种语言:

  • C#后端(业务逻辑)
  • – > WP7的标准C#应用程序
  • – >为iPhone / iPad /等build立在MonoTouch上的应用程序。
  • Java后端(业务逻辑)
  • – >标准的Android Java应用程序(MonoDroid版本的C#还没有准备好)
  • – >标准的黑莓Java应用程序

我们也可以最初用C#开发,并使用其中的一种转换工具来将我们的C#转换成Java作为起点。

还有另一种方法吗? 我们的技能主要包括强大的C#.Net背景和较小的Java经验。

我们并不是真的想低层次的使用像C / C ++这样的工具来完成工作。 这些通常是简单的LOB应用程序,可以与某些Web服务通信。

问题:像“愤怒的小鸟”制作人那样的游戏开发者是如何做的?

更新:

MonoDroid现在正式发布。 所以看来你只需要使用黑莓的Java。 我们正在考虑不发展为BlackBerry,因为为其他三个平台开发已经简化。 MonoTouch和MonoDroid的售价都是399美元,而且你还需要一个Visual Studio许可证(这不包括App Store的费用等)。

Solutions Collecting From Web of "移动应用程序 – 针对iPhone,WP7,Android和黑莓"

我不知道所有移动平台的简单答案。 您可以使用像Appcelerator Titanium这样的开发环境,它可以在各种平台上交叉编译为本机代码(例如,我认为Titanium支持iOS和Android,并计划使用Blackberry)。 但是,这些API通常只能访问有限的API,而最终还是需要针对不同的平台devise不同的UI(在我的商业工作中,我从未成功地使用过这样的平台)

您也可以deviseWeb服务后端的所有业务逻辑,然后为每个平台编写“瘦客户端”应用程序。 这个工作,但最终用户想要使用您的应用程序当然需要networking访问。 (通常它会在那里,但有时可能不会)

最终,我通常最终会按照你的build议来做 – 用一些不同的语言尽可能地写出基本的业务逻辑,然后把它们与每个平台的自定义用户界面/设备代码捆绑在一起。 没有find一个更好的办法自己….

(顺便说一下,我相信像愤怒的小鸟这样的游戏主要是用OpenGL编写的,然后在每个平台上加载到OpenGL处理​​器上,但我可能会误会…)

这些是一些很好的答案。 我同意,x平台的发展还是很原始的。 我想补充2点:

1)你不需要用不同的语言编写你的后端。 select一种语言(根据您的舒适度,性能等标准),然后从平台特定的应用程序直接连接到后端。 如果您的后端是服务器端代码,则通过XmlHttpClient与之交谈。 如果它是一个在各种应用程序中通用的本地代码,并且用C ++编写,则可以使用Java中的JNI以及C#中的包装程序集。

2)避免使用X平台工具的另一个原因是,您总是需要等待它们支持平台供应商(Apple,Google,MSFT等)发布的新API。 一旦这些公司发布新的API,这些工具将需要更新,只有这样你才能够使用新的API。

如果你在自己的应用程序中没有在WebView中使用一些HTML5(jquerymobile等)(看起来像一个真正的应用程序,但是你仍然会以某种方式看到它不是),我不认为这是(容易)可能的。正常的浏览器。 您仍然可以使用设备上的一些本机API(加速度计,…)。

有像Sybase Unwired Platform这样的(商业)平台可以帮助您生成一些客户端代码。 Afaik for Blackberry和Windows Mobile甚至可以从服务器上的业务对象中生成一些UI。 但对我来说,这听起来可能是你的情况太重了。

问候,马丁