HTML5 vs ネイティブ。モバイルアプリはどちらで開発するべき?(前編) Google I/O 2011
モバイルアプリケーションを開発する方法として、JavaやC/C++などのプログラミング言語とSDKを用いてネイティブアプリケーションとして開発する方法以外に、HTML5/CSS/JavaScriptを用いて開発する方法が登場してきています。
この2つのアプリケーション開発にはどのような違いや利点があるのでしょうか? Androidを題材にして解説したセッション「HTML5 versus Android: Apps or Web for Mobile Development?」がイベントGoogle I/O 2011で行われました。
HTML5でモバイル開発を行う利点
Reto Meier氏(左)、Michael Mahemoff氏(右)。

HTML5とネイティブアプリケーションについて、その違いやそれぞれの利点について紹介したいと思う。

Mahemoff氏。まずはHTML5のケースについて紹介しよう。
HTML5はすでにモバイルプラットフォームで使える技術であり、多くの機能を備え、広く使われているオープンな仕様である。

ネイティブアプリ? なんのネイティブ? OSのバージョンも複数あり、プログラミング言語も違うし、環境が変われば学習しなおさなければならない。テストにも時間がかかるだろう。

HTML5はさまざまなデバイスに対応できる。どのデバイスもWebブラウザを備え、HTML5に対応している。タブレットにも、テレビにも。さまざまなOSに対応している。Webアプリケーションなら、どんなプラットフォームでも利用できるのだ。

HTML5はフレキシブルだ。HTMLでコンテンツを、JavaScriptでロジックを、CSSでデザインを設定する。CSSで同じコンテンツに対して画面の大きさの違いにも対応できる。

HTML5の機能を見てみよう。ジオロケーションの地理情報や、マルチタッチ、カメラのようなデバイスAPIや音声認識といった入力機能を備える。

アウトプットには、Canvasによる描画やビデオなどの機能も備える。

AjaxやWebSocketなどのネットワーク機能も実現している。オフラインも備える。こうした多機能なのがHTML5だ。

そして標準がベースになってさまざまな実装が登場し、それぞれが競争して高速なものになっている。
iPadアプリケーションをHTML5で開発する例が出てくるなど、HTML5はモバイルアプリケーションのための技術として使われ始めている。
そしてさまざまなライブラリ、デバッグツール、コミュニティなど、HTML5を取り巻く環境も充実している。

(では、ネイティブアプリケーションの利点とは何か? 続きは「HTML5 vs ネイティブ。モバイルアプリはどちらで開発するべき?(後編) Google I/O 2011」で)