調査目的
Webサービスを作っていると、ユーザー体験を良くするためにプッシュ通知などを実装できたらいいのになあ、なんて思うことがある。
それってPWAの技術で実現できるんだっけ?
できるならやりたいし、できないならネイティブのアプリ開発も視野に入るな。
といった具合だ。
PWAでどんな機能が実現できるのか、2020年11月時点での情報を知りたい。
PWAのステータス
Android Chrome, iOS Safari で何の機能が実現できるか調査したところ、以下のようになった。
(ブラウザーのバージョンは2020年11月時点での最新バージョンとする)
機能 | PWA in Android | PWA 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 でアクセスして見比べてみると良さそう。
0件のコメント