Retrofit分析-謎之槽點

沒耐心自己分析源碼的同學,還可以參考Stay錄制的視頻版
Retrofit分析-漂亮的解耦套路(視頻版)

fed9585fb01c944685b113aee6a69b48.jpg

情況是這樣的,昨天手賤翻了下retrofit源碼,其中有個類叫Platform。除了描述它是個動態代理之外,更有趣是它的初始化方式。看圖:

Screen Shot 2016-03-31 at 6.13.47 PM.png

findPlatform() 先找Android,沒Android找Java,連Java都沒有它居然投靠iOS去了。響當當的retrofit居然會是這種人!

慢著。org.robovm.apple.foundation.NSObject。這是什么鬼。這import肯定不對嘛。

Screen Shot 2016-03-31 at 6.12.18 PM.png

那google下吧,robovm.com。媽蛋,還真有這么回事。Robovm可以編譯java代碼并有iOS一整套的轉化代碼來橋接。這樣就能用java開發iOS啦。

類似這樣的橋接生成native代碼的見過不少,相當于一個中間件。lua可以,js可以,flex可以。但我還沒遇過像Robovm這樣直接用java轉iOS的。這太有趣了。

感興趣的可以去瞧瞧github:https://github.com/robovm/robovm

but,僅僅是轉成OC,并不是swift,而且被收購之后也不開源了。價格還不菲。

Screen Shot 2016-03-31 at 6.11.52 PM.png

那么問題來了~為什么retrofit會把這樣一段商業代碼放在開源庫里?難道之前贊助過Robovm?

是不是square的java員工太多啦?你看okhttp,retrofit都是java+android,iOS庫就沒多少。正好用robovm來轉一下?

這都是謎。好了。寶寶不想往下扒了。繼續看源碼去。
?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容