La sincronizzazione dei dati è un problema non banale. Se non hai familiarità con come farlo in un programma "standard", affrontarlo in questo contesto potrebbe essere al di là delle tue capacità progettuali. Se hai dimestichezza con la sincronizzazione dei dati, il documento Pattern di sincronizzazione dei dati nell'applicazione mobile Design (McCormick and Schmidt di Vanderbilt) sarebbe probabilmente un buon modo per leggere e sviluppare le tue conoscenze già esistenti (anche io andrei a inseguire i riferimenti ad altro materiale che potrebbe essere utile).
D'altra parte, se non si ha familiarità con la sincronizzazione dei dati, si potrebbe voler invece usare qualcosa che lo fa già. Sfortunatamente, non ho conoscenze approfondite per la progettazione mobile ... ma ho utilizzato un database NoSQL che esegue la replica / sincronizzazione tra database - CouchDB . Questo mi ha portato a questo articolo che riguarda la sincronizzazione del database mobile con qualcosa chiamato "Couchbase Lite". Il repo github inizia con il reclamo:
Couchbase Lite is an embedded lightweight, document-oriented (NoSQL), syncable database engine.
e il portale mobile per il database indica nuovamente:
Supports peer-to-peer replication. By adding an extra HTTP listener component, your app can accept connections from other devices running Couchbase Lite and exchange data with them.
Questo potrebbe essere uno strumento appropriato da utilizzare. Probabilmente è più affidabile del tuo, anche se significa che utilizzerai quel database e che dovrai adattarti al modo in cui lo fa.