我受雇为我的雇主创建的网络服务开发移动框架。理想情况下,管理层希望拥有一些可以跨移动平台共享的可重用组件(最初是 iOS 和 Android,以后可能是 Windows Phone 7)。
我一直想知道这有多可行。其中一个要求是原生界面,因此我们将在 iOS 上使用 Cocoa Touch 以及任何(基于 Java 的)工具集来为 Android 创建原生 UI。该应用程序将与 web 服务交互,主要是我们在内部创建的那些。 Web 服务是在 .NET 中开发的。
就可重用组件而言,我想我们可以使用一些 C++ 代码来进行 Web 服务调用,甚至可能更多地用于应用程序的后端,但我想知道这是否是一个好方法。 Apple 的 Foundation Framework 内置了一些出色的功能来访问 Web 服务,更不用说其他开源库,例如ASIHttpRequest、SBJSON 等……我想 Android 也是如此(尽管我目前还没有真正的 Android 经验)。此外,在查看 Google、Twitter 和 Facebook 等公司完成的项目时,这些公司中的每一个都提供为主要移动操作系统平台构建的本地库。如果大公司采取这种做法,我们也顺理成章。
也许我们应该更多地关注我们应该跨平台提供的通用架构,而不是可以共享的实现。
有没有人建议我们使用 C/C++ 为我们的 web 服务的移动站点开发这样一个框架(共享库)?如果有,为什么?
Best Answer-推荐答案
这实际上取决于您想要拥有什么级别的自定义代码。我之前在一家游戏公司工作,我们为 iPhone 和 Android 制作了两款游戏,至少 90% 的代码库在两个平台之间以 c++ 代码共享。有时使用专门的第三方库(如 Facebook 等)实现元素要容易得多,但维护该代码意味着在两个平台上不断地这样做。这就是为什么我们甚至用 C++ 为我们的游戏实现自己的 UI 对象的原因之一。因为即使使用 Interface Builder 和 Android 的 XML 进行初始设置会更容易,但由于我们使用了共享代码库,因此所需的维护和调整最终会大大减少。
简而言之,我强烈建议使用 C/C++ 编写任何共享的自定义代码,以及在其 native 代码库(android 的 java 或 iphone 的 obj-c)中容易得多的东西,而且你不希望改变很多,要分开。
关于android - 在 iOS 和 Android 项目之间共享代码,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5858504/
|