Modo ideale per aggiornare le viste dell'app quando i dati cambiano [chiuso]

0

Va bene questa non è una domanda specifica per la piattaforma. Ma qualsiasi risposta relativa a iOS, Android o Windows Phone aiuterà. Quindi sto costruendo un'applicazione di chat (sì un'altra) ma sono davvero confuso su come i professionisti gestiscono l'aggiornamento della GUI quando arriva un messaggio di chat. Non mi preoccupo molto dei problemi di prestazioni, ma di come gli sviluppatori aggiornano varie parti della GUI dell'app mostrando i dati aggiornati.

Ad esempio, Whatsapp ha un elenco principale in cui sono elencate tutte le chat aperte e quindi una finestra di visualizzazione della chat separata (attività in caso di Androidi).

Quindi, quando arriva un messaggio, come aggiornano entrambe le visualizzazioni contemporaneamente? Come se stia già chattando con qualcuno e ricevo un nuovo messaggio, l'elenco si aggiorna non appena arriva il messaggio. Ricevo questa parte ma come viene aggiornata la lista master. Stanno costruendo tutta la vista principale di nuovo dopo ogni singolo messaggio? Volevo solo conoscere il meccanismo ideale per affrontare questo scenario.

    
posta n00b 22.03.2015 - 15:33
fonte

2 risposte

0

Concetto fondamentale: A un livello basso (er), l'elemento dell'interfaccia utente è sottoscritto agli eventi provenienti dalla raccolta dati (array, elenco, dizionario, ecc.) Che contiene i dati che stanno cambiando. Quando la raccolta cambia, segnala un evento all'effetto di "I miei dati sono cambiati" e gli abbonati a quell'evento gestiscono di conseguenza. Come hai descritto nel tuo esempio, in quel momento viene aggiornata la rappresentazione visuale dell'elenco dei messaggi.

Concetto in pratica: La maggior parte delle lingue / framework fornisce qualcosa chiamato associazione dati. Invece di dover manualmente iscrivere l'elemento dell'interfaccia utente agli eventi della raccolta dati, devi invece associare l'elemento dell'interfaccia utente alla raccolta dati. Il framework gestisce quindi il codice boilerplate coinvolto nella segnalazione di un evento e nell'aggiornamento dell'elemento dell'interfaccia utente.

Il Pattern MVVM è un buon punto di partenza per capire come funziona il binding dei dati nella pratica. Microsoft fornisce inoltre ulteriori indicazioni specifiche su il pattern MVVM .

L'associazione dei dati è una pratica abbastanza diffusa su una varietà di piattaforme:

risposta data 23.03.2015 - 12:51
fonte
0

Generalmente, il codice dell'interfaccia utente si basa sul ridisegno di almeno un intero componente da una struttura dati sottostante che descrive cosa dovrebbe contenere (ad esempio, un elenco di stringhe e icone diventa una vista elenco, una stringa per un campo di testo, ecc.) . A volte le strutture dati non possono ricevere aggiornamenti incrementali (ad es. String in Java). Altre volte possono. È caso per caso. A volte un componente UI incorporato altrimenti utilizzabile non supporta l'aggiornamento incrementale della struttura dati sottostante e deve essere scritto un componente UI personalizzato che faccia quasi la stessa cosa ma supporti l'aggiornamento incrementale.

Per una tipica applicazione di chat, sono abbastanza sicuro che non si verificherà un problema di prestazioni se non si utilizza l'aggiornamento incrementale.

    
risposta data 22.03.2015 - 20:06
fonte

Leggi altre domande sui tag