我是个移动开发新手,我对开发适用于iOS、安卓和Windows phone7的应用程序很感兴趣,而且我想写更少的代码。就目前而言,我认为C++可能很适合。
我所知道的是:对于iOS,即使在一个文件中使用C++和Objective-C也是可能的,而且我可以链接我的c++库。
在Android上可以通过NDK使用C++。因此,我可以用c++编写我的大多数应用程序(除了一些非常特定的平台相关部分),并通过某种公开的外观调用我的应用程序,对吧?
windows phone 7能做些什么?我知道它是基于.Net的。在.NET中,可以从c++ win32动态链接库中调用代码,但是用wp7呢?我不想把所有的东西都重写到C#。
也许所有这些跨平台的游戏都不是好主意。有没有一些关键的陷阱?也许只有iOS的Obj-C,安卓的Java,C#的silverlight和xna会更好,并且分开维护所有的动物园?
有经验的移动开发人员请分享您的经验。
发布于 2012-02-16 19:47:32
请注意,在安卓系统上,并不完全支持C++。它更多的是关于纯C语言。
android上的C编程基本上是为游戏而保留的。如果你不想用OpenGL制作UI,那就忘了吧,直接用Java语言写就行了。无论如何,您都需要一个小的Java包装器。
这同样适用于iOS -如果您只使用OpenGL,那么您可以用C编写所有内容,并且只使用obj-c作为一个小的应用程序包装器。
由此可以看出,这主要是为游戏保留的。有可以帮助你轻松开发openGL游戏的工具(例如http://www.madewithmarmalade.com/)
平台之间的主要差异源于不同的UI框架。有一些工具试图帮助您克服这些差异--它们中的大多数都是基于HTML5的,并且它们使用CSS来模拟原生UI。通常,你必须牺牲大量的用户体验。
你必须明白,如果你想让你的应用程序在不同的平台上看起来完美无瑕,你必须为每个平台单独编写原生的UI。即使是UI设计也必须有所不同。iPhone和iPad需要很多很酷的动画,他们必须完美的肖像和横向模式(包括旋转动画),使用导航栏,工具栏,拆分视图…Android用户期望的是其他东西--一个不同的(菜单)工具栏,你需要将它移植到许多不同的屏幕分辨率上,用户体验也会有所不同。
我建议从原生iOS开始,如果应用程序是盈利的(如果这是你的应用程序的原因),那么为其他平台开发它。iOS应用程序总是能产生最多的钱。
发布于 2012-02-16 19:36:08
Windows Phone 7目前还不支持本机代码。有关更多信息,请查看此问题:Is it possible to program for Windows Phone 7 in standard C++ only?
如果你想在这3个平台上编写代码,并重用你写的大量代码,你可以用C#编写代码,并使用Mono from Xamarin在iOS和安卓上运行你的代码。
发布于 2012-02-16 19:29:22
看看phonegap吧。它声称是跨平台的,尽管我确信它将这些特性归结为一个共同点。
https://stackoverflow.com/questions/9310476
复制相似问题