2016-07-22 6 views
1

I 2 bin grübeln nähert sichAndroid Cache Nur-Lese-Antworten REST-API, wenn offline

  • die JSON Antworten als JSON-Dateien Caching
  • Caching der Java POJOs (die JSON-Antworten werden bereits deserialisiert Verwendung von Retrofit) mit Reservoir.

Beschreibung der Daten:
Die Daten Ich möchte hier cachen sind eine Liste von 20 Produkten aus einer E-Commerce-Website. Sie sind keine komplizierten Objekte und es gibt keine Verschachtelung, da jsonapi.org-Spezifikationen hier verwendet werden. Mit Retrofit kann ich bereits 20 Produkt-POJOs erhalten, wobei Produkt die Java-Modellklasse mit weniger als 10 Attributen ist.

Welcher Ansatz ist besser und warum?

Ich erwäge nicht SQLite-Datenbanken, da ich denke, dass es teurer und nur geeignet ist, wenn

  • Datenintegrität
  • es beispielsweise Schreiboperationen sind erforderlich Warenkorb
  • größere Menge an Daten mit komplizierten Beziehungen

Antwort

1

Es hängt wirklich von 2 Hauptfaktoren: 1. Use Cases 2. Wie komfortabel mit einem bestimmten System ist.

Sie können jeden verwenden, der Ihrer Meinung nach zu Ihnen passt. SQLite ist in Ordnung, wenn Sie DB wie Datenstrukturen und einen komplexen Abfragemechanismus wirklich brauchen. Sie können SQLite mit einem ORM-System wie GreenDAO oder ORMLite verbinden, wenn es Ihnen hilft. Es gibt auch einen eher objektorientierten Ansatz (mit seinen Problemen).

Sie können auch für SharedPreferences (ich persönlich mag diesen Ansatz nicht) oder nur serialisieren POJOs mit Parcelable oder Java Serialisierung in Dateien. Es hängt wirklich davon ab, was Sie erreichen wollen, da jeder Ansatz seine Vor- und Nachteile hat.

Bei SQL orientierten DB gibt es eine große Nutzerbasis von SQL, die gut ist, aber Sie müssen Mapping nicht so gut.

Realm, könnte das nächste große Ding in mobilen Geräten DBs (gut), aber es ist noch nicht ausgereift, und Sie haben mit konkreten Klassen arbeiten, wenn (schlecht) Abrufen, könnte ich eine abstrakte/interface/Basis will Klasse.

Parcel - Sie haben eine Menge Code schreiben (schlecht), aber es ist ziemlich schnell (gut)

Java Serialisierung - einfach jede serializable Klasse Refactoring, keinen Code für die Serialisierung, gute für kleine bis mittlere Datenmengen. Nicht so gut für wirklich große Datenmengen, da es Reflection verwendet.

Verwandte Themen