UDACODING

Posts

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 .

1*gwUCdFJB-ih_y5HZVGANyQ KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

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 .

1*LI-rh3eovNdtR2Htjk5WFA KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

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

1*ScUEFIxHVOj_8EGxi2VcMw KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

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

https://api.stackexchange.com/2.2/answers?order=desc&sort=activity&site=stackoverflow

dan jsonnya

1*MwXzCyWBlID9NgYlgr29XA KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

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

1*NGWFLLbgSDkOiJvgPfWlOQ KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

silahkan copikan semua json.

1*xHsrit0o8S7BQkuT8ihfjw KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT

jadinya langsung generated pojo otomatis.

1*QPf2_c3c000bU1-_9640Fg KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT





jadi proses emmiter di bagian ini jadi response server langsung di emmit ke Observable.terus kenapa kita pakai Observable,Karena responsenya satu dari server.

1*l9gO2RsuT_FL7FQuKW1aZg KOTLIN ANDROID PART IV RXKOTLIN,MVP, RETROFIT





































































https://github.com/nandot12/SampleRxKotlinMVPRetrofit

Sumber  ; Nando Septian Husni

Leave a Reply :

* Your email address will not be published.