2017-12-09 8 views
1

私はいくつかのjsonファイルからデータを読み込むモバイルアプリを持っています。アプリはデータを変更することはありません。データはほとんど静的ですが、数日(5-6日)ごとに変更(追加/削除/更新)が行われる可能性があります。これらのファイルのサイズは約300〜400KBです。モバイルアプリ - バックエンドに比較的静的なjsonファイルを保存してバージョン

このデータをバックエンドに格納するには良い方法を見つけたいので、静的データを更新するたびにアプリの更新をプッシュする必要はありません。私はバックエンドでjsonファイルをバージョン管理することを考えているので、クライアントは最新のバージョンを持っているかどうかをチェックし、アップデートがあれば新しいファイルをダウンロードすることができます。

クライアントでは、スタティックjsonをメモリに読み込んだだけです。サイズが大きくなるとそれは問題になりますか? JSONをレルムDBに格納するなどの代替アプローチを検討する必要がありますか?

サーバーとクライアントの間でこのような静的データを同期する方が良いでしょうか?

+1

Androidで最適な解決策は共有設定です! – Xenolion

+0

と、データのバージョン管理をどのように提案しますか? – tbag

+1

同じものを2つ保存するJson String用の共有設定1つ別バージョンのint! – Xenolion

答えて

2

jsonファイルの「バージョンを確認する」ことについては、毎回ダウンロードするのに重要なサイズではないので、適切な道があります。これを行うには複数の方法がありますが、最も簡単な方法は、バックエンドからjsonファイルの最終更新日を含むエンドポイントを公開し、SharedPreferences経由でアプリのどこかに最終更新日を保存し、これらの値は一致しません。

+0

それは素晴らしい提案です。ありがとう! – tbag

+0

クライアントアプリケーションのどの時点で、クライアントがデータを更新する必要があるかどうかを確認しますか?アプリの起動時に?それがダウンロードされて同期されるまでアプリをフリーズしておいても問題ありませんか? – tbag

+1

アプリにスプラッシュ画面がある場合は、それを置くのに最適です。さもなければ、私はそれがこれらの更新がいかに重要であるかに依存すると言いたい。それがなくてもアプリは正常に機能しますか? 1日に1回または数日ごとにスケジュールする(JobScheduler/SyncAdapter/AlarmManager)。特定の機能には重要ですか?これらの画面の前にチェックを追加してください。進捗状況ダイアログでブロックすることもできます。アプリはそれがなくても動かないだろうか?すべてのAPI呼び出し中にバージョンを確認し(多分jwtセッショントークンで)、アプリケーションが使用されていなくてもFirebase通知を使用してダウンロードを開始します。 – josephus

関連する問題