![](https://habrastorage.org/storage1/22e5124a/50999ae3/b9e42acc/fac2ccc5.png)
各iOSアプリケーションには、ファイルを保存するための作業フォルダーがあります。
Caches
と
tmp
内容を除くそこからのすべてのアイテムは、iTunesとの接続中にバックアップと同期されます。
iOS 5より前は、システムは
Caches
および
tmp
コンテンツを削除することはありませんでした。これらは、常に利用可能であると同時に、紛失した場合に再ダウンロードできるデータを保存する唯一の安全な場所でした。 したがって、このデータはバックアップの場所を占有せず、同期を遅くしませんでした。
iOS 5では、iCloudバックアップの出現後、Appleは
Documents
などの同期フォルダーに大量のデータを保存するアプリケーションと格闘し始めました。 多くの開発者はすでにAppleから次のような手紙を受け取っています。
最後のテストで、[アプリケーション]がドキュメントフォルダーに大量のデータを保存していることがわかりました。
iCloudバックアップは各iOSデバイスのWi-Fiを介して毎日実行されるため、ユーザーの利便性を最大限に高め、アプリケーションに保存されるデータ量を最小限に抑えることが重要です。
購入した音楽、アプリケーション、書籍、写真、デバイス設定に加えて、ドキュメントフォルダーを含むアプリケーションの作業フォルダーのすべてのコンテンツがiCloudと同期されます。
キャッシュ自体と一時フォルダーだけでなく、プログラム自体もiCloudと同期されません。 アプリケーションは、 iCloudストレージの使用規則に従って、指定された場所にデータを保存する必要があります。
指定されたドキュメントを調べ、必要な変更を加え、App Storeでプログラムのバージョンを更新してください。
ドキュメントはすべてを非常に明確に説明しています:
- ユーザーが作成した、またはアプリケーションで再作成できないドキュメントおよびその他のデータのみを
<Application_Home>/Documents
フォルダーに保存し、iCloudと自動的に同期します。- アプリケーションによって再ダウンロードまたは再作成できるデータは、
<Application_Home>/Library/Caches
保存する必要があり<Application_Home>/Library/Caches
。 たとえば、これらはデータベースキャッシュファイル、または雑誌、新聞、地図作成アプリケーションで使用されるものなどのダウンロード可能なコンテンツです。
簡単に聞こえます。ダウンロードできるものをすべて
Caches
再度移動してください。
Instapaperは、ダウンロードした記事を
Caches
フォルダーに保存して
Caches
ます。これは、iTunesとの同期を遅くしたり、バックアップのボリュームを不必要に増やしたりしたくないためです。また、データベース全体の更新が頻繁に行われなかったため、ほとんどの人にとって問題になりました。 新しいルールにより、
Caches
使用が強制されます。これ以上の選択肢はありません。
ただし、iOS 5には別の重要な変更があります。
Caches
と
tmp
バックアップに含まれない2つの場所のみ)は、デバイスのメモリが不足するとクリアされます。
多くのデベロッパーが、iOS 5が一般に公開される前からInstapaperでこの問題を報告していたため、iOS 5を搭載したデバイスの大量販売が開始されると、苦情がいくつになるかが怖いです。
これで、バックアップする必要のない(または新しいルールに従ってバックアップが禁止されている)ファイルを保存する場所は残っていませんが、いつでも削除することはできません。 これは多くのアプリケーションにとって問題です。これらはすぐに思い浮かぶものです。
- オフラインで読むためにWeb記事を保存するInstapaperおよびその他のプログラム
- 電子書籍を読むためのアプリケーション(ルールが適用される場合はiBookを含む)
- ポッドキャストクライアント(iTunesと同期するポッドキャストを除く)
- オフラインウィキペディア
- オフラインマッピングソフトウェア
キーワードはオフラインです。 インターネットからいつでもすべてをダウンロードできるため、大きな問題はないと言えます。 しかし、そうではありません。
典型的なシナリオ:Instapaperユーザーは、長い旅のためにiPadをコンテンツで満たします。 彼女は映画とポッドキャストのパックを同期し、いくつかの雑誌をダウンロードし、いくつかの新しいゲームを購入するため、最終的にはデバイスに空きスペースがほとんどなくなります。 飛行機に乗る直前に、少女は「エコノミスト 」誌の最新号をダウンロードする必要があることを思い出します(私はユーザーから高い評価を得ています)。 このため、空き領域の量がクリティカルレベルを下回り、トリガーがトリガーされ、バックグラウンドでクリーニングプログラムが起動されます。 ユーザーが気付かないうちに、Instapaperに保存したものはすべて消去されます。 インターネットにアクセスできないフライト中に、彼女はInstapaperを起動し、プログラムの処女を見つけます。
(先週、ほぼ同じことがユーザーの1人に起こりました)。
このため、誰もが苦しんでいます:
- 彼女には何も読むことがありません(彼女はただThe Economistを読んでいます)
- 私のプログラムはすべてのファイルを削除したかのように罪を犯します。そのため、ユーザーの信頼性は低下します。 運が良ければ、女の子がテクニカルサポートを作成し、本当の状況を説明する機会があります。 しかし、ほとんどの場合、彼女は静かに失望するか、App Storeの評価に1つ星を付け、私のプログラムが信頼できないものであると全員に伝え、警告なしにすべてのファイルを削除します。 このため、私の売上は減少します(同時に、これらの売上の30%を受け取るAppleの収入も減少します)。
- この少女はiPadに対して否定的な経験をしており、タブレットは信頼性が低いようです。これはAppleとiOS自体に影響します。
インターネットへのアクセスがどれくらいの頻度で困難または不可能かを考えると、すべてが悪化します。
- iPod TouchやWi-Fi iPadなど、ほとんど毎日オフラインになっているデバイス
- 国際ローミングの3Gデバイス
- 高いデータ転送レートまたは小さな月間制限があるネットワークで動作するデバイス(米国以外の一般的なシナリオ)
- 最高の「ブロードバンド」アクセスでもひどく機能し、数百メガバイトをすばやくダウンロードすることができない遠隔地のデバイス
- 数分でWi-Fiゾーンを離れるデバイス。所有者はコンテンツが削除されていることに気づきますが、仕事に遅れているか、子供たちがサッカー場で大雨に見舞われているか、犬がもう耐えられません-一般に、今逃げる
常に高速で信頼性の高いインターネット接続を使用している場合でも、アプリケーション内のデータの突然の削除はいずれにしても問題です。
ユーザーがInstapaperで記事を保存したり、iBooksで本をダウンロードしたり、Instacastでポッドキャストをダウンロードしたりするとき、ユーザーはプログラムが次回起動するときにコンテンツが利用可能になると期待しています。 再ダウンロードが技術的に可能であっても、人はこのコンテンツを自分のファイルと見なします-彼は個人的にここにそれらを置き、いつ、いつ削除するかを決定します。
クリーニングプログラムがすべてを消去すると、アプリケーションがデータを削除したように見えます。 そして、ユーザーはこれがiOS 5の機能であることすら知らない-論理的にアプリケーション開発者を非難する。 これは私たちの責任ではありませんが、間違いなく私たちの問題になります。
明らかに、iOS 5以前の
Caches
ようなファイルを保存する場所があるはずです。iTunesやiCloudにバックアップせずに、同期せずに。 そこでは、プログラム自体がデバイスから削除されるまで、ファイルは変更されません。
テキストの著者は、Instapaperの著者であるMarco Armentです。