移动应用 - 针对iPhone,WP7,Android和Blackberry

jon*_*ers 10 iphone mobile android blackberry windows-phone-7

有没有一种理智的方式来开发跨平台的移动应用程序?我们希望这些是每个平台上的本机应用程序,而不一定是某种类型的网页.

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

  • C#后端(业务逻辑)
  • - > WP7的标准C#应用程序
  • - >基于MonoTouch for iPhone/iPad /等的应用程序.
  • Java后端(业务逻辑)
  • - >标准Android Java应用程序(MonoDroid版本的C#尚未准备好)
  • - >标准Blackberry Java应用程序

我们最初也可以在C#中开发并使用其中一个转换工具将我们的C#转换为Java作为起点.

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

我们真的不想进入低级别并使用类似C/C++的东西来完成工作.这些通常是与某些Web服务通信的简单LOB应用程序.

侧面问题:游戏开发者如何喜欢"愤怒的小鸟"的制作者呢?

更新:

MonoDroid现已正式发布.因此,您似乎只需要将Java用于BlackBerry.我们正在考虑根本不开发BlackBerry,因为已经简化了针对其他3个平台的开发.肯定会有一些成本,因为MonoTouch和MonoDroid都是399美元,你还需要一个Visual Studio许可证(这不包括App Store的成本等).

Jef*_*Hay 3

据我所知,对于所有移动平台,没有一个好的简单答案。您可以使用Appcelerator Titanium等开发环境,它可以在各种平台上交叉编译为本机代码(例如,现在,我认为 Titanium 支持 iOS 和 Android,并计划支持 Blackberry)。然而,这些通常具有有限的API,您可以访问,并且您最终仍然需要为不同的平台设计不同的UI(在我的商业工作中,我从未成功地使用过这样的平台)

您还可以在 Web 服务后端设计所有业务逻辑,然后为每个平台编写“瘦客户端”应用程序。这是可行的,但当最终用户想要使用您的应用程序时,当然需要网络访问。(通常会有,但有时可能不会)

最终,我通常会按照您的建议去做——尽可能通用地用几种不同的语言编写基本业务逻辑,然后将其与每个平台的自定义 UI/设备代码捆绑在一起。自己也没有找到更好的方法......

(顺便说一句,我相信像《愤怒的小鸟》这样的游戏主要是用 OpenGL 编写的,然后加载到每个平台上的 OpenGL 处理器上。但我可能是错的......)