如果您是iOS开发人员,那么构建应用程序的Android版本的最佳方式和最佳性价比是什么?

首先以C / C ++(而非Objective-C)构建iOS应用。 仅在需要粘合代码的地方使用ObjC。 几乎所有的iOS API都有C和C ++绑定。 (虽然Android NDK附带的gcc可以编译ObjC,但它不如Apple的实现健壮,并且链接可能是个问题。)

将您的应用程序分为前端和后端功能。 避免使用可使用标准跨平台API的特定于平台的API:libc,POSIX线程和IPC,套接字,OpenGL等。这两个平台都是基于Unix的,因此请充分利用它们的共同点。 您的后端应该可以为iOS和Android(带有NDK)进行编译,而只需很少或不需要更改。 这也有助于维护。

从一开始就计划以支持不同的屏幕纵横比和分辨率。 如有必要,请使用外观系统–不要将布局硬连线到源中来锁定自己。

您的前端应该很少更改。 由于后端可以在两个平台上按原样编译,因此构建新的Android版本的成本很少或没有成本。

我会认真建议外包。

如果您具有为iOS构建的功能完整的应用程序,并且希望将其移植到Android或其他平台,则许多与规范和文档相关的问题通常会因外包开发而消失。 您已经确定了所有接口,流程和详细信息,并且具有任何棘手的算法或逻辑的参考实现。 您可能还拥有所有必要的技术,本地化和其他非代码资产。

您不需要代理商或增值咨询公司,就可以直接与开发人员合作。 大多数经验丰富的开发人员将能够为您提供准确的估算,甚至可能愿意为您报价统一价格,因为事情是如此明确地指定了。

这取决于您使用的框架(如果使用)。 以及您正在构建的应用程序的类型。

我假设您正在使用某个框架,并且它是一个游戏应用程序。

对于我们来说,我们使用Cocos2D作为创建iOS应用程序的框架。 对于Android,我们有Cocos2d-x框架(C ++),我们在其中将iOS中的代码逐行迁移到C ++。 然后,将本机二进制文件包装为NDK应用程序,并打包为Android apk文件。 我们使用这种方法在Amazon Android Appstore上发布了一个应用程序。

对于我们来说,上述方法是最经济有效的方法,因为它是开源的,“免费的”并且具有MIT许可证。 这对我们来说是最好的选择,因为我们在两个平台上都拥有完全相同的用户体验保真度,因为两个平台之间的基础库都是相同的,只是语言不同。

当然,还有付费选项“一次编写,在iOS和Android上部署”。 您有Corona SDK(Lua),Marmalada(C ++)等。