Implementasi Live Query Android dengan Back4App
11 mnt
aplikasi waktu nyata menggunakan live queries pendahuluan live queries dimaksudkan untuk digunakan dalam aplikasi reaktif waktu nyata , di mana hanya menggunakan paradigma kueri tradisional akan menghadapi beberapa masalah, seperti waktu respons yang meningkat dan penggunaan jaringan serta server yang tinggi live queries harus digunakan dalam kasus di mana anda perlu memperbarui halaman secara terus menerus dengan data segar yang berasal dari database, yang sering terjadi di, tetapi tidak terbatas pada, permainan online, klien pesan, dan daftar tugas bersama bagian ini menjelaskan cara menggunakan live query back4app di lingkungan android melalui back4app https //www back4app com/ tutorial ini menggunakan aplikasi dasar yang dibuat di android studio arctic fox 2020 3 1 patch 1 dengan \<font color="#2166ae">compilesdk 30\</font> , \<font color="#2166ae">minsdk 21\</font> dan \<font color="#2166ae">targetsdk 30\</font> kapan saja, anda dapat mengakses proyek lengkap melalui repositori github kami repositori contoh kotlin https //github com/templates back4app/android crud operations kotlin repositori contoh java https //github com/templates back4app/android crud operations java tujuan berikut adalah pratinjau dari apa yang akan kita capai prasyarat untuk menyelesaikan tutorial ini, kami membutuhkan android studio https //developer android com/studio/index html sebuah aplikasi yang dibuat di back4app catatan ikuti tutorial aplikasi parse baru https //www back4app com/docs/get started/new parse app untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi android yang terhubung ke back4app catatan ikuti tutorial instalasi parse sdk https //www back4app com/docs/android/parse android sdk untuk membuat proyek android studio yang terhubung ke back4app sebuah perangkat (atau perangkat virtual https //developer android com/studio/run/managing avds html ) yang menjalankan android 4 1 (jelly bean) atau yang lebih baru 1 aktifkan live query sebelum anda mulai coding, perlu memiliki sebuah kelas di database anda untuk mengaktifkan live query untuk melakukannya, cukup temukan aplikasi anda di situs web back4app https //www back4app com/ , dan klik pada \<font color="#2166ae">dasbor\</font> > \<font color="#2166ae">buat kelas\</font> , seperti yang ditunjukkan di sini sekarang, untuk mengaktifkan fitur live query, masuk ke akun anda di situs web back4app https //www back4app com/ , temukan aplikasi anda dan klik pada \<font color="#2166ae">pengaturan server\</font> , kemudian temukan blok “url server dan live query” dan klik pada \<font color="#2166ae">pengaturan\</font> kemudian, anda akan tiba di halaman seperti di bawah ini di halaman ini anda perlu memeriksa opsi \<font color="#2166ae">aktifkan subdomain back4app anda\</font> , opsi \<font color="#2166ae">aktifkan live query\</font> , dan semua kelas yang anda inginkan agar live query diaktifkan, seperti yang ditunjukkan di bawah penting untuk mengaktifkan webhosting untuk menggunakan live queries, karena domain anda akan berfungsi sebagai server langsung catatan untuk mengetahui lebih lanjut tentang webhosting lihat di tutorial webhosting back4app https //www back4app com/docs/platform/activating web hosting 2 siapkan klien livequery github resmi parse server https //github com/parse community memiliki implementasi klien live query untuk android https //github com/parse community/parselivequery android penting untuk mengimplementasikan klien live query resmi, yang bekerja dengan baik untuk melakukannya, tambahkan baris berikut ke aplikasi anda \<font color="#2166ae">app/build gradle\</font> file, di bagian dependensi dan sinkronkan proyek anda 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 } dalam proyek ini, kita juga akan membuat kelas bernama \<font color="#2166ae">pesan\</font> , yang akan berisi pesan pesan kita 3 berlangganan ke kueri anda untuk mulai menggunakan live queries, pertama buatlah \<font color="#2166ae">livequeryclient\</font> yang akan mengelola koneksi websocket untuk anda untuk melakukan ini, anda harus menyediakan id aplikasi, kunci javascript nya dan juga url server live query yang telah anda siapkan di langkah pertama 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()) kode untuk menginisialisasi \<font color="#2166ae">livequeryclient\</font> adalah sebagai berikut 1 parselivequeryclient parselivequeryclient = parselivequeryclient factory getclient();1 val parselivequeryclient = parselivequeryclient factory getclient() kami memiliki adapter recyclerview bernama \<font color="#2166ae">messageadapter\</font> fungsi fungsi messageadapter dipicu ketika objek ditambahkan, dihapus, atau diperbarui di sini fungsi \<font color="#2166ae">messageadapter\</font> kami 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 } kemudian, anda harus membuat \<font color="#2166ae">parsequery\</font> untuk jenis objek apa yang ingin anda langgani sebuah langganan adalah pemicu peristiwa, yang akan memicu peristiwa ketika terjadi perubahan pada objek yang memenuhi kueri anda dalam contoh ini, anda akan membuat kueri dasar dan akan melanggan semua perubahan yang dilakukan pada objek \<font color="#2166ae">message\</font> lihat lebih lanjut tentang kueri dan langganan di dokumentasi resmi kueri parse http //docs parseplatform org/android/guide/#queries 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 } catatan kami memicu semua peristiwa ini di aplikasi anda juga dapat memicu peristiwa buat, perbarui, dan hapus ini dari back4app (dari tabel atau konsol javascript) selesai! pada titik ini, anda memiliki pengetahuan tentang cara menggunakan live queries untuk membuat aplikasi reaktif waktu nyata di lingkungan android dan juga cara mengatur live query menggunakan back4app sekarang anda dapat mulai menerapkannya di aplikasi anda sendiri anda sekarang siap untuk menjelajahi fitur inti parse server https //www back4app com/product/parse server dan add on back4app https //www back4app com/product/addons