モバイルアプリの使用性をより高いレベルに引き上げるには、アプリのUIやシステム全体のアーキテクチャー以外にも着目すべきポイントがある。具体的にどんなポイントに着目すればいいのか。日本Androidの会の丸山 不二夫氏、バイドゥの足立 昌彦氏、NTTレゾナントテクノロジーの久納孝治氏という、モバイルアプリに詳しい有識者およびアーキテクト合計3人の提言をまとめた。
アプリもデータも端末に置く
PART1とPART2の事例で見たように、システム全体のアーキテクチャーは、モバイルアプリの使用性に大きく関係する。では、そのアーキテクチャーは今後どのように変化していくのだろうか。
インターネット・モバイル関連技術のエバンジェリストとして著名な丸山 不二夫氏(日本Androidの会 会長)は、アーキテクチャーの変化をもたらす技術の一つとして「Packaged Web Apps」を挙げる。
Packaged Web Appsを簡単に説明すると、従来は必要になるたびにサーバーから取得していた、JavaScriptを含むWebページのコンテンツを、スマートデバイスにインストールして配置する、というものだ(詳しくは別掲記事を参照)。Webページごとに、サーバーからJavaScriptを含むコンテンツを取得しなくて済むので、表示(起動)が迅速な上に、ネイティブアプリと同様にカメラやセンサーといった端末やOSの固有機能をほとんど制限なく利用できる、といった利点がある。さらに、アプリの構成によってはオフラインで使える。
クライアントリッチに変わる
このPackaged Web Appsの考え方は昔からあった。それが今注目を集めている背景の一つに、スマートデバイスの高性能化がある。「8コアのCPUを搭載したスマートデバイスもあるくらいで、すべてをサーバーで処理する従来のアーキテクチャーではそのコンピューティングリソースを生かせない」と丸山氏は指摘する。言い換えると、サーバーリッチからクライアントリッチに変わる、というわけだ。
では、クライアントであるスマートデバイスに何をさせるのか。丸山氏は「スマートデバイスに配置する価値が高いのはアプリのプレゼンテーション層だが、大胆に言うと、サーバーには認証など最低限の機能と、データさえあればいいのではないか」と提言する。
サーバーは認証やデータ管理のサービスに特化し、プレゼンテーション層もビジネスロジック層も、端末アプリとしてスマートデバイスに配置する。さらに、データについても、サーバーと同期を取る前提でスマートデバイスに置くことが考えられる。
これは、スマートデバイスにアプリ全体とデータがあって、サーバーとはデータの同期だけを行う、というアーキテクチャーである。データの同期をどうするかという難しさはあるが、オフラインでの利用が可能でUIの応答が速く、使用性が高い。
このようなクライアントリッチのアーキテクチャーに変える取り組みは、「企業情報システムより、B2Cの世界でいち早く進んでいく」と丸山氏は予測する。
しかし歴史的に見て、B2Cのトレンドは、時間差で企業情報システムに入ってくるのが常。企業情報システムのITエンジニアも、クライアントリッチの発想を今から持っておきたい。
JavaScript、HTML、CSSで構成されるWebページのコンテンツをサーバーから呼び出し、端末のWebブラウザーで表示する。このWebシステムのアーキテクチャーは、端末にはWebブラウザーさえあればよいという手軽さや保守の容易さから、広く使われている。
しかし、現状のWebシステムのアーキテクチャーは大きく二つの課題を抱えている。それは、「コンテンツを都度呼び出すので起動やレスポンスが遅い」「ネイティブアプリと比べて、端末のOSが備える機能の利用に制限がある」という課題である(図A左)。
Webの構成要素をパックし配布
こうした課題を解消できるものとして「Packaged Web Apps」と呼ばれる新しいタイプのアプリが注目を集めている(図A右)。後述するコンセプトは昔からあったが、AndroidとiOSに続く“第3のOS”として登場した「Firefox OS」および「Tizen」という二つのモバイルOSが対応したことで、一気に注目が集まった。
今のところPackaged Web Appsはほとんど普及していない状態だが、今後の展開次第ではアプリ開発時の有力な選択肢となる可能性を秘める。
では、Packaged Web Appsとはどんなものか。コンセプトをひと言で表すと、「HTML5、CSS3、JavaScriptの各ファイルに加え、従来はサーバーに置いていた設定ファイルやコンテンツ素材をひと固まりにして、端末にインストールするもの」である。
設定ファイルには、アプリから使用するOSの機能(実際に使用を許可するかどうかは利用者が決める)などの情報が格納されている。こうした仕組みをサポートしたOSやミドルウエアとセットで使うことで、「OSの機能をフルに使えてオフラインでサクサク動くWebアプリ」を実現できる。