Android
Real Time
Implémentation de Live Query sur Android avec Back4App
11 min
application en temps réel utilisant des requêtes en direct introduction les requêtes en direct sont destinées à être utilisées dans des applications réactives en temps réel , où l'utilisation du paradigme de requête traditionnel entraînerait certains problèmes, comme un temps de réponse accru et une utilisation élevée du réseau et du serveur les requêtes en direct doivent être utilisées dans les cas où vous devez mettre à jour en continu une page avec des données fraîches provenant de la base de données, ce qui se produit souvent dans, mais n'est pas limité à, des jeux en ligne, des clients de messagerie et des listes de tâches partagées cette section explique comment utiliser la requête en direct de back4app dans un environnement android via back4app ce tutoriel utilise une application de base créée dans android studio arctic fox 2020 3 1 patch 1 avec compilesdk 30 compilesdk 30 , minsdk 21 minsdk 21 et targetsdk 30 targetsdk 30 à tout moment, vous pouvez accéder au projet complet via nos dépôts github dépôt d'exemple kotlin dépôt d'exemple java objectif voici un aperçu de ce que nous allons réaliser prérequis pour compléter ce tutoriel, nous avons besoin de android studio une application créée sur back4app remarque suivez le tutoriel de nouvelle application parse pour apprendre à créer une application parse sur back4app une application android connectée à back4app remarque suivez le tutoriel d'installation du sdk parse pour créer un projet android studio connecté à back4app un appareil (ou appareil virtuel ) fonctionnant sous android 4 1 (jelly bean) ou version ultérieure 1 activer live query avant de commencer à coder, il est nécessaire d'avoir une classe dans votre base de données pour activer live query pour ce faire, trouvez simplement votre application sur le site web de back4app , et cliquez sur tableau de bord tableau de bord > créer une classe créer une classe , comme indiqué ici maintenant, pour activer la fonctionnalité de requête en direct, connectez vous à votre compte sur le site web de back4app , trouvez votre application et cliquez sur paramètres du serveur paramètres du serveur , puis trouvez le bloc “url du serveur et requête en direct” et cliquez sur paramètres paramètres ensuite, vous arriverez à une page comme celle ci dessous sur cette page, vous devrez cocher l' activer votre sous domaine back4app activer votre sous domaine back4app option, l' activer live query activer live query option et toutes les classes pour lesquelles vous souhaitez que live query soit activé, comme montré ci dessous il est nécessaire d'activer webhosting pour utiliser les requêtes en direct, car votre domaine fonctionnera comme le serveur en direct remarque pour en savoir plus sur webhosting, consultez le tutoriel webhosting de back4app 2 configurer le client livequery github officiel de parse server a une implémentation du client live query pour android https //github com/parse community/parselivequery android il est nécessaire d'implémenter le client live query officiel, qui fonctionne très bien pour ce faire, ajoutez les lignes suivantes à votre application app/build gradle app/build gradle fichier, dans la section des dépendances et synchronisez votre projet 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 } dans ce projet, nous allons également créer une classe nommée message message , qui contiendra nos messages 3 abonnez vous à votre requête pour commencer à utiliser les live queries, créez d'abord un livequeryclient livequeryclient qui gérera les connexions websocket pour vous pour ce faire, vous devrez fournir l'id de l'application, sa clé javascript et également une url de serveur de live query que vous avez configurée à l'étape précédente 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()) le code pour initialiser livequeryclient livequeryclient est le suivant 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() nous avons un adaptateur recyclerview nommé messageadapter messageadapter les fonctions de messageadapter sont déclenchées lorsque des objets sont ajoutés, supprimés ou mis à jour ici, nos messageadapter messageadapter fonctions 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 } ensuite, vous devez créer un parsequery parsequery pour quel type d'objet vous souhaitez vous abonner une souscription est un émetteur d'événements, qui déclenchera des événements lorsque des changements se produisent sur un objet qui satisfait votre requête dans cet exemple, vous effectuerez une requête de base et vous abonnerez à tous les changements effectués sur les message message objets voir plus sur les requêtes et les abonnements à documentation officielle des requêtes 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 } remarque nous déclenchons tous ces événements dans l'application vous pouvez également déclencher ces événements de création, de mise à jour et de suppression depuis back4app (depuis la table ou la console javascript) c'est fait ! à ce stade, vous avez les connaissances nécessaires pour utiliser les live queries afin de créer des applications réactives en temps réel dans un environnement android et également comment configurer live query en utilisant back4app vous pouvez maintenant commencer à l'implémenter dans votre propre application vous êtes maintenant prêt à explorer les fonctionnalités principales de parse server https //www back4app com/product/parse server et les add ons de back4app https //www back4app com/product/addons