BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleのJ2ObjC 1.0がJavaコードをObjective-Cに変換する

GoogleのJ2ObjC 1.0がJavaコードをObjective-Cに変換する

原文(投稿日:2016/02/05)へのリンク

J2ObjCは,Googleが開発した,Javaコードを iOSの上で実行可能なObjective-Cコードに変換するオープンソースツールである。Javaで記述されたビジネスコードをAndroidとWeb, そしてiOSで共有することが目的だ。Webへの変換はGWTを使って行なう。UIコードは扱わないので,別途プラットフォーム毎に作成する必要がある。

J2ObjCの発表は2012年にまで遡る。その時点では,動作の詳細を示すためのアルファリリースだった。その後長い開発期間を経て1.0安定版となり,Inbox, Calendar, Docs, Sheets, Slides, Google My BusinessなどといったアプリケーションのiOSへの移植に使用された。並行して,対象とするJavaもJava 6からJava7, そしてJava 8へとアップグレードされている。“Java, iOS, Xcodeの現行と,そのひとつ前のメジャーリリースをサポートする”方針だと,プロジェクトに関わるGoogleエンジニアのTom Ball氏が説明してくれた。J2ObjCにはJUnit, Mockito, Gradle, Mavenが統合されている。 ネイティブメソッドを通じて,Objective-CコードのJavaコードへの埋め込みもサポートする。

Java 8のサポートレベルに関する我々の質問に対して,Ball氏は次のように答えてくれた。

“Java 8”をどう定義するかにもよりますが :-),ラムダ式やメソッ参照など,Java 8の新しい言語機能を追加でサポートしています。ただし,私たちのJREランタイムがAndroidのlibcoreライブラリをベースにしている都合上,Java 8で導入された新APIはサポートできていません。libcoreチームの進捗とは定期的に調整していますから,彼らが追加でサポートするJava 8については,間もなくJ2ObjeCのランタイムにも追加されます。

今後の開発について,Ball氏は次のように加えている。

J2ObjCは基本的に開発ツールですから,今後の計画は,それを利用するアプリ開発者の要望によって決まります。現在私たちが耳にしているのは,AppleがリリースするiOSの新機能を引き続きサポートすること,Swiftとの相互運用性の向上,Java 8 APIのサポート,ツールの統合性向上,ビルド時間の短縮などです。コンパイラ技術者としては,生成するコードの最適化や,報告を受けたバグの早急な修正なども重要だと思っています。

J2ObjCはApache License 2.0でライセンスされている。

 
 
 

この記事を評価

関連性
形式
 
 

この記事に星をつける

おすすめ度
スタイル

BT