Non ho mai usato DynamoDB, ma ho appena letto la documentazione di iOS sul sito web di Amazon, e PENSO che l'integrazione dei due sia possibile e relativamente facile.
Sembra che tu definisca modelli di dati in DynamoDB allo stesso modo di Realm: crea una sottoclasse di AWSDynamoDBObjectModel
e aggiungi le tue proprietà. Poiché questo è il caso, finché hai creato un Reame Object
(o RLMObject
in Objective-C) con le stesse proprietà di corrispondenza, dovresti (teoricamente) essere in grado di passare semplicemente gli oggetti DynamoDB direttamente a Realm per essere salvato:
let realm = try! Realm()
try! realm.write {
realm.create(MyRealmSubclass.self, value: MyDynamoDBObject, update: true)
}
Realm è molto abile nel poter utilizzare KVC per verificare se gli oggetti passati sono conformi allo schema dei suoi oggetti modello e per recuperare e salvare automaticamente tali informazioni.
(NB: affinché il update:
funzioni correttamente, è necessario assicurarsi che gli oggetti condividano anche una proprietà di chiave primaria comune).
Dal suono di esso, se stai cercando di modificare i dati salvati localmente in Realm mentre l'app è offline, e quindi spingere i dati modificati il dispositivo è di nuovo online, allora starà a te per convertire nuovamente gli oggetti del modello Realm in oggetti DynamoDB per poterli reinserire in AWS.
È possibile aggiungere proprietà aggiuntive al modello di Realm, ad esempio un flag booleano hasChanges
o un oggetto data lastModifiedDate
per poter verificare che un oggetto non in linea abbia modifiche che devono essere caricate.
Fatemi sapere se avete bisogno di ulteriori chiarimenti!
(Full disclosure:. Io lavoro per Realm)
Che bella idea! Ci provo e torno da te. –
quale sarà il codice equivalente nell'obiettivo c? –
Il metodo API equivalente in Objective-C sarebbe '[RLMObject createOrUpdateInRealm: withValue:]'! :) – TiM