🎃
PWAとネイティブアプリの違いを調べてみた
この記事は何?
- これから開発するプロダクトで採用できるか判断するため、2024年7月時点でPWAとネイティブアプリの差を調べた
PWAとは?
- Progressive Web Apps の略
- Webアプリをネイティブアプリと同じように扱えるようにする技術
- ホーム画面にWebアプリをインストールしたり、プッシュ通知を行えるようにしたりできる
ネイティブアプリとの違い
ネイティブアプリ | PWA | |
---|---|---|
開発技術 | Swift, Kotlin, Dart(Flutter) | HTML, CSS, JavaScript |
ストア審査 | 有 | - |
アップデート | 手動 | 自動※ |
デバイス機能の制限 | 無 | 有 |
※キャッシュ削除等が必要な場合がある
PWAでできないこと
- プッシュ通知
- iOS
- iOS16.4 より前はサポートしていない
- ローカルプッシュ通知に制限がある
- アプリがフォアグラウンドにないと通知が届かない
- リモートプッシュ通知はネイティブアプリと同じように動作する
- Android
- ローカルプッシュ通知に制限がある
- アプリキル時に通知が届かない
- リモートプッシュ通知はネイティブアプリと同じように動作する
- ローカルプッシュ通知に制限がある
- iOS
- デバイス機能
- GPS, カメラ, 加速度計等一部のデバイス機能は使用可
- ブラウザを介して動作するため、デバイスから提供されている機能をそのまま使えるわけではない
- 指紋認証や顔認証等一部機能にはアクセスできない
- GPS, カメラ, 加速度計等一部のデバイス機能は使用可
- 高度なグラフィック処理
- ブラウザの制限によりグラフィック関連の機能に制限がある
- WebGLやWebGPUを使えば再現できるものもあるが、コストがかかる
- スクリーンショットの禁止、画面のマスク
PWAのリスク
-
AppleがPWAを廃止したがっている
- iOS17.4 ベータ版でPWAのサポートを廃止していた
- 多くの批判があり、サポート廃止を撤回
調べた感想
- 思ったより機能の制限が多くて残念
- 批判によりPWAサポート廃止が撤回された前例ができたのは良かった
- 直近にいきなりサポート廃止される可能性は低そう
- 様々なコストを抑えることができるので、できないことを理解した上で採用を検討する価値はあると感じた
Discussion