![]() |
VOOZH | about |
眾所周知當今寫一個應用你需要有大的訪問量的話必然要跨多個平台,移動端你起碼需要覆蓋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/