Menerapkan Android Architecture Components, Retrofit dan RxJava — Android Jetpack

Ihwan
CirebonDev
Published in
4 min readJan 20, 2019

--

jetpack project

Assalamualaikum, saya do’a-kan teman-teman sehat selalu dan diberikan kelancaran rejeki, Aamiin.

Baik, dikesempatan kali ini saya mau sedikit sharing tentang apa yang baru baru ini saya pelajari dalam Android Development, setelah lama berada dalam zona nyaman membangun aplikasi menggunakan pattern MVP (Model-View-Presenter), akhirnya saya harus update ke pattern MVVM sesuai dengan Android Architecture Component.

Berbicara tentang teknologi Android, ada banyak sekali yang bisa kita pakai. tentu kita hanya memakai yang akan kita butuhkan. berikut saya jabarkan sedikit kisi-kisi teknologi atau library apa saja yang akan kita pakai :

  1. AndroidX : Dasarnya ini adalah versi terbaru dari Android support library
  2. ViewModel : Bagian dari jetpack yang mana biasanya kita menggunakan Presenter
  3. Retrofit : Digunakan untuk melakukan calling API. teman-teman juga bisa menggunakan library serupa seperti volley atau asynctask
  4. RxJava : singkatnya kita bisa menggunakan konsep reactive programming, jadi datanya berupa stream.
  5. Data Binding : juga bagian dari jetpack. gunanya untuk mempermudah kita dalam menampilkan data ke UI
  6. Picasso : akan kita gunakan untuk me-load gambar

nah itu dia kisi-kisinya, oh ya kalau belum tahu apa itu Jetpack. jadi Jetpack adalah sekumpulan tools yang bisa mempermudah pekerjaan kita dalam mengembangkan android. lebih lengkapnya bisa menonton playlist ini.

Untuk kasus Aplikasi apa yang akan kita buat, kita akan menampilkan list film terbaru dari API TMDB (TheMovieDB). Silahkan teman-teman sign up dan dapatkan API Key nya. Tenang ini gratis.

mungkin tidak perlu basa basi lagi, mari kita mulai kodingnya.

Buka aplikasi Android Studio, disini saya menggunakan versi 3.3

android studio

Pilih Start a new Android Studio project lalu untuk Activity-nya kita akan menggunakan Empty Activity, lengkapi konfigurasinya seperti berikut, kita akan menggunakan Kotlin dan jangan lupa mencentang Use AndroidX artifacts agar otomasis library AndroidX terdaftar di gradlenya.

konfigurasi project

pertama-tama mari kita buka gradle app kita dan tambahkan beberapa dependency berikut.

implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation "android.arch.lifecycle:extensions:1.1.1" implementation "com.squareup.retrofit2:retrofit:2.5.0" implementation "com.squareup.retrofit2:converter-gson:2.5.0" implementation "com.squareup.retrofit2:adapter-rxjava2:2.5.0" implementation "com.squareup.okhttp3:logging-interceptor:3.12.1" implementation "io.reactivex.rxjava2:rxjava:2.2.5"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' implementation 'com.squareup.picasso:picasso:2.71828'

jangan lupa juga untuk mengaktifkan databinding

dataBinding{
enabled = true
}

Lengkapnya, build.gradle kita akan seperti ini

Selanjutnya kita akan buat kelas kelas yang akan kita perlukan. saya beri kisi-kisi struktur foldernya sebagai berikut

struktur project

pertama dibagian model buat dua kelas untuk Movie beserta MovieResponsenya

Movie.kt

package id.ihwan.aac.model

data class Movie(
val backdrop_path: String,
val overview: String,
val poster_path: String,
val release_date: String,
val title: String
)

MovieResponse.kt

package id.ihwan.aac.model

data class MovieResponse(
val results: MutableList<Movie>
)

teman teman bisa membuat manual ataupun menggunakan plugin Json To Kotlin

selanjutnya di bagian network kita buat beberapa kelas sesuai jenisnya. ada kelas abstract, interface dan object.

karena kita akan menampilkan datanya dalam bentuk list, maka kita memerlukan recyclerview. tambahkan baris berikut kedalam gradle

implementation 'androidx.recyclerview:recyclerview:1.0.0'

mari langsung membuat Adapter beserta Layout-nya.

Di activity_main.xml Seperti ini

untuk meload gambar kita akan menggunakan picasso, mari kita buat kelas binding nya untuk meload image, buat didalam directory utils ya.

Nah Sekarang kita buat ViewModelnya untuk Main dan ItemMovie nya.

Apabila teman-teman memiliki kendala dalam mengakses File hasil generate data binding nya, teman-teman bisa melakukan rebuild project ataupun invalidate chace / restart. Dan berikut kode untuk MainActivity.kt nya

Jika sudah selesai step by step nya, mari kita deploy aplikasi kita, boleh ke emulator dan real device. Jangan lupa untuk menambahkan permission di AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>

hasil akhirnya seperti ini

result project

Disini kita belum menggunakan dependency Injection seperti Dagger ataupun Koin. mungkin kita bisa menggunakannya di next artikel. untuk bagian onclick dan detailnya teman-teman bisa kembangkan lebih jauh, source code ada di github repository saya, silahkan diberi bintang, forked, clone atau pull request dengan feature yang sudah teman-teman kembangkan.

Itu saja yang bisa saya bagikan pada kesempatan kali ini, apabila ada kesalahan dan kekurangan, saya sangat menerima saran serta kritik yang membangun, silahkan hubungi saya di Telegram. Jika artikel ini berguna untuk teman-teman, boleh memberi clap sebanyak-banyaknya di artikel ini.

Terimakasih dan Sampai Jumpa

Wassalamualaikum WrWb.

NB : Jika teman-teman mau mempelajari Android Jetpack lebih jauh, bisa mengulik dari project Android Sunflower dan juga saya merekomendasikan blog nya mas Yusuf Saifudin di sini.

--

--