Android
Real Time
Implementazione di Live Queries Android con Parse Server
11 min
applicazione in tempo reale utilizzando live queries introduzione le live queries sono destinate ad essere utilizzate in applicazioni reattive in tempo reale , dove l'uso del tradizionale paradigma di query comporterebbe alcuni problemi, come un aumento del tempo di risposta e un elevato utilizzo della rete e del server le live queries dovrebbero essere utilizzate nei casi in cui è necessario aggiornare continuamente una pagina con dati freschi provenienti dal database, il che accade spesso, ma non è limitato a, giochi online, client di messaggistica e liste di cose da fare condivise questa sezione spiega come utilizzare la live query di back4app in un ambiente android attraverso back4app questo tutorial utilizza un'app di base creata in android studio arctic fox 2020 3 1 patch 1 con compilesdk 30 compilesdk 30 , minsdk 21 minsdk 21 e targetsdk 30 targetsdk 30 in qualsiasi momento, puoi accedere al progetto completo tramite i nostri repository github repository di esempio kotlin repository di esempio java obiettivo ecco un'anteprima di ciò che stiamo per realizzare prerequisiti per completare questo tutorial, abbiamo bisogno di android studio un'app creata su back4app nota segui il tutorial nuova app parse per imparare a creare un'app parse su back4app un'app android connessa a back4app nota segui il tutorial installazione parse sdk per creare un progetto android studio connesso a back4app un dispositivo (o dispositivo virtuale ) che esegue android 4 1 (jelly bean) o versioni successive 1 abilita live query prima di iniziare a programmare, è necessario avere una classe nel tuo database per abilitare live query per farlo, trova semplicemente la tua app su sito web di back4app , e clicca su dashboard dashboard > crea una classe crea una classe , come mostrato qui ora, per abilitare la funzione live query, accedi al tuo account su sito web di back4app , trova la tua app e fai clic su impostazioni del server impostazioni del server , quindi trova il blocco “url del server e live query” e fai clic su impostazioni impostazioni quindi, arriverai a una pagina come quella qui sotto in questa pagina dovrai controllare l' attiva il tuo sottodominio back4app attiva il tuo sottodominio back4app opzione, l' attiva live query attiva live query opzione e tutte le classi per cui desideri attivare live query, come mostrato qui sotto è necessario attivare webhosting per utilizzare le live queries, perché il tuo dominio funzionerà come il server live nota per saperne di più su webhosting guarda il tutorial su webhosting di back4app 2 configura il client livequery github ufficiale di parse server ha un'implementazione del live query client per android https //github com/parse community/parselivequery android è necessario implementare il client live query ufficiale, che funziona bene per farlo, aggiungi le seguenti righe al tuo app/build gradle app/build gradle file, nella sezione delle dipendenze e sincronizza il tuo progetto app/build gradle 1 dependencies { 2 3 // don't forget to change the line below with the latest version of parse sdk for android 4 implementation "com github parse community parse sdk android\ parse 1 26 0" 5 implementation 'com github parse community\ parselivequery android 1 2 2' 6 7 } in questo progetto, creeremo anche una classe chiamata messaggio messaggio , che conterrà i nostri messaggi 3 iscriviti alla tua query per iniziare a utilizzare le live queries, prima crea un livequeryclient livequeryclient che gestirà le connessioni websocket per te per fare ciò, dovrai fornire l'id dell'applicazione, la chiave javascript e anche un url del server di live query che hai configurato nel primo passaggio 1 parse initialize(new parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build());1 parse initialize(parse configuration builder(this) 2 applicationid(getstring(r string back4app app id)) 3 clientkey(getstring(r string back4app client key)) 4 server(getstring(r string back4app server url)) 5 build()) il codice per inizializzare livequeryclient livequeryclient è il seguente 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() abbiamo un adattatore recyclerview chiamato messageadapter messageadapter le funzioni di messageadapter vengono attivate quando un oggetto viene aggiunto, eliminato o aggiornato qui le nostre messageadapter messageadapter funzioni 1 public void additem(parseobject t) { 2 this list add(t); 3 notifyiteminserted(list size() 1); 4 } 5 6 public void removeitem(parseobject object) { 7 for (int i = 0; i < list size(); i++) { 8 if (list get(i) getobjectid() equals(object getobjectid())){ 9 list remove(i); 10 notifyitemremoved(i); 11 notifyitemrangechanged(i, list size()); 12 return; 13 } 14 } 15 } 16 public void updateitem(parseobject object) { 17 for (int i = 0; i < list size(); i++) { 18 if (list get(i) getobjectid() equals(object getobjectid())){ 19 list set(i,object); 20 notifydatasetchanged(); 21 return; 22 } 23 } 24 }1 fun additem(t parseobject?) { 2 list!! add(t!!) 3 notifydatasetchanged() 4 } 5 6 fun removeitem(`object` parseobject) { 7 for (i in list!! indices) { 8 if (list!!\[i] objectid == `object` objectid) { 9 list!! removeat(i) 10 notifyitemremoved(i) 11 notifyitemrangechanged(i, list!! size) 12 return 13 } 14 } 15 } 16 17 fun updateitem(`object` parseobject) { 18 for (i in list!! indices) { 19 if (list!!\[i] objectid == `object` objectid) { 20 list!!\[i] = `object` 21 notifydatasetchanged() 22 return 23 } 24 } 25 } poi, dovresti creare una parsequery parsequery per quale tipo di oggetto vuoi iscriverti un'iscrizione è un emettitore di eventi, che attiverà eventi quando si verificano cambiamenti a un oggetto che soddisfa la tua query in questo esempio, farai una query di base e ti iscriverai a tutte le modifiche apportate agli message message oggetti scopri di più su query e abbonamenti su documentazione ufficiale delle query di parse 1 parsequery\<parseobject> parsequery = new parsequery<>("message"); 2 subscriptionhandling = parselivequeryclient subscribe(parsequery); 3 subscriptionhandling handlesubscribe(q > { 4 subscriptionhandling handleevent(subscriptionhandling event create, (query, object) > { 5 mainactivity this runonuithread(() > { 6 messagesadapter additem(object); 7 }); 8 }); 9 subscriptionhandling handleevent(subscriptionhandling event delete, (query, object) > { 10 mainactivity this runonuithread(() > { 11 messagesadapter removeitem(object); 12 }); 13 }); 14 subscriptionhandling handleevent(subscriptionhandling event update, (query, object) > { 15 mainactivity this runonuithread(() > { 16 messagesadapter updateitem(object); 17 }); 18 }); 19 });1 val parsequery = parsequery\<parseobject>("message") 2 subscriptionhandling = parselivequeryclient!! subscribe(parsequery) 3 subscriptionhandling!! handlesubscribe { subscriptionhandling!! handleevent(subscriptionhandling event create 4 ) { parsequery\<parseobject?>?, `object` parseobject? > 5 runonuithread { messagesadapter!! additem(`object`) } 6 } 7 subscriptionhandling!! handleevent(subscriptionhandling event delete 8 ) { parsequery\<parseobject?>?, `object` parseobject? > 9 runonuithread { messagesadapter!! removeitem(`object`!!) } 10 } 11 subscriptionhandling!! handleevent(subscriptionhandling event update 12 ) { parsequery\<parseobject?>?, `object` parseobject? > 13 runonuithread { messagesadapter!! updateitem(`object`!!) } 14 } 15 } nota attiviamo tutti questi eventi nell'app puoi anche attivare questi eventi di creazione, aggiornamento e cancellazione da back4app (dalla tabella o dalla console javascript) è fatto! a questo punto, hai le conoscenze su come utilizzare le live queries per creare applicazioni reattive in tempo reale in un ambiente android e anche su come configurare le live query utilizzando back4app ora puoi iniziare a implementarlo nella tua app sei ora pronto per esplorare le funzionalità principali di parse server https //www back4app com/product/parse server e gli add on di back4app https //www back4app com/product/addons