Sto creando un'app di riunione in cui gli utenti possono creare, partecipare (tramite invito) e modificare eventi come riunioni, uscite, ecc. Pensa a quali gruppi di chat di app. Quindi sto studiando il modo in cui l'app per Android rimarrà sincronizzata con gli eventi nuovi o aggiornati a cui l'utente appartiene. Qualche idea su come progettare questo?
Ho alcune idee:
1) Nel database posso salvare tutti gli eventi con una data di ultima modifica. Quindi, quando riprendo l'app, recupererò tutti gli eventi con una data di ultima modifica maggiore dell'ultima volta che ho recuperato gli eventi. Comunque per il tempo reale mi servirebbe un modo per spingere gli aggiornamenti.
2) Usa GCM e salva le notifiche in un database locale. Posso salvare gli ID degli eventi che ricevo dalla notifica e quindi effettuare una richiesta al server. Oppure posso semplicemente fare in modo che il GCM passi l'intero oggetto evento e mi risparmi una chiamata al server. Ma sono un po 'preoccupato di affidarmi a GCM. Se una notifica GCM fallisce, l'utente non otterrà mai l'evento.
3) Avere una tabella delle code per le transazioni degli eventi nel database del server. Quindi l'utente può prendere tutte le transazioni e fare una richiesta al server per prendere i dati nuovi / modificati. Tuttavia, questo sembra molto costoso e le tabelle potrebbero diventare enormi.
Cosa ne pensi di questi metodi? O pensi che ci siano modi migliori?