2012-12-19 12 views
6

Sto costruendo un'app social con funzionalità quali feed, profilo, amici e follower. Sto usando i dati di base per salvare tutti gli oggetti in modo persistente. Quando un utente avvia l'applicazione, i dati vengono recuperati dai dati di base e visualizzati all'utente in modo istantaneo, ma sto recuperando anche gli aggiornamenti in background.Limitazioni dei dati principali e quando non salvare i dati in modo persistente

Il problema è che al momento sto salvando tutto nei dati di base. Ad esempio, se visito un profilo di amici, recupero gli oggetti del feed dell'amico e li salvo anche nei dati di base. Ora la prossima volta che visito il profilo dello stesso amico, mostro il feed salvato inizialmente (e lo aggiorno in background).

Devo fare questo? C'è qualche problema con il salvataggio di tutto nei dati di base (per una migliore esperienza utente), o ci sono limitazioni o problemi che potrebbero verificarsi quando il set di dati diventa più grande? Ci sono alcune buone pratiche che devo seguire in termini di cosa salvare e cosa non salvare in modo persistente?

Grazie

+0

È possibile salvare tutti i dati del Core ma i problemi si verificano quando i dati vengono cancellati e si desidera recuperarli. Se non si recuperano tutte le voci nella linea del tempo, non dovrebbe essere importante. È possibile limitare i risultati del recupero (numero di oggetti ritorno) o limitare con un predicato come il tempo o qualcosa del genere. –

+0

Il recupero non sarà un problema. Prenderò solo gli oggetti richiesti e non tutto. Ma la mia domanda è che è buona pratica salvare, ad esempio, gli oggetti di feed di un amico, perché è bassa la probabilità che io possa visitare nuovamente quel profilo di amici e gli oggetti di salvataggio saranno di nuovo necessari. O c'è qualche aspetto negativo nel salvare dati extra? PS. L'app di Facebook non salva i feed di amici e recupera dal server ogni volta che visitiamo un profilo di amici –

+0

Dal punto di vista dell'architettura software è possibile memorizzare alcuni dati, ma principalmente le app di social network sono app thin client. Significa che tutti i dati vengono recuperati dal server richiesta. Il tuo approccio non è molto comune. –

risposta

2

Mentre in linea di principio è possibile utilizzare il metodo al fine di mostrare immediatamente alcuni dati, ci sono alcuni compromessi significativi. Nel complesso, penso che il tuo approccio sia problematico.

Confronta la tua situazione con l'app di posta su iPhone (almeno quando usi un server di posta con una certa latenza.) Quando apri una casella di posta vedrai vecchi messaggi e una ruota che indica che un aggiornamento è in esecuzione. Quindi, improvvisamente, il display viene aggiornato con tutti i nuovi messaggi. Il tuo approccio è molto simile a questo.

Potrebbe essere corretto per i messaggi di posta, ma è davvero accettabile per i feed di notizie e i messaggi di stato? Io non la penso così Messaggi di stato obsoleti (pensa "Mi sento blu") quando la situazione è già cambiata (pensa "Mi sento benissimo.") Sono fuorvianti e provocheranno una triste esperienza utente.

Il tuo archivio Dati principali potrebbe ancora memorizzare tutti i dati e periodicamente cancellarsi. Il recupero iniziale potrebbe essere tale che gli elementi più vecchi di una certa soglia non vengono mostrati (e cancellati). Allo stesso tempo, ha perfettamente senso persistere di dati più permanenti (come l'elenco di amici).

Problemi correlati