HTML5とハイブリッドアプリの台頭

本日、Video Cloud に続く、2つ目の製品となる App Cloud をリリースしました。製品の詳細な機能についてはこちらを是非御覧ください。このブログエントリーでは最近のスマートフォン・タブレット向けのアプリのトレンドや App Cloud 開発の背景を紹介したいと思います。

このブログの要旨をまとめると次の4つです。

  1. ネイティブ・アプリは単なるはやりではなく、これからも伸びていく
  2. HTML5 によってネイティブ・アプリの開発の方法が変わってきている
  3. ネイティブ・アプリとHTML5が今後のテクノロジーの主役になる
  4. ネイティブ・アプリは通過点であり、最終目的地ではない
     

ハイブリッドアプリとは

下記の6つのネイティブアプリに共通していることはなんでしょうか。

Hybrid Apps Built with HTML5

答えはこの5つのアプリはいずれもHTML5とネイティブコンテナで構成されているハイブリッドアプリです。AndroidならJava、iOSならObjective-Cといったプラットフォーム独自の開発言語を駆使して、ゼロから構築されたものではなく、ネイティブコンテナ(WebViewコンポーネントなどの)のなかで、コンテンツをHTML5で提供しています。HTML5のウェブページやウェブアプリはそれだけでは iTunes App Store や Google Android Market に公開することは出来ませんが、ネイティブのコンテナを用いることでアプリとしてパッケージし、それを可能にしています。また、ネイティブのコンテナを使うことで、ブラウザ+HTMLからはアクセスすることができない、カメラ、マイク、コンタクトリスト、GPS、プッシュメッセージなどのデバイスのネイティブ機能が利用できるようになっています。
 

ハイブリッドアプリのアプローチを採用する企業

Facebook の iPhone 用ネイティブアプリがリリースされたのは 2007 年のことでした。iPad 用 Facebook のアプリはそれから遅れること約4年、2011年10月になってやっとリリースされました。この iPad 版 Facebook アプリのリリースと同時に新しい iPhone版、Android版のFacebookアプリがリリースされました。最新の Facebook のアプリはハイブリッドアプリです。Facebook が当初リリースしていたネイティブアプリからハイブリッドアプリへ方向転換をしたとこについて、Facebook のモバイルエンジニアリングマネージャの David Fetterman は次のように語っています。

『我々(Facebook)の開発者はHTMLをよく知っている。しかしながらその中でObjective-CやAndroidプラットフォームに精通しているものはほんの僅か。[ハイブリッドアプリを採用することで] HTMLに精通しているWeb開発チームがクライアントサイド(iPhone や Android)の開発者と同じ土俵に乗ることができるようになった。』

“All of our developers are good at HTML. Only a few of them are really good at Objective-C and Android. We are able to make our web developers the same as our client-side developers in some respects.”
ReadWriteWeb.com: How Facebook Mobile Was Designed to Write Once, Run Everywhere より)

Facebook のような膨大な開発リソースを抱える会社でさえ、ネイティブ言語の開発者のリソース確保に四苦八苦し、ハイブリッドアプリへ向かって開発手法を戦略的に変更している点は非常に興味深いものがあります。Facebook で見つけることができないとなると、どこの企業で潤沢にObjective-CやJavaなどのネイティブ言語でのアプリ開発者のリソースを確保することができるのでしょうか。

Netflix も同様にハイブリッドアプリへの未知をたどってきました。HTML5をネイティブアプリのUIに採用して既に1年以上が経過しています(Netflix ブログエントリー: Why We Choose HTML5 for User Experiences on Devices)。Netflix の HTML5ベースのアプリはモバイルデバイスだけにはとどまらず、スマートTV、セットトップボックス、ゲームコンソールなど様々なデバイス向けに出荷されています。さらに、講演やブログなどの機会に彼らのハイブリッドアプリのアプローチに強い信念と乗り越えてきた課題を共有しています(Netflix ブログエントリー: Netflix WebKit-Based UI for TV Devices)。

Microsoft もハイブリッドアプリの手法を取り入れています。最近リリースされた Bing のモバイルアプリでも、HTML5 とネイティブコンテナを使ったハイブリットアプリとしてリリースされています(Bing for Mobile Goes HTML5)。Windows 8 のネイティブアプリ開発に HTML5 がサポートされたことが、Microsoft の開発者コミュニティに一抹の不安を投げかけているようで、今後 Windows Phone のプラットフォームで HTML5 がどのような役割を果たしていくのかは明言が避けられているようですが、HTML5 が ユーザエクスペリエンスのエンジンとして採用される可能性は極めて高いのではないでしょうか。
 

ハイブリッドアプリへ投資をする企業

ハイブリッドアプリへの傾倒は企業のリリースするネイティブアプリだけではなく、企業の買収戦略の中にも垣間見ることができます。

Attribution: iChaz

最近 Adobe は Nitobi というベンチャを買収しました。PhoneGap という名前のほうが有名かもしれませんが、その開発ベンダーが Nitobi です。HTML5 関連のソリューションやツールに投資を加速する Adobe のモバイルデバイス・モバイルアプリ戦略を象徴する買収ではないでしょうか。PhoneGap はHTML5 とネイティブコンテナを使ってウェブ開発者がアプリ開発を可能にするもので、ハイブリッドアプリのなかでは老舗に入ります。Adobe はこの買収によって向こう10年のツールベンダーとしての優勢を確保したいという狙いがあるようです。デスクトップのウェブブラウザ向けにHTML5 のウェブサイトを構築するツールを提供するために Adobe が PhoneGap を買収したわけではありません。買収しなくても DreamweaverEdge などのツールによって実現可能です。PhoneGap の買収によって手に入れたものは、スマートフォン・スマートデバイスのネイティブOSとHTML5を結びつけるネイティブコンテナであり、ハイブリッドアプリには欠かせないものなのです。

Facebook も最近 Strobe という会社を買収しました。strobe もまたハイブリッドアプリのアプローチに力を注いできたベンチャで、Facebook がハイブリッドアプリの重要性を認識していることが明確に現れている買収です。strobe は Charles Jolley が発案した JavaScript のフレームワーク SpoutCore をベースに、商用サービスを展開している企業です。SpoutCore はタッチウェブアプリとネイティブコンテナを組み合わせてハイブリッドアプリが開発できるフレームワークです。strobe が Facebook の一部となり 彼らが提供しているコアテクノロジーとクラウドサービスがどうなるのか不透明になってしまったのは残念ですが、Charles Jolley氏と彼のチームは Facebook に加わり Facebook のハイブリッドアプリを中心にしたアプリ戦略の実現に向けて従事しているとのことです(ReadWriteWeb: Facebook's Charles Jolley: Moving HTML5 Forward, This Time With Help)。
 

App Store の成功と経済合理性

ネイティブアプリが最初に登場した時にはハイブリッドアプリがここまで注目を集めるとは誰も予測してなかったでしょう。Apple が当初描いていたビジョンはウェブアプリとネイティブアプリには明らかに超えられない一線があり、ネイティブコードで書かれたネイティブアプリのほうがユーザ体験の点においても、収益化の点においても優れているという考えでした。最初のバージョンの iPhone がリリースされた際、iTunes App Store はなく、ブラウザのブックマークが唯一の導線でした。ブラウザのブックマークという限られた範囲では不十分であるとし、Apple デベロッパコミュニティは iPhone のネイティブアプリを開発するためのツールの提供を切望しました。その結果、iPhone のリリースから14ヵ月後の2008年3月に Apple は iPhone アプリ開発用の SDK と iTunes App Store をリリースしました。

スマートフォン向けのアプリはその地位を確立し、それ以来躍進を続けています。近い将来「アプリ」というコンセプトが消えてなくなってしまうとか、流行が去ってしまうということは考えにくいでしょうが、ネイティブアプリが順風満帆というわけではなさそうです。問題点や企業が直面するチャレンジが少しづつではありますが、浮き彫りになって来ました。

プラットフォームに特化した開発言語でのアプリ開発は決して安価なものではありません。Indeed.com という求人情報サイトで検索をしてみると、ネイティブアプリ開発者はウェブサイト・ウェブアプリ開発者に比べて28%高い報酬が支払われています(Indeed: Salary Search)。Facebook がハイブリッドアプリに積極的なのも納得できるのではないでしょうか。

ネイティブアプリの開発者は高価であり、絶対数が少ないという点以外にも、非常に特化したスキルであるでというポイントがあります。iOSの開発者のチームがそのままAndroidのアプリ開発ができるとは限りません。開発言語によってプラットフォームに限定されてしまうからです。

これはスマートフォン、タブレット、スマートデバイスなどのプラットフォームが急速に浸透している昨今、特に頭の痛い問題です。現状数え上げるだけでも、iOS, Android, Blackberry, Windows Phone, Nokia, Samsung Smart TV, LG Smart TV, Panasonic Viera Connect, Sony PlayStation Suite などのプラットフォームが存在しています。これから新しいプラットフォームが登場するかもしれませんし、この中から数年後にはなくなってしまっているものもあるかもしれません。どれか一つのプラットフォームが独占するという状況も考えにくいです。つまり、プラットフォームが断片化された状態が永遠に続いていくことにほかならないのです。

もし仮に、IE, Chrome, Firefox の各ブラウザ毎に完全に別々の開発チームを持たなければならないとしたらどのブラウザ向けのアプリを開発しますか。限りある予算でスマートフォン、タブレットやスマートデバイス向けのアプリ開発しなければならない現状はこの状況と同じ決断を下さなければならならないのです。CMOやマーケティングマネージャはひとりでも多くのユーザや見込み客にリーチしたいはずですが、それには多くのプラットフォームをサポートしなければなりません。与えられている予算とプラットフォームのリストを見比べながら妥協点を探らなければならないかもしれません。その結果どれか一つのプラットフォームしか対応できないかもしれません。
 

歴史は繰り返す

ネイティブアプリの躍進を見て感じてデジャヴを感じる方もるのではないでしょうか。CD-ROMのコンテンツやクライアント・サーバアプリケーションが Web に置き換えられてきたように、今のスマートフォンのネイティブアプリは一過性の流行で熱が覚めてしまえばHTMLへたどり着くのではないかと。HTML5 は確かにその存在感が日増しに大きくなり、求人もうなぎのぼりに増えています。HTML5 は Web の未来でありこれに逆らうことは出来ません。しかし、HTML5 の普及とネイティブアプリの衰退は別次元であり、ネイティブアプリの衰退によってHTML5 が成功していくわけではないし、HTML5 で全てが完結できるわけでもなさそうです。
 

HTML5 が万能薬ではない

ゲームなど高度なインタラクティビティや描画性能が要求されるアプリケーション開発の場合、HTML5 はまだ未完成なところもあり、使いやすいプラットフォームではないと言われています(New Game 2011: Zynga Urges Developers to Embrace HTML5 'Pain Machine')。ゲームほど要求が高度でないにしても、ネイティブアプリにできることで、HTML5 にできないことは数多くあります。下記スコアカードをつけて比較して見ました。

 

ネイティブアプリ vs. オープンウェブ という議論はここ1年多く見かけるようになって来ましたが、どちらか一方に結論が出るような議論ではないと思います。その理由は、1) ユーザはブラウザとネイティブアプリで同じくらいの時間を消費している点、2) モバイルウェブとモバイルアプリはお互いを補完しあう関係にあり、ユーザと企業やサービスとのライフサイクルによって異なっているからです。検索などからのサービスや製品の発見、認知はウェブで。ロイヤリティ向上や啓蒙活動にはネイティブアプリに優位性があります。

Apple, Google, Microsoft, Nokia, Samsung など各アプリのプラットフォームベンダーが自社のプラットフォームをコントロールしているという点も忘れてはならない重要な事実です。ブラウザでHTML5のウェブアプリがどこまで各プラットフォームの機能にアクセスできるのかは、それぞれのベンダーが決定していることであり、そこには技術的な理由だけではなく、ビジネス的な思惑も含まれています。W3C で新しい標準が策定され、ブラウザで実装され、デバイスやブラウザで利用できるようになるにはさらに長い時間がかかるかもしれませんが、技術的な理由から来るプラットフォームの制限事項は時間と共に新しい技術や標準が策定されて次第に解決されていくでしょう。

ビジネス的な理由によるプラットフォームの制限は組織的であり、意図的なものが多くあります。プラットフォームベンダーとしてはアプリプラットフォームのエコシステムの収益化を図り魅力的なものにすることが最優先課題であるため、オープンウェブの技術を積極的に取り入れ自分のプラットフォームをあえてコモディティ化の方向へ加速していくことは考えにくいのではないでしょうか。ハイブリッドアプリはHTML5を採用しながらもネイティブコンテナの使用により各プラットフォームの機能にアクセスできることから、各プラットフォームベンダーがコントロールを保つことができます。
 

パフォーマンスは?

幾つかの開発者コミュニティではピュアなネイティブアプリに比べ、HTML5ベースのWebViewコンテナを使ったネイティブアプリ(ハイブリッドアプリ)は常にパフォーマンスで劣っている、という指摘があります。前述のFacebook や Netflix、Microsoft などの業界を代表するような企業が HTML5 をベースのハイブリッドアプリを採用している事実からこの指摘は既に的を外しているのはないかと思います。ゲームのような特定の種類のアプリやユースケースでは HTML5 を使ったハイブリッドアプリのパフォーマンスがボトルネックになることもあるかもしれませんが、多くのアプリ、特にコンテンツを提供するコンテンツアプリでは HTML5 や JavaScript のチューニングでパフォーマンスを大幅に改善することが可能です。
 

残りの99%

Facebook、LinkedIn、Microsoft、Netflix のようにハイブリッドアプリにシフトしている企業が増えてきています。とはいえ 「Facebook だからできるんじゃないの?」という疑問もあります。前述の企業のように、業界でも屈指の開発者リソースと潤沢な資金を持ち、黎明期のテクノロジーリスクが取れる会社は全体の1%くらいかもしれません。

Day 14 Occupy Wall Street September 30 2011 Shankbone 2.JPG

実際には単一のデバイス(例えば iPhone) とOS(iOS)向けにバージョン1.0のアプリをリリースし、次にどうしようかと熟考している企業が多いのではないでしょうか。次のステップとしてAndroidスマートフォン、タブレットにアプリをリリースしなくてはというプレッシャーがあるのではないでしょうか。さらにその先には、Kindle Fireや Xbox、PS3、Samsung Smat TV、Google TVなどのプラットフォームが控え長い道のりに感じているのではないでしょうか。気の遠くなるような挑戦かもしれませんが、各プラットフォームにはそれなりに魅力的なユーザ数がいて(増加が見込まれていて)、ユーザが接する時間だけでなく、広告費もシフトしてきています。デジタル戦略に真剣に取り組もうとしたときに避けては通れない道になってしまいました。

ウェブアプリ・ウェブサイト開発に見られる効率的な開発と俊敏な機動力が期待できるハイブリッドアプリによるアプローチはこの悩みを解決してくれそうです。ただアプリ開発だけで全てが完結するわけではなく、それから後のこと、運用や解析も考えなければなりません。
 

アプリは通過点

アプリは実験的で単発の開発プロジェクトと位置づけられ、開発スキルを持つエージェンシーや開発会社へアウトソースして完了する非連続した開発プロジェクトとして取り扱われるケースが多いのではないかと感じています。ユーザインターフェースやブランディングに多くの時間をさくものの、バックエンドの管理やコンテンツ最適化は考慮されていないケースもあるのではないでしょうか。日々の運用やワークフローが予め設計されていて、開発者ではないビジネスユーザがユーザやコンテンツを管理していくことが容易なケースは稀なのではないかと思います。ユーザビリティテストやベータテストなどは殆ど無く、アプリのメンテナンスやアップデートなどのライフサイクル管理も殆ど無いのが現状でしょう。

The road winds among the redwoods in California by Chris Willis 

アプリのメンテナンス性や日々の運用性を考慮に入れたアプリの開発が成功への近道です。成功しているアプリは開発者の手を離れたあとも、組織内のコンテンツ管理者やマーケターなど様々な人達が日々の運用を行いアクティブにコンテンツの更新でユーザに情報を提供してます。

ウェブサイトの管理同様、アプリにもブランディングされたテンプレート、簡単にコンテンツやルック&フィールを更新できるバックエンドの管理システム、新しいバージョンのリリースプロセスやユーザの導線やトラフィック解析、レポーティング機能が必要です。

アプリはその開発者スキルセットから開発完了後のメンテナンスや更新が困難になってしまっています。自社のウェブサイトのようにアプリもコンテンツを頻繁に効率的に更新することが好ましいのはわかっていても、開発をアウトソースし自社内にリソースがない場合、やりたくてもできないというのが現状なのではないでしょうか。ハイブリッドアプリの良い点は自社のウェブチームでアプリの管理が可能になるという点です。これまで特定のプログラミング言語スキルを持っているリソースに頼るしかなかった作業が、ウェブサイトの開発チーム内で行えるようになります。デザイナー、アーキテクト、プロデューサ、フロントエンド開発者、バックエンド開発者、DBA、システム管理者、プロジェクトマネージャなどウェブサイトの開発や日々運用しているチームでアプリの開発と運用が可能になります。
 

App Cloud リリース

Brightcove が本日リリースした App Cloud はHTML5とネイティブコンテナを組み合わせ、ウェブサイト開発者がネイティブアプリを開発可能にします。それだけでなく、開発者以外のビジネスユーザもGUIからアプリの作成、更新が可能になります。アプリストアに公開されたアプリを再申請することなくコンテンツや機能のアップグレードが可能です。帯域の限られたスマートフォン向けにテキストコンテンツや画像コンテンツの最適化も行います。アプリの開発で終わらず、コンテンツの更新、アクセス解析、広告配信も備えたワンストップソリューションを目指したクラウドサービスです。

Brightcove App Cloud

本日発表した App Cloud には期間無制限、アプリの開発とテストができるデベロッパー版があります。是非左記のリンクから申し込んで試してみてください。