KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT
hei,ketemu dengan materi yang berbeda,lebih.
insyaAllah saya akan terus sharing tentang kotlin android,sekali-kali nanti swiftnya juga.
untuk kali membahas tentang reactive kotlin -x ,dan MVP,sebelumnya udah bahas MVP pattern.bagi teman-teman yang bisa paham konsep MVP pattern bisa lihat di sini.
RXKOTLIN
ini sebenarnya hampir sama dengan rxjava,atau bahasa yang lainnya,ini sebenarnya cuman konsep aja.dan library ini gunakan untuk konsumsi data dengan secara asyncrounus.belum tau asyncrounues itu apa ? silahkan pelajari dulu asychronuos itu apa ? library ini biasanya gunakan untuk konsumsi data di user interface itu kelihatan realtime.misalkan ambil dari server menggunakan retrofit,atau ambil inputan user di edittext dan sebagainya.Library ini juga hal wajid di pasang oleh developer professsional,kenapa ? zaman sekarang kebutuhan user yang begitu meningkat,jadi para developer harus menyuguhkan user interface jauh lebih cepat juga.misalkan pada saat halaman pendaftaran user menginputkan email,biasanya klik button dulu baru ketauan email itu valid apa tidak atau email itu udah kedaftar apa belum,dengan menggunakan konsep rx ini atau singkatan dari reactive-X menjawab kebutuhan user dengan permalasahan yang terjadi,banyak permasalahan di development android jawabannya adalah reactive programming ini .
ini jelaskan sedikit dari konsep reactive programming dan istilah-istilah yang ada.
saya istilahkan reactive programming itu seperti mic kabel dan speaker,jadi saat pembicara ngomong dengan mic itu proses emitter .dan kabel itu merupakan observable,di observable nanti operator,misalkan filter,maps,dan lainnya terus speaker adalah observer atau mengubah suara jauh lebih keras dari sumbernya.
Observable dibagi ada 4 :
1.observable
2.Flowable
3.Single
4.Maybe
5. Completable
Observable
kita gunakan ini ketika proses emitter lebih dari satu value,contoh kasus ketika download file dari server dan push persentase dari downloadnya 1- 100 % nah itu berarti kita emitter lebih dari satu value.
Flowable
Pada dasarkan sebenarnya ini sama dengan Observable tapi perbedaannya adalah ketika data yang di emit tidak bisa di konsum oleh observer kemungkinan filenya besar atau lainnya flowable punya BackPressureStrategy untuk memanggil MissingBackPressureException untuk skip value tersebut .Kalau contoh kasus mungkin sama dengan Observable diatas.
Single
nah,ini udah langsung ketebak ya,berarti ini hanya bisa emmit saya value saja.seperti ngambil satu response dari server
Maybe
Maybe ini digunakan ketika ada value yang di emmit atau tidak value untuk di emmit.
Completable
menggunakan ini ketika tanpa proses emitter proses observer masih tetap berlaku .
ini operator yang sebelum saya singgun .
jadi dalam kabel(Observable) bisa menambahkan di operator di dalamnya.Misalkan data yang di emmit itu berupa integer ,bisa pasang operator filter,bisa filter data yang ganjil aja,sesuai request kita.dan banyak banget operator yang ada,salah satu yang ada di gambar di atas
map →untuk convert semua value
filter → untuk nyaring data yang di emmit
atau gambarannya seperti ini
sample code
ambil dari server menggunakan retrofit dan di tampilkan di recyclerview menggunakan rxkotlin .
silahkan bikin project baru dan tambahkan library ini di dependency
Retrofit
library yang biasa saya pakai untuk berhubungan sama networking bisa get data server atau push data dari android.
Okhttp
library ini digunakan untuk debug,misalkan kita tau response server butuh bikin log dulu,kalau pakai library ini semua response server langsung ke print di log.Requestnya apa dan response nya apa langsung ke print otomatis
Anko common
ini library bawaan dari anko,bisa pelajari tulisan saya sebelumnya.sini
Konfigurasi retrofit
sekarang menggunakan end point yang ini
dan jsonnya
untuk generated pojonya saya menggunakan plugin robo pojo json.
bagi teman-teman belum install plugin ini.silahkan install dulu,caranya bisa klik file → setting → plugin → browse repository → tulis di bagian search robo pojo json → lalu silahkan klik install dan restart.
udah restart,silahkan klik kanan di bagian packet trus pilih new → terus geser ke bawah
silahkan copikan semua json.
jadinya langsung generated pojo otomatis.
jadi proses emmiter di bagian ini jadi response server langsung di emmit ke Observable.terus kenapa kita pakai Observable,Karena responsenya satu dari server.
Sumber ; Nando Septian Husni