众所周知当今写一个应用你需要有大的访问量的话必然要跨多个平台,移动端你起码需要覆盖 android 和 ios 平台,而你又不能忽略 PC 端的用户。如果你不考虑原生应用带来的性能和 UI 适配度,你当然可以基于浏览器核心来使用流行的 Javascript+HTML5+Phonegap 等封装成一个跨平台应用。但是 Google 的 Gmail 团队是个有追求的团队,它当然不会牺牲各个平台的性能和原生应用的 UI 适配度来做出 compromise 了。

那么如果给每个平台开发原生应用的话,对于 google 自身的安卓来说,当然需要用到的开发语言技术是 Java 了,而对于 iOS 来说,如果 Swift 没有被口水淹死而得以应用之前当然是 Objective C 了,对于 Web,那毫无疑问使用技术将会是 JavaScript/CSS/HTML5。

如果 Inbox 是微软做的话,我相信他们的开发团队毫无疑问会选择他们家的 Xamarin 基于 C#,.net 和 Mono 的跨平台开发框架来完成这方面的工作以达到一劳永逸的效果了。而对于 Google 来说,它当然不屑于用微软的框架,他们拥有自己的一套工具来实现跨平台。

Google 的做法是使用使用一些工具实现了 70% 的代码跨平台复用。Inbox 在各个平台使用的是相同的后台代码逻辑,但前端的 UI 因平台相关性会有所不同。Google 有自己的一套工具让他们只需要在安卓上使用 Java 开发一套后台代码逻辑,然后就可以将它们转换成对应的 Objective-c 和 Javascript 来适应 iOS 和 Web 浏览器:
- JavaScript 的转换由 Google Web Toolkit SDK 来完成
- Objective-C 的转换由 J2ObjC 来胜任

J2ObjC 其实早在 2013 年就已经出来的了,但是 Google 真正很大程度在自己的项目中派上用场却是在 Inbox 这个项目上面。期解决了 Google 跨平台移动开发的这个严重问题,同时也适配了高傲的 google 就算在开发跨平台应用依然是安卓先行的理念。
至于 Inbox 项目具体是如何在跨平台中达到 70% 的代码共享的详细细节,请大家查看以下链接,本文只是希望能做到一个抛砖引玉的作用,或者让你作为一杯早茶或者下午茶来在空闲时小抿一口而已。http://arstechnica.com/information-technology/2014/11/how-google-inbox-shares-70-of-its-code-across-android-ios-and-the-web/

转载请尊重原创/译
作者:天地会珠海分舵
CSDN:http://blog.csdn.net/zhubaitian


↙↙↙阅读原文可查看相关链接,并与作者交流