HTML5の課題とPWA
先週Flashサポート終了の話を書きましたが、タイミング良くというかなんというか、PWAの記事が出てきました。
PWA(Progressive Web Apps)というのは、Webアプリにネイティブアプリ並の操作性や表現力を持たせようとするものです。AMPなどと同様にGoogleが中心になって推進しており、これまではAndroid Chromeを中心に採用が進んでいましたが、iOSでは未対応でした。それが、iOSでも使えるようになる(かもしれない)というのです。
Webアプリ対ネイティブアプリ
Webアプリというのは、Webブラウザの中で動くアプリです。これに対し、PCなどにインストールして使う普通のアプリをネイティブアプリと呼びます。ネイティブって、うまい日本語が無いのですが、「土着」とか「先住民」という意味で、ここでは特定のプラットフォーム専用という意味でしょう。Webアプリを動かすブラウザそのものも、ネイティブアプリです。
ネイティブアプリの場合、WindowsアプリはWindows用に開発され、Windowsでしか動きませんし、同様にMac用アプリはMacでしか動きません。そのプラットフォーム専用のソフトウェアなのです。その代わり、WindowsやMacに最適化されていて、速度も速く、プラットフォームの機能もフルに引き出すことができ、使いやすいアプリを作ることができます。
一方Webアプリは、HTMLやJavaScriptなどの標準技術をベースにしており、標準技術に準拠したブラウザさえあれば、プラットフォームがWindwosだろうがMacだろうが関係ありません。インターネットの普及によってWebブラウザが様々なプラットフォームに標準的に装備されるようになると、プラットフォーム毎に開発・テストが必要なネイティブアプリでは無く、Webアプリとしてマルチプラットフォームに対応できるのではないかという試みが始まったのです。
Webブラウザの限界
しかし、大きな問題がありました。Webブラウザというのは「インターネット閲覧ソフト」とも言われるように、元々は「表示」が目的で、しかも標準が策定されたのが古いために動画や音声、アニメーションなどの所謂マルチメディアを取り扱うことができなかったのです。Webアプリに必要なUIを作るための機能も不足していました。
そこで注目されたのが、Flashだったのです。Webブラウザの機能を拡張し、動画や高度なUIに対応できるFlashは、Webアプリ時代には欠かせない技術でした。Flashによって、ネイティブアプリ並みの表現力・操作性を手に入れることができ、マルチプラットフォームに対応できる環境が整ったのです。(繰り返しになりますが、ブラウザも、そのプラグインとして動くFlashも、それそのものはネイティブアプリですから、プラットフォーム毎に開発しなければなりません)
FlashからHTML5へ
しかしFlashはプロプライエタリな技術であるため、標準技術のみというわけではありません。Flashを使わずになんとかWebブラウザの表現力・操作性を上げるためにAjaxが開発され、それがHTML5へ引き継がれる中でFlashが衰退していく経緯は先週書きました。
ところが、話はそううまくは行きませんでした。Ajax/HTML5は発展途上の技術だったため、当初はパフォーマンスが出なかっり、機能が不足したりしていたのです。未だに速度・機能の面で、ネイティブアプリはおろか、Flashにも劣る部分が多く残っています。
HTML5は未完成?
そう、Flashが無くなることは決まったけれども、それを置き換えるべきHTML5はまだ完成したとは言えない状況にあるのです。Googleが躍起になってPWAやAMPなどの技術を開発しているのは、このためとも言えるでしょう。
しかし、Googleが頑張れば頑張るほどまわりがついてこないという皮肉な展開になっています。最初の記事にもありましたが、AppleにはAppleの事情があり、「はいそうですか」とは行かない部分もあるのです。
Googleだけがサポートする技術ということなら、Flashと変わらないということにもなりかねません。Googleはこの技術をなんとか次世代のHTMLに反映させるべく開発を続け、なおかつ仲間を募っているわけです。