Implementasi Sederhana Retrofit dan RxJava Android

Posted on

Cara atau Tutorial Implementasi Sederhana Library Retrofit dan RxJava – Halo devandro! Pada tutorial pemrograman android kali ini kita akan membahas mengenai Implementasi Sederhana Retrofit dan RxJava.  Seperti banyak yang kita ketahui, Library retrofit ini untuk menangani kasus disaat kamu request url API dan Library RxJava bertujuan untuk melakukan proses asynchronous pada sebuah program dengan kosep observables sequence. Untuk contoh implementasi pada tutorial ini kita akan menggabungkan 2 library yang sudah saya sebutkan, dan untuk APInya kita akan menggunakan API dari layanan Github.

Implementasi Sederhana Retrofit dan RxJava Android
Implementasi Sederhana Retrofit dan RxJava Android

Penjelasan singkat mengenai apa sih itu RxJava,RxAndroid itu apa ? Kalau dikutip dari halaman resminya adalah :  RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.

It extends the observer pattern to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.

 

Persiapan Implementasi Retrofit dan RxJava

  1. Kita akan menggunakan API dari Github : https://api.github.com/users/farizdotid/repos
  2. Buat project dengan nama SampleRetrofitRx
  3. Aplikasi postman
  4. Plugin RoboPojoGenerator sudah terinstall di Android Studio kamu. Jika belum mempunyain plugin tersebut kamu bisa mengunjungi artikel berikut : Cara Install Plugin RoboPOJOGenerator di Android Studio

 

Eksekusi Implementasi Retrofit dan RxJava

Pertama,

Buka file build.gradle ( Module:app ) lalu tambahahkan library-library berikut :

Untuk full source code di build.gradle ( Module:app ) seperti ini :

 

Kedua,

Buka file AndroidManifest.xml lalu tambahkan permission untuk Internet, karena pada tutorial implementasi retrofit dan rxjava ini kita akan berurusan dengan internet. Tambahkan kode berikut :

 

Ketiga,

Buatlah struktur directory package seperti ini :

Implementasi Sederhana Retrofit dan RxJava Android_1

Catatan :

  • Directory package apiservice : untuk menampung class class yang berhubungan dengan network / ngehit API.
  • Directory package model : untuk menampung class class yang kita butuhkan keperluan data.

 

Keempat,

Buatlah class baru dengan nama RetrofitClient pada directory package apiservice lalu buat seperti ini :

 

Kelima,

Buatlah interface baru dengan nama BaseApiService pada directory package apiservice lalu buat seperti ini :

 

Keenam,

Buatlah class baru dengan nama UtilsApi pada directory package apiservice lalu buatlah seperti ini :

 

Ketujuh,

Buka url API berikut di browser ataupun aplikasi postman : https://api.github.com/users/farizdotid/repos dan hasil dari API berikut berupa format Json. Copy hasil dari hit API tersebut lalu klik kanan pada directory package model ➝ New ➝ Generate POJO from JSON ➝ Paste hasil dari hit API ➝ ok.

Implementasi Sederhana Retrofit dan RxJava Android

Implementasi Sederhana Retrofit dan RxJava Android

Pastikan kamu memilih GSON dan jangan lupa untuk memberi nama file tersebut. Contoh disini saya memberikan nama dengan ResponseRepos. Kegunaan plugin tersebut pada saat kita generate plugin akan otomatis membuat file sesuai dengan hasil json yang sudah kita paste.

 

Kedelapan,

Buat layout baru dengan nama item_repo. Caranya dengan res ➝ layout ➝ klik kanan pada directory layout ➝ new. Untuk kode layout tersebut adalah sebagai berikut :

Layout item_repo ini berfungsi untuk tampilan pada list RecyclerView. Jadi sebelum membuat adapter untuk RecyclerView alangkah lebih baiknya kita membuat layout itemnya terlebih dahulu.

 

Kesembilan,

Buat class dengan nama ReposAdapter. Lalu isi dengan kode berikut :

 

Kesepuluh,

Buka file activity_main.xml lalu tambahkan komponen seperti ini :

Jika ada error pada bagian @drawable/ic_github kalian bisa menambahkan terlebih dahulu file drawablenya dengan cara res ➝ drawable ➝ klik kanan pada package drawable ➝ new ➝ Drawable Resource File ➝ buat dengan nama ic_github ➝ OK. Isi dengan kode berikut :

 

Kesebelas,

Buka MainActivity.java lalu inisialisasi komponen-komponen yang sudah kamu buat terlebih dahulu.

Lalu inisialisasi file-file pembantu seperti BaseApiService dan ReposAdapter.

Pada method onCreate isi dengan kode berikut :

Jika ada error pada bagian requestRepos(username); biarkan saja karena kamu belum membuat fungsi tersebut.

 

Keduabelas,

Buatlah sebuah fungsi dengan nama requestRepos dan tambahkan fungsi tersebut dengan parameter String username. Untuk kodenya seperti berikut :

Kegunaan fungsi tersebut adalah untuk meng-request hit ke API yang sudah kita persiapkan dan hasil data dari request hit tersebut kita olah menggunakan RxJava. Parameter username disini untuk kebutuhan user input username githubnya karena pada contoh implementasi retrofit dan rxjava disini url API kita set dynamic yang artinya berubah-ubah.

 

Untuk full source code di MainActivity.java adalah sebagai berikut :

 

Ketigabelas,

SIlahkan jalankan aplikasi dan semoga berjalan dengan lancar.

Implementasi Sederhana Retrofit dan RxJava Android Implementasi Sederhana Retrofit dan RxJava Android

 

Download project Implementasi Sederhana Retrofit dan RxJava Android

button_download_farizdotid

 

Artikel tutorial pemrograman android menarik lainnya :

Cara Set Data Spinner dari Json API Server ( Retrofit ) Android

Cara POST ke API Server Menggunakan Retrofit 2

Membuat Session Login Logout Menggunakan SharedPreferences Android

 

Sekian tutorial pemrograman android kali ini mengenai Implementasi Sederhana Retrofit dan RxJava Android. Semoga bermanfaat dan jika ada yang ingin ditanyakan silahkan berkomentar pada artikel ini. Hatur Nuhun!

Gravatar Image
Seorang manusia biasa yang mempunyai fokus ke bidang pemrograman android dan ngeblog mengenai teknologi.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.