注意点・iOS の制約

PWA は楽しいが「思ったように動かない」場面が多い。特に iOS Safari の独自仕様、SW の更新地獄、ストレージ枯渇など。 本番投入前のチェック集。

iOS Safari の主要な制約

iOS のストレージ制限

iOS はストレージ管理が厳しい:

容量チェック

const { quota, usage } = await navigator.storage.estimate()
console.log(`${(usage / 1024 / 1024).toFixed(1)} MB / ${(quota / 1024 / 1024).toFixed(1)} MB`)

if (usage / quota > 0.8) {
  // 80% 超えたらキャッシュを刈る
  await trimCaches()
}

SW の更新地獄

典型症状

対策

HTTPS 必須の例外

Lighthouse PWA 監査

Chrome DevTools → Lighthouse → "Progressive Web App" カテゴリ。基準を満たすかチェック。

パフォーマンス

セキュリティ

App Store / Play Store

「Web だけで配布」だと検索性が落ちる。ストアにも出すのが定石:

テスト

よくある罠

判断ガイド

要件PWA でいい?
シンプルなオフライン読み
シンプルな通知○(iOS は ホーム画面追加必須)
本格的なオフライン書き込み + 同期△(Safari は工夫要)
定期実行(バックグラウンド)△(Chromium のみ)
Bluetooth / 高度なセンサー×(ネイティブ)
App Store 検索流入が必須△(ストア配布で対応)
常駐バックグラウンド処理×