← Back to list
INS-916
HTTPキャッシュ(メモリ16MB+ディスク512MB) 有効化成功後、キャッシュクリアしたいときはどうするのか?検討・実装
StatusDone
TeamInstansys
Assigneeasuki.uehata@instansys.co.jp
PriorityLow
Created2026/07/08 04:01
Completed2026/07/09 07:58
Archived2026/07/17 00:45
Feature
Description
キャッシュクリアできないと、キャッシュの効果検証も とてもしづらい。
URLCache クリア機能の実装検討
背景
fix/ios-urlcache-capacity(PR #838、develop にマージ済み)にて、iOS の URLCache.shared を 512MB に拡大し、CDN アセット(BGM・立ち絵等)のディスクキャッシュを実用化した。
現状の課題
開発中に CDN 画像を更新した際、ディスクキャッシュが残っているため最新アセットをすぐ確認できない。現状のクリア手段はアプリ削除 → 再インストールのみ。
実装したい内容
JS(Safari Console または アプリ内デバッグUI)から iOS の URLCache をクリアできるようにしたい。
Swift 側(apps/client/ios/App/App/AppDelegate.swift)
URLCache.shared.removeAllCachedResponses()
Capacitor のネイティブプラグイン経由で JS から呼び出せる形にする必要がある。
関連ファイル
| ファイル | 内容 |
|---|---|
apps/client/ios/App/App/AppDelegate.swift | URLCache.shared の設定箇所(PR #838) |
apps/client/android/app/src/main/java/jp/co/instansys/ultemist/MainActivity.java | Android 側 HttpResponseCache の設定箇所(PR #838) |
apps/client/src/lib/cache-metrics.ts | __assetCacheMetrics の実装。source フィールドは Capacitor WKWebView では常に "unknown"(PerformanceResourceTiming が機能しないため)。ms が実質的なキャッシュヒット指標になっている |
検討事項
- Capacitor カスタムプラグインとして実装するか、既存の仕組みに乗せるか
- Android 側(
HttpResponseCache.getInstalled()?.delete())も合わせて対応するか - 開発時限定のデバッグ機能として実装するか、アプリ内に常設するか
Comments (1)
asuki.uehata@instansys.co.jp2026/07/08 04:45
実装内容検討