デザイン部でフロントエンドエンジニアをしているkitoです。
先日、iOS 11.3のリリースでiPhoneでもPWAの一部の機能が利用できるようになりました。(プッシュ通知等は利用できない)今回は、Web界隈で急速に注目を上げ始めているPWA(Progressive Web Apps)の将来性を考察したいと思います。
いわゆるフロントエンド界隈では、新しいツールや技術が短いスパーンで登場しては消えていくということを繰り返しています。新陳代謝が激しい故に、革新的な技術がいち早く取り入れられる若々しいエコシステムは利点ではありますが、反面、苦労して学習した技術やツールが、立ちどころに古びて投資が無駄になってしまうケースも間々あります。これは現代のフロントエンドエンジニアには避けられない運命でしょう。とはいえ、それをむしろ楽しみ新しい技術の到来やそれをリードする若きエンジニアたちの登場を喜ぶべきかもしれません。
今回取り上げるPWAも、まだこれから普及するかどうかわからない技術です。しかし、もし普及すれば大きなインパクトがある技術で特別ホットな技術だと思います。このエントリーでは、PWAの個別の技術ではなく、PWAが開拓するかもしれないアプリの未来について個人的な展望を書きたいと思います。
PWAの概要
PWA(Progressive Web Apps)とは、端的に言うとHTMLとCSSとJavaScriptなどのWebアプリを作成する技術で、スマホのネイティブアプリにしかない機能を実現できる技術です。
主に下記のようなものです。
- キャッシュを利用してオフライン時でも操作できる。
- 全画面表示。
- ネイティブアプリのようなプッシュ通知。
- App StoreやGoogle Playを通さず、Web経由でのアプリ配布が可能。
ローカルキャッシュによるオフライン操作やスマホでのプッシュ通知は、Webのスマホサイトでは実現できない機能で、ネイティブアプリ固有の大きなアドバンテージでした。ストアを通さないアプリの配布は、開発者にとっては利点はありますが、ストアからアプリをインストールする習慣が身についているユーザーにとっては、必ずしも利点とは言えません。
あるいは、PWAはネイティブアプリのような大きなアプリを最初にインストールする必要がないので、通信環境が良くない地域の人にとっては良い選択肢なるという見解もあります。それはつまり、ネイティブアプリよりPWAが「poor」であることを逆手にとって、その「poor」さこそPWAの強味であるというわけです。
ただ、私はその売り出し方では、あまりインパクトがないように思えます。少なくとも日本にいる多くのユーザーにって、PWAは自分には関係ないと思うでしょう。そうではなく、後で詳述するユニバーサルアプリの文脈で、より低コストで必要十分なユーザー体験が実現できるアプリの技術として位置付けるべきです。それを詳しく見る前に、現状のPWAが直面している問題点をいくつか上げたい思います。
PWAの課題
まずひとつ目は、先にも触れましたがpoorである点です。
PWAは、ネイティブアプリよりパフォーマンスが明らかに劣っています。そもそもネイテイブアプリは、使われているプログラミング言語を含め、デバイスに最適化されていることが多いので、Web技術を借用しているPWAの方がパフォーマンス上は不利でしょう。ただし、PWAのpoorさは看過できないほどpoorであるとは考えていません。
実際、Google mapと日経新聞のPWAを使ってみると、ユーザー体験はそれほど悪くはないなという印象です。確かに、ネイティブアプリのGoogleマップの方が地図描画などがスムーズですが、実用に耐えないほどではなく、経路を検索したりする通常の用途では必要充分で、まあこれでも良いのではないかと思えました。もちろん、これはあくまで個人的な感想です。あなたもhttps://google.com/maps?force=pwaにスマホでアクセスし、ホーム画面にアプリを追加して使ってみてはいかがでしょうか。(もしネイティブアプリの方が起動してしまう場合は、シークレットモードやプライベートモードで開い下さい) 日本経済新聞のPWAもあります。https://r.nikkei.com/こちらもコンテンツを閲覧するのに必要充分だと思いました。(現在、Androidではプッシュ通知は来ますがiPhoneでは来ません)
ではネイティブアプリより、PWAを選ぶ積極的に選ぶ理由とは何でしょうか?
それはユーザーが選ぶというより、開発者がPWAを選ぶ理由ということですが、簡単に言うならコスト面で有利だからだと思います。
デバイスごとに最適化されるリッチなネイティブアプリより、Web技術を活用したユニバーサル志向のプアなアプリを作るほうが低コストですむからです。
そして、これは重要な観点ですが、今後10年を見据えた場合、VR/ARデバイスが普及した時代になると新たに3次元のアプリを作製してメンテンスしていかなければならなくなるでしょう。中長期的に考えるなら、Web、スマホなどの2次元用アプリは、ユニバーサルアプリに収斂させて、3次元用アプリは独自のアプリとして最適化する道を辿るのではないかと推測します。
つまり、ユニバーサルアプリは2次元用アプリのことで、その宇宙にはVR/ARデバイス用のアプリなどは想定されていません。ユニバーサルアプリに3次元用アプリも含めれば良いと思うかもしれません。しかし、少なくとも3次元用アプリが普及して離陸していく段階では、3次元用アプリはそこに含まれないと思います。なぜなら、2次元用アプリと3次元用アプリでは、デザインのロジックからして全然別だからです。
Introducing Virtual Wearables pic.twitter.com/LPvknKBlnO
— Keiichi Matsuda (@keiichiban) 2018年3月22日
(参考:リープモーション社の3次元用アプリUIのサンプル動画です。)
例えば、Googleのマテリアルデザインは、2次元用のユニバーサルアプリのデザインとしては機能するでしょう。しかし、これを3次元用のアプリのデザインとして見た場合、オブジェクトが掴めたり、回転させたりという3次元特有のインタラクションを感じさせるUIデザインは見あたりません。もし、ユニバーサルアプリに3次元用のアプリを含めようとするなら、もっと新しいデザインコンセプトが必要になるでしょう。しかし、そのようなデザインはゲームの中では一部存在していますが、今のところ統一されたアプリのUIデザインとして成立していないです。ですから、ユニバーサルアプリには3次元用のアプリは容易には取り込まれないだろうと考えられます。私見ですが、PWAのようなユニバーサルアプリとは、Web技術で構成された2次元用アプリのプラットフォームのことだと考えています。
もう一つPWAが直面している大きな問題点は、AppleがどれほどPWAを積極的にサポートしていくのだろうかという点です。
率直に言って、AppleがPWAを押し進めなければPWAは普及せず、それを構成しているService Workerのような一部の技術が普及するに留まるかもしれません。実際その可能性はあると思います。Appleは、現状ではApp Storeを重視するビジネスモデルで、そこから多くの利益を得ています。ストアを通さずに配布できるPWAのプラットフォームに対して、積極的に投資するとは簡単には思えません。しかし、先日のiOSのアップデートでPWAの一部の機能がSafariに実装されました。これはどう考えるべきなのでしょうか。
実は、既に報じられているようにAppleもユニバーサルアプリのプラットフォームを実現しようと動き出しています。ただ、これはWeb技術を活用したものだと言明されているわけではなく、まだまったく未知数です。
それでも、先行しているMicrosoftのUWPを考慮に入れるなら、おそらくそれはWeb技術を活用したプラットフォームであり、さらに全てではないにしてもPWAの技術を取り入れているのではないかというのが、私の推測です。仮にPWA準拠したものであったとしたら、やはりストアの問題がネックになるでしょう。
ストアの問題に対して、Appleが取りうる選択肢は大きく2つあると思います。
ひとつは、ユニバーサルアプリをストアからしかインストールさせないようにする方法です。Webからのダウンロード&インストールを禁止して、全て管理されたストアからインストールしなくてはならないようにするのです。開発者は、これまで通りアプリの審査に四苦八苦することにはなりますが、ユーザーにとっては管理されたストアから安心してアプリをインストールできるので、それほどマイナスとは感じないでしょう、Appleにとっては今まで通りのビジネスモデルで手数料を徴収できます。
もうひとつは、ストアがゴーストタウンになる可能性を恐れず、ストアからの手数料を犠牲にしてWebからアプリをインストールできるようにし、ストアからの手数料をあてにする代わりに、Apple Payの手数料を収益の柱にするビジネスモデルです。
先日のiOSのアップデートで、一部PWAに対応したと書きましたが、そのアップデートでは、Payment Request APIが含まれています。いわばWeb全体をストアだとみなして、Apple Payの決済で手数料を徴収するわけですが、これはAppleのビジネスモデルとしては大きな転換になるので、リスクも大きくなるでしょう。
今はAppleのユニバーサルアプリがどのような形になるか、予測の域をでません。先にあげた二つの予想のどちらかになるかもしれませんし、ふたつをミックスしたものかもしれません。それでも、MicrosoftがWindowsでPWAをサポートすることを決めたり、iOSのアップデートを見ているとPWA軸にしてユニバーサルアプリのプラットフォームが構築される可能性は充分あると思います。
PWAのWebへの影響
推測に推測を重ねることになりますが、PWAがユニバーサルアプリとして普及したとき、おそらくWebへの影響が少なくないだろうと思います。
もともとWebの技術なのだからPWAが普及したとしてもWebへは何の影響もないと考えるむきもあるかもしれませんが、しかし、あるサービスを新たにWebとスマホで開発して展開しようとしたとき、PWAとWebは出来るだけ同じコードを使い回したいと思うはずで、そうでなければコストを削減できません。
PWAはSPA(Single Page Application)として実装されるでしょうから、結局WebサイトもSPAとして作製されることになるでしょう。つまり、PWAが普及すれば普及するほどWebのSPA化が進むことになります。
必然的にSPAを支える技術としてReactやVueなどのJavaScriptフレームワークの重要性が更に増し、サーバーサイドは、DBからデータをとってきてjsonにして返すことと、SSR(サーバーサイドレンダリング)を行う役割が重要になってくるでしょう。
さらに、そうなるとJSフレームワークの役割が重くなってフロントエンドでの分業化が進み、分業化に適したフレームワークが必要とされると思います。今のVueやReactは、分業化にはそれほど向いているとは思えないので、VueやReactがJavaScriptフレームワークの回答ではなく、将来的には分業化に適したJavaScriptフレームワークが登場するのではないかというのが、私の見立てです。
そこまで行くとフロントエンド界隈の幼年期は終わり、入れ替わり立ち替わり現れていた様々なツールやJSフレームワークは収斂して固定化されていくのではないかと思われます。
終わりに
PWAは、ユニバーサルアプリを支える技術として注目を集める時代がもうすぐやってくるかもしれません。あるいは、AppleはPWAに投資せず、もっと違った方法でユニバーサルアプリを実現するかもしれません。実際にどう転ぶのかわかりませんが、わからないだけに独断と偏見で考えるのは面白いことだと思いました。ユニバーサルアプリがどんなものかは、これからそう遠くない未来にAppleが何らかの発表を行うのではないかと期待しています。そのときPWAの未来が決せられるでしょう。
アスタミューゼでは、エンジニア・デザイナーを募集中です。ご興味のある方は遠慮なく採用サイトからご応募ください。お待ちしています。