我受雇为我的雇主创建的网络服务开发移动框架。理想情况下,管理层希望拥有一些可以跨移动平台共享的可重用组件(最初是 iOS 和 Android,以后可能是 Windows Phone 7)。

我一直想知道这有多可行。该应用程序将与 web 服务交互,主要是我们在内部创建的那些。 Web 服务是在 .NET 中开发的。

就可重用组件而言,我想我们可以使用一些 C++ 代码来进行 Web 服务调用,甚至可能更多地用于应用程序的后端,但我想知道这是否是一个好方法。此外,在查看 Google、Twitter 和 Facebook 等公司完成的项目时,这些公司中的每一个都提供为主要移动操作系统平台构建的本地库。如果大公司采取这种做法,我们也顺理成章。

也许我们应该更多地关注我们应该跨平台提供的通用架构,而不是可以共享的实现。

有没有人建议我们使用 C/C++ 为我们的 web 服务的移动站点开发这样一个框架(共享库)?如果有,为什么?

这实际上取决于您想要拥有什么级别的自定义代码。有时使用专门的第三方库(如 Facebook 等)实现元素要容易得多,但维护该代码意味着在两个平台上不断地这样做。这就是为什么我们甚至用 C++ 为我们的游戏实现自己的 UI 对象的原因之一。因为即使使用 Interface Builder 和 Android 的 XML 进行初始设置会更容易,但由于我们使用了共享代码库,因此所需的维护和调整最终会大大减少。

简而言之,我强烈建议使用 C/C++ 编写任何共享的自定义代码,以及在其 native 代码库(android 的 java 或 iphone 的 obj-c)中容易得多的东西,而且你不希望改变很多,要分开。