対応できるのは「HTML5」

しかし諦めることはありません。

この3拍子を満たすことができるアプリケーション開発手法が存在します。それが、「HTML5」によるアプリ構築です。

「HTML5」は、「CSS3」や「JavaScript」も含めたWebページの表現技術を指しますが、その高い記述力を活かして、スマートフォン・アプリを開発する手法としても応用可能です。

プラットフォームごとに異なるフレームワークをもつ「ネイティブアプリケーション」(通常のアプリケーション)に対して、「HTML5」はW3Cによって標準規格化されています。
これを用いれば、同じコードをそれぞれのプラットフォームで動作させることができるのです。

 では、具体的にはどのように実装するのでしょうか。
HTML5によるスマートフォン・アプリケーションは、その実行方法によって大きく2つに分けることができます。


①ブラウザから実行する方法
インターネット上にアプリのHTMLファイルを設置し、ブラウザでアクセスします。
②WebViewにバンドルする方法
ネイティブアプリケーションに存在するWebViewという機能を用いて、ネイティブアプリ上にHTML5アプリを構築します。


 HTMLという技術の特性を考えると、まず思いつくのは、①の「ブラウザで実行する方法」でしょう。
この方法を採る場合、ユーザーはアプリが設置されているURLにブラウザを利用してアクセスすることになります。
いわゆる「ウェブ・アプリ」と同じ形態になりますが、このときにブラウザの中に「ネイティブ・アプリ」に似せた「ユーザー・インターフェイス」を実現するなどで、スマートフォンに特化させることが可能です。

 一方、「WebViewにバンドルする方法」は、ブラウザを用いません。
多くのプラットフォームは「WebView」と呼ばれるHTML表示用UIコントロールを提供しており、これに「HTML5」で記述したアプリを“表示”するのです。
この表示機能だけを実装した小さなネイティブアプリに、HTML5で書かれたアプリ本体をバンドルすることで、実現します。

 ホームやドロアにアイコンが表示され、ユーザーからはネイティブアプリにかなり近い見た目になります。
また、もうひとつのメリットとして「アプリの挙動に対する制限が弱い」ことがあります。

方法による比較

 ブラウザから実行WebViewにバンドル
起動方法ブラウザにURLを入力アプリアイコンから起動
インターフェイスHTML5によって記述HTML5によって記述
拡張性制限が大きい制限が小さい
デバイス利用HTML5の範囲内で可工夫によりネイティブと同等に可

スマートフォンに搭載されているブラウザはセキュリティへの配慮などのため制限がありますが、「WebView」はそれらの制限をデベロッパが制御できるため、自由度を高く取ることができます。

アプリの性質にもよりますが、この比較からブラウザを経由して提供するよりも「WebView」を利用したネイティブアプリケーション型実装にメリットが大きいと判断することができます。
ところが、この場合「HTML5」のアプリ本体だけでなく表示用のネイティブ・アプリをプラットフォームぶん、別々に開発する必要があります。
さらに、デバイス操作系命令を利用したい場合、このネイティブアプリ部に改造を加えなければなりません。
これらの作業は、“マルチプラットフォーム化が簡単”というメリットを薄めてしまいます。