Asynchronous Android dengan Kotlin Coroutines

Yusuf Safrudin
TLabCircle
Published in
3 min readDec 30, 2020

Asynchronous programming saat ini menjadi salah satu bagian penting dari sebuah aplikasi, lantaran memungkinkan aplikasi untuk melakukan pekerjaan secara paralel dengan mengeksekusi pekerjaan yang berat di background. Android sendiri menyediakan fungsi untuk Asynchronous yaitu AsyncTask, akan tetapi cukup sulit untuk dipahami karena banyak extend class dan callback.

Kotlin Coroutines
Coroutines menjadi rekomendasi untuk asynchronous programming di Android. Coroutines sendiri memiliki beberapa fitur, di antaranya:

  • Lightweigtht: Dapat mengeksekusi banyak coroutines dalam sebuah thread.
  • Fewer memory leaks: Menggunakan konkurensi ketika menjalankan operasi dalam sebuah scope.
  • Built-in cancellation support: Cancel otomatis berdasarkan scope.
  • Jetpack integration: Library Jetpack sudah support dengan coroutines.

Ketika menggunakan coroutines, kita dapat mengatur threading menggunakan Dispatcher yang sudah ada, yaitu:

  • Dispatcher.Main: Untuk proses yang berhubungan dengan UI Thread.
  • Dispatcher.IO: Untuk proses yang berhubungan dengan I/O seperti request ke API, transaksi ke local database.
  • Dispatcher.Default: Untuk proses menjalankan function menggunakan kinerja CPU, misalkan sorting data atau parsing data.

Implementasi Kotlin Coroutines
Pada artikel ini, saya menggunakan API dari movie db. Biar nggak panjang lebar, langkah pertamanya adalah menambahkan beberapa dependencies. Lengkapnya bisa dilihat pada gambar ini.

Selanjutnya adalah membuat class untuk API client dan API service.

Kemudian tambahkan code berikut pada MainActivity untuk melakukan fetching data dari api.

Kurang lebih itulah gambaran asynchronous dengan Kotlin Coroutines. Untuk code lengkapnya, bisa cek di sini.

Referensi:

Jika ingin meng-explore Coroutines lebih jauh, bisa cek artikel berikut:

https://developer.android.com/kotlin/coroutines

--

--