Linear ArchiveArchived issues viewer
← 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.swiftURLCache.shared の設定箇所(PR #838
apps/client/android/app/src/main/java/jp/co/instansys/ultemist/MainActivity.javaAndroid 側 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