メインコンテンツまでスキップ

キャッシュの取り扱い

基本方針

アプリ内で利用する各種ライブラリは、様々なキャッシュデータを生成します。 キャッシュデータは基本的には、内部ストレージのキャッシュディレクトリ内に保存されます。 しかし、一部のライブラリでは、キャッシュデータが外部ストレージのキャッシュディレクトリ内に保存される場合もあります。

内部ストレージに保存されたキャッシュデータは、原則他のアプリから読み取ることはできません。 しかし端末のroot権限を奪取されるような例外的なケースでは、キャッシュデータを読み取られる可能性があります。 外部ストレージに保存されたキャッシュデータは、他のアプリから読み取られたり、改ざんされる可能性があります。

このアプリでは、機密性の高い情報を取り扱わないため、内部ストレージへのキャッシュデータの格納は許容します。 ただし、不要になるタイミングが特定できるキャッシュデータは、可能な限り不要になったタイミングで明示的に削除します。

また、このアプリでは外部ストレージのキャッシュディレクトリは利用しません。 テスト時には、外部ストレージのキャッシュディレクトリ内に意図せずデータが書き出されていないことを確認します。

各種キャッシュデータの取り扱い

HTTP通信のキャッシュ

このアプリではバックエンドAPIとのHTTP通信にaxiosのライブラリを用います。 React Nativeでaxiosを用いてHTTPリクエストを送信する場合、Android、iOS端末ではHTTP通信のキャッシュデータが内部ストレージのキャッシュディレクトリ内に保存されます。 キャッシュデータには、HTTPリクエストの宛先URL、クエリパラメータ、レスポンスヘッダ、レスポンスボディなどが含まれています。

このアプリでは機密情報をクエリパラメータやレスポンス内では取り扱わないため、内部ストレージへのHTTP通信のキャッシュデータの格納は許容します。

表示画像のキャッシュ

React NativeのImageコンポーネントやそれをベースにした画像表示ライブラリを用いて外部URLの画像を表示した場合、 表示した画像が内部ストレージのキャッシュディレクトリ内に保存されます。

このアプリ内で表示する画像はアバター画像のみで秘匿する必要がないため、内部ストレージへのキャッシュ画像の格納は許容します。

画像ファイル選択のキャッシュ

このアプリは、アバター画像のアップロードの際に、端末内ストレージからアバター画像を選択する機能を有します。 画像を端末内ストレージから選択する際には、ライブラリによっては選択した画像ファイルが一時的にキャッシュディレクトリに格納される場合があります。

このアプリ内で端末内ストレージから選択する画像はアバター画像のみで秘匿する必要がないため、内部ストレージへのキャッシュ画像の格納は許容します。 ただし、画像の選択後にアップロード処理が完了したら、キャッシュ画像を明示的に削除します。

その他のアプリ固有のキャッシュ

このアプリでは、利用するライブラリによって自動的に生成されるものを除き、アプリ固有のキャッシュデータは生成しません。 もし必要が生じた場合には、一時的なデータやキャッシュデータは内部ストレージのキャッシュディレクトリ内に保存します。 外部ストレージのキャッシュディレクトリは利用しません。