跨移动平台编程

时间:2012-02-16 11:26:53

标签: android c++ ios windows-phone-7 cross-platform

我是移动开发人员的新手,我对开发适用于iOS,Android和Windows Phone 7的应用程序很感兴趣。我想编写更少的代码。目前我看到C ++可能适合。

我所知道的是: 即使在iOS的一个文件中也可以使用带有Objective-C的C ++,我可以链接我的c ++库。

可以在Android上通过NDK使用C ++。 所以我可以用c ++编写我的大部分应用程序(除了一些非常具体的平台相关部分)并通过某种暴露的Facade调用我的应用程序,对吗?

Windows Phone 7可以做些什么?我知道它是基于.Net的。在.NET中,可以从c ++ win32 dll调用代码。但是用wp7呢?我不想将所有内容重写为C#。

或许所有这些跨平台游戏都不是好主意。是否存在一些重要的陷阱?也许最好只针对iOS使用Obj-C,仅针对Android使用Java,使用它的Silverlight和xna使用C#,以及单独维护所有这个动物园?

有经验的移动开发者请分享您的体验。

6 个答案:

答案 0 :(得分:2)

Windows Phone 7尚不支持本机代码。有关详细信息,请查看此问题:Is it possible to program for Windows Phone 7 in standard C++ only?

如果您想为这3个平台编写代码并重复使用您编写的大量内容,则可以使用C#进行编码并使用Mono from Xamarin在iOS和Android上运行代码。

答案 1 :(得分:2)

请注意,在Android上,C ++并不完全受支持。它更多的是纯粹的C.

在Android上用C编程基本上是为游戏保留的。如果您不想在OpenGL中创建UI,请忘掉它,然后用Java编写它。无论如何,你还需要一个小的Java包装器。

同样适用于iOS - 如果仅使用OpenGL,则可以使用C语言编写所有内容,并仅将obj-c用作小型应用程序包装器。

从那你可以看出这主要是为游戏而保留的。有可用的工具(例如http://www.madewithmarmalade.com/)可以帮助您轻松开发OpenGL游戏)

平台之间的主要区别来自不同的UI框架。有些工具可以帮助您克服这些差异 - 大多数工具都基于HTML 5,他们使用CSS来模拟本机UI。通常你必须牺牲很多用户体验。

您必须明白,如果您希望应用程序在不同平台上看起来很完美,则必须为每个平台单独和本地编写UI。甚至UI设计也必须不同。 iPhone和iPad需要很多很酷的动画,它们必须是完美的肖像和放大镜。横向模式(包括旋转动画),使用导航栏,工具栏,拆分视图...... Android用户期待别的东西 - 一个不同的(菜单)工具栏,你需要将它移植到很多不同的屏幕分辨率和用户体验将与众不同。

我建议从本机iOS开始,如果应用程序有利可图(如果这是您的应用程序的原因),请为其他平台开发它。 iOS应用程序总能产生最多的钱。

答案 2 :(得分:0)

看看phonegap。它声称是跨平台的,虽然我确信它将这些功能归结为一个共同点。

答案 3 :(得分:-1)

我在使用Titanium Appcelerator为iOS和Android开发应用程序方面有很好的经验。代码用JavaScript编写并映射到本机调用,因此您可以获得原生外观。

PhoneGap有不同的方法。该应用程序是用HTML,CSS和Javascript编写的。优点是它支持更多不同的平台。包括iOS,Android和Windows Phone 7。

答案 4 :(得分:-1)

在目前现有的平台中,大多数都支持HTML5,javascript包括iOS,Android和WP7,或即将推出的WP8也可能支持。

因此,建议使用HTML5和javascript编写应用程序。

通过使用为多个平台提供库的框架,可以在各个平台上部署相同的JavaScript HTML5应用程序,例如PhoneGap

Morever PhoneGap是免费使用的开源移动框架。

您也可以参考Top five HTML5 frameworks for Mobile developement.

的以下链接

答案 5 :(得分:-1)

您是否从Xamarin看过MonoTouch和Mono for Android? http://xamarin.com/

他们表示,您可以重复使用高达90%的应用逻辑,并通过访问所有本机平台API和设备传感器来创建设备本机用户体验/ UI。