私はネイティブ iOS アプリを作成しており、Web サーバーからデータを取得し、オフラインで使用するためにローカルに保存するために利用する一連の REST サービスがあります。ユーザーがその日の仕事を始める前に毎日同期するのは、膨大な量のデータです。
最初は、以前に使用していた Core Data を使用することだけを考えていましたが、デバイス上の sqllite でそれほど大きなスキーマを再作成することを本当に楽しみにしていません。
JSON を TouchDB のような NOSQL データベースに直接保存し、可能であればそこからクエリを実行したいのですが、データを抽出する際のメモリ消費が心配です。Core Data は、このシナリオで比較的低いメモリ使用量を可能にしますが、多くの単調な作業を犠牲にします.
これは、レコードごとに 2000 個のデータ ポイントを持つデータ入力アプリケーション用であり、その一部は大きなテキスト フィールドです。ユーザーは 1 日中オフラインになる可能性があり、すべてをローカルで行う必要があるため、1 日の終わりに戻って同期し、作業を本番環境にマージして、翌日の作業リストを取得できます。
これまでのところ、JSON データを保存するための代替手段として TouchDB と CouchBase を検討してきました。私はこれに関してSOに関するいくつかのトピックを調べました.TouchDBとCouchBaseを使用している多くの人々を見てきましたが、非常に少量のデータです. 前述したように、Core Data のコンフォート ゾーンから離れる際の最大の懸念は、データをクエリするときのパフォーマンスとメモリ使用量です。