J2ObjC 是一個Google開發的開源工具,用於將Java代碼轉換為Objective-C代碼。其目的是為了能在iOS平臺上重用Android平臺、web伺服器端的Java代碼。伺服器端代碼的轉換由 GWT 完成。J2ObjC並不轉換UI代碼,這部分需要針對不同平臺分別開發。 我們在2012年發 ...
J2ObjC 是一個Google開發的開源工具,用於將Java代碼轉換為Objective-C代碼。其目的是為了能在iOS平臺上重用Android平臺、web伺服器端的Java代碼。伺服器端代碼的轉換由 GWT 完成。J2ObjC並不轉換UI代碼,這部分需要針對不同平臺分別開發。
我們在2012年發佈了J2ObjC的alpha版本,並公佈了部分實現細節。J2ObjC的逐漸發展到穩定版1.0版本,並應用於開發Inbox、Calendar、Docs、Sheets、Slides和Google My Business等Google產品的iOS版本。同時,J2ObjC由Java 6升級到Java 7和Java 8,該項目的Google工程師Tom Ball表示這是為了“支持當前和過去主流的Java、iOS和Xcode發佈版本”。此外,J2ObjC集成了JUnit、Mockito、Gradle和Maven,並支持 通過原生方法將Objective-C代碼嵌入Java代碼 。
在被問到J2ObjC對Java 8的支持程度時,Ball告訴我們:
這取決於怎麼定義"Java 8"。:-)我們加入了對Java 8一些語言特性的支持,如lambda表達式和方法索引。但是因為我們的JRE運行時基於Android的 libcore庫 ,所以目前還不支持任何Java 8引入的API。我們計劃與libcore團隊定期同步,這樣他們添加的所有Java 8支持都能很快地被引入到J2ObjC的運行時。
談及未來發展,Ball補充道:
J2ObjC主要是一個構建工具,因此會根據使用該工具的應用開發人員的需求來確定未來計劃。我們現在瞭解到的需求是,他們希望我們持續且快速地支 持iOS新特性、優化Swift互操作性、支持Java 8介面、提供更好的工具集成、減少構建次數。作為編譯器開發工程師,我們也會專註於優化生成的代碼和快速修複bug。
J2ObjC使用Apache License 2.0許可協議。
查看英文原文: Google’s J2ObjC 1.0 Translates Java into Objective-C
中文翻譯:http://www.infoq.com/cn/news/2016/02/j2objc