「だったら自分に合ったクロスプラットフォーム開発ツールを選んで、後は目的に応じて出力先のプラットフォームを変更すればいいじゃないか」と思うが、これにはいくつかの問題がある。
まず、出力されたアプリが個々のプラットフォームの動作に最適化されているとは限らず、特にパフォーマンス面やハードウェア機能の利用面でネイティブアプリに比べて不利になる場合がある。
そして一時期クロスプラットフォーム開発ツールが下火になった理由の1つが「Appleによる事実上のクロスプラットフォーム開発ツール利用制限」だ。同社がかつてiOS 4 SDK(当時の名称はiPhone OS 4 SDK)をリリースした際、開発環境として(Appleの開発ツールである)XcodeとObjective-Cの組み合わせで作ったアプリのみ、App Storeへの登録が可能という制限を付けた。
当時のCEOだったスティーブ・ジョブズ氏と開発者らとのやり取りが話題になったが、「潜在的なライバル排除が狙い」という感想を筆者を含めて抱いた人は結構いただろう。現在でこそ、こうした制限はないものの、「プラットフォームを提供している会社のさじ加減1つで、いくらでも状況は変化する」というクロスプラットフォーム開発ツールのリスクはいまだに残っている。
一方、こうした制約こそあるものの、もし必要に応じて幅広いプラットフォームをサポートしなければならなくなったとき、クロスプラットフォーム開発ツールの存在はありがたい。
2014年4月初旬に開催されたMicrosoftの開発者会議「BUILD 2014」では、MicrosoftとXamarinの提携が発表された。
ここで「Xamarinとはなんぞや?」と思われる方も少なくないだろうが、源流をたどるとLinuxに.NET Frameworkを実装する「Mono」と、モバイルデバイスで動作する「MonoTouch」プロジェクトに行き着く。Novellによるプロジェクト買収などを経て、現在では独立企業体で「Xamarin」としての運営が進められており、主に「.NETによるクロスプラットフォーム開発」を目的としている。
MicrosoftはBUILD 2014で.NETコンパイラのオープンソース化プロジェクト「Rosslyn」を発表するなど、外部開発者らとの連携を強めており、Xamarinとの提携も.NET強化プロジェクトの一環だ。
Microsoftによれば「現在、企業においてiOS/Androidデバイス利用が広がるなど、開発者がサポートすべきプラットフォームが拡大しており、.NET開発を行うデベロッパーがクロスプラットフォーム開発環境として、Xamarinを選択できるようにする」とその狙いを説明する。
つまり、主に企業内で使われるカスタマイズされた業務アプリなどでの利用を想定しているということだ。以前までVB(Visual Basic)を使って業務アプリケーションを構築していたものが、Xamarinのようなツールで置き換えられつつある、と想像すればいいだろう。
Windowsでの.NET開発とは別に、もう1つ注目なのがHTML+CSS+JavaScriptというプログラミングの選択肢だ。Webブラウザで表示可能なWebページの記述言語であり、これをアプリケーション・プログラミングに応用したものだ。Windowsストアでは3種類ある開発手法の1つに含まれており、重要度は高い。
本来、HTMLとJavaScriptによるプログラミングは難易度が高く、Googleが「Google Maps」などで実用化を果たすまでは、Webブラウザ間の互換性問題もあり、なかなか利用が進まなかった。しかし現在では、iOSを含む多くのプラットフォームでサポートが行われており、Firefox OSに至っては主要な開発手法の1つとなっている。
この手法が注目を集める理由の1つは、Googleの「Chrome OS」で利用されるアプリだ。ここで実行されるアプリは、Chrome Appsと呼ばれ、基本的にすべてHTML+CSS+JavaScriptというWeb技術で記述されている。ただし、ハードウェアなどローカル機能へのアクセスの必要性から、Chrome Apps用のAPIがChrome経由で提供されている。これはChrome WebブラウザにあるExtensionsと同じ仕組みとなっており、実質的にこの部分のみがGoogleの独自実装となる。
Chrome Appsは通常のWebアプリであるため、どのWebブラウザであっても基本的には動作する。ただし、これが現在多くの人々から注目を集めているのは、将来的にWindowsなどのライバルを食う可能性を秘めたChrome OSアプリの動作プラットフォームであるという点と、GoogleがAndroidやiOS版をリリースして話題となった「Mobile Chrome Apps」の存在にある。
Mobile Chrome Appsでは、AndroidやiOSでChrome Appsが動作可能なランタイム環境を提供し、同時にアプリ本体とランタイムをパッケージ化することで「そのまま実行可能なアプリ」として再配布を可能にしている。かつてAdobe CS+Flash PlayerやJavaで実現できなかった世界を目指しているともいえ、その意味で動向に注目が集まっているのだ。
もし、この形式がメジャーな存在となった場合、再配布やクロスプラットフォームの容易さからHTML+CSS+JavaScriptが選択されるケースが増えてくるだろう。Windows開発者は.NETと同時に、HTML+CSS+JavaScriptの動向にも注視しておくべきなのかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.