Hahnah Chronicle

モバイルPWAのステータス in 2020

Authors
原井 夏樹
Published on
Updated on

2020年時点でProgressive Web Apps (PWA) がどのような機能をサポートしているか、AndroidとiOSそれぞれについて調査した。

調査目的

Webサービスを作っていると、ユーザー体験を良くするためにプッシュ通知などを実装できたらいいのになあ、なんて思うことがある。

それってPWAの技術で実現できるんだっけ? できるならやりたいし、できないならネイティブのアプリ開発も視野に入るな。 といった具合だ。

PWAでどんな機能が実現できるのか、2020年11月時点での情報を知りたい。

PWAのステータス

Android Chrome, iOS Safari で何の機能が実現できるか調査したところ、以下のようになった。 (ブラウザーのバージョンは2020年11月時点での最新バージョンとする)

機能PWA in AndroidPWA in iOS備考
ホーム画面追加
全画面表示
オフライン動作ただしiOSではオフラインデータを50Mbしか保存できないという厳しい制限がある
バックグランドデータ同期
プッシュ通知https://developer.mozilla.org/ja/docs/Web/API/Push_API
通知プッシュ通知でない、ただの通知。https://developer.mozilla.org/ja/docs/Web/API/Notifications_API
バッジ
カメラ
マイク
オーディオ出力
音声認識
音声合成
スピーチ
位置情報ただしiOSではバックグラウンド時のみ位置情報は取得不可
方位・加速度・ジャイロスコープ
Bluetooth
NFC
生体認証
支払い
プレイストアで公開Google Play StoreにはPWAを公開できる
Share機能(一部)https://developer.mozilla.org/ja/docs/Web/API/Navigator/share

※漏れている機能も多分にあると思う

Safariに実装されない機能たち

上の表を見るとiOS Safariでは利用できない機能が多々あるのが目立つが、AppleはSafariへの機能追加にかなり慎重なようだ。 2020年7月には、フィンガープリンティングの懸念から、いくつかのWebAPIの実装を拒否するというアナウンスがされている。 BluetoothやNFC、バックグラウンドでの位置情報取得などもここで挙げられている。

Finally, if we find that features and web APIs increase fingerprintability and offer no safe way to protect our users, we will not implement them until we or others have found a good way to reduce that fingerprintability.

おわりに

何年か前にPWAを知ったのだが、当時と比べるとiOSでもできることが増えたなという印象。 WebでもApple Payでの支払いができるようになってるのは驚いた。 ただ、プッシュ通知という最も切望されてそうな機能はまだ対応されておらず残念。

それと、この記事を書く中で、利用可能な機能が一覧表示される便利なサイトを見つけた。 WHAT WEB CAN DO TODAY?

このサイトにアクセスすると、現在利用しているブラウザーでどの機能が使えるのか/使えないのかがひと目で分かる。 Android Chrome, iOS Safari でアクセスして見比べてみると良さそう。

参考資料