是否有一种理智的方式来开发跨平台的移动应用程序?我们希望这些是每个平台上的本机应用程序,而不一定是某种类型的网页。
目前我们正在考虑将其分为两种语言:
我们最初也可以在C#中开发并使用其中一个转换工具将我们的C#转换为Java作为起点。
还有其他方法吗?我们的技能组合主要包括强大的C#.Net背景和较小的Java经验。
我们真的不想进入低级别并使用类似C / C ++的东西来完成工作。这些通常是与某些Web服务通信的简单LOB应用程序。
侧面问题:游戏开发者如何喜欢“愤怒的小鸟”的制作者呢?
更新:
MonoDroid现已正式发布。因此,您似乎只需要将Java用于BlackBerry。我们正在考虑根本不开发BlackBerry,因为已经简化了针对其他3个平台的开发。肯定会有一些成本,因为MonoTouch和MonoDroid都是399美元,你还需要一个Visual Studio许可证(这不包括App商店的成本等)。
答案 0 :(得分:3)
我知道所有移动平台都没有好的简单答案。您可以使用像Appcelerator Titanium这样的开发环境,它们可以在各种平台上交叉编译为本机代码(例如,我认为Titanium支持iOS和Android,并且计划使用Blackberry)。但是,这些通常具有您可以访问的有限API,并且您仍然需要为不同平台设计不同的UI(在我的商业工作中,我从未成功使用过这样的平台)
您还可以在Web服务后端设计所有业务逻辑,然后为每个平台编写“瘦客户端”应用程序。这有效,但当最终用户想要使用您的应用时,当然需要网络访问。 (通常它会存在,但有时可能不存在)
最终,我通常最终会按照您的建议行事 - 尽可能一般地用几种不同的语言编写基本业务逻辑,然后将其与每个平台的自定义UI /设备代码捆绑在一起。我自己没找到更好的方法......
(顺便说一下,我相信像“愤怒的小鸟”这样的游戏主要是用OpenGL编写的,然后在每个平台上加载到OpenGL处理器上。但我可能会弄错......)
答案 1 :(得分:1)
这些是一些很好的答案。我同意,x平台开发仍然非常原始。我想补充两点:
1)您不需要用不同的语言编写后端。选择一种语言(根据您的舒适度,性能等标准),然后从平台特定的应用程序直接连接到后端。如果你的后端是服务器端代码,那么与它交谈的一种方式是通过XmlHttpClient。如果它是各种应用程序中常见的本机代码,并且用C ++编写,则可以使用Java中的JNI和C#中的包装程序集。
2)避免使用x-platform工具的另一个原因是你总是需要等待它们支持平台供应商(Apple,Google,MSFT等)发布的新API。一旦这些公司发布新的API,就需要更新这些工具,然后才能使用新的API。
答案 2 :(得分:0)
如果您没有在自己的应用程序中使用WebView中的某些HTML5(jquerymobile等),我认为这不是(轻松)可能的(看起来像一个真正的应用程序,但你仍然会以某种方式看到它是不是)而不是普通的浏览器。您仍然可以使用设备中的某些本机API(加速计,...)。
有Sybase Unwired Platform之类的(商业)平台可以帮助您生成一些客户端代码。 Afaik for Blackberry和Windows Mobile甚至可以从服务器上的业务对象生成一些UI。但对我来说,听起来这可能对你的情况来说太重了。
此致 马丁