Android Weekly Topics

2014年8月第4週最近のスマートデバイス周りのクロスプラットフォーム動向について

クロスプラットフォーム開発が注目される中、飛び道具が登場!

モバイルの世界はAndroidとiOSの二大巨頭が存在し、その後ろをWindows PhoneやFirefox OSなど、第三のOSと呼ばれる軍勢があとを追う構図です。

モバイル向けのビジネスを検討する際は、AndroidとiOSへの対応は避けて通ることはできません。ただ、両方のプラットフォームに対応するとなれば、開発・維持コストが倍になり、開発チームは似たバグを書いて、両方で修正することになるなど、本筋でない部分で頭を悩ませることになります。別々のコードを持つと、こうした問題を抱えることになるので、クロスプラットフォームライブラリを用いて開発をすることが注目されています。

たとえば、アプリ内にWebViewを内蔵して、HTML5+CSS+JavaScriptでアプリを開発するPhoneGapやTitanium Mobileなどは、よく知られた存在です。これらは、登場したころから見ると開発環境がこなれて来たので、大規模なアプリ開発も難なくこなせるようになりました。

最近、増えているのが、C++を使ったクロスプラットフォーム開発です。

iOSのObjective-Cは、C++を混在してアプリが開発できます。また、Androidは、NDKを使えばC++の関数をJavaのコードから呼び出せます。こうした特性を活かして、データやロジック部分などとUI部分を可能な限り分離して、ロジック部はC++で、UI部分はネイティブで開発する手法が取られてりうケースもありまああす。Dropboxは、こうした手法でクラスプラットフォームアプリが開発されており、GitHubにもその成果が公開されているので、気になる方は参考にしてみると良いでしょう。

アプローチは異なりますが、商用ベースであれば、C++ Builder XE 6があります。これでは、プロジェクト単位で、Windows、Mac、iOS、Androidのネイティブアプリが構築できるとしています。

Android端末でiOSアプリが動作する技術「Cider」

クロスプラットフォーム開発のアプローチとは別の方向から、AndroidとiOSの垣根を取り払おうとする取り組みが行われています。それは、⁠Cider」⁠サイダー)と呼ばれ、コロンビア大の学生が、AndroidでiOSアプリを動作させるアーキテクチャの開発に成功しています。

実際に、Nexus 7(2012)を使ってiOSアプリを動かしている様子がYouTubeで公開されています。

いまとなっては、Nexus 7(2012)はパフォーマンスの高い端末ではありませんが、公開された動画を見る限りでは、動作が遅く実用にはならない印象を受けます。

iOSアプリには、iOS端末上で使用されていると認識させて、Nexus 7で動かしているとされています。これ以上の詳しいことは分かりませんが、ベースはAndroidなので、iOSアプリとAndroidの間を取り持つ技術が何らか存在しているはずです。

OSの垣根をこえてアプリが使えるようになるのは、技術的には面白い試みではありますが、実際はAppleが許可するとも思えず、叶わぬ想いのままで終わってしまい、われわれの手に届くようなことはないかもしれません。

Ciderがいまのような形で目の前に登場することはないとしても、ここで開発された技術や蓄積されたノウハウは、クロスプラットフォームアプリを開発するためのライブラリとして、登場する可能性も十分に考えられます。むしろ、早々に方向転換してくれると、多くのデベロッパーが抱えている課題を解決する大きなキッカケとなるかもしれません。

今週は、このあたりで。また、来週。

おすすめ記事

記事・ニュース一覧