Project ini merupakan hasil implementasi dalam penggunaan Networking dengan Retrofit. Bahasa yang digunakan yaitu kotlin dan XML. Selain itu juga menerapkan mengenai perbedaan antara ListAdapter dengan RecylerView.Adapter
- Membuat Class RestaurantResponse untuk menampung data pengguna
- Membuat Class ApiService dan ApiConfig untuk mengatur konfigurasi
- Implementasi Retrofit
- Implementasi ListAdapter
- Menggunakan RoboPojoGenerator yaitu plugin untuk mengkonnvert JSON menjadi sebuah response. Pada project ini menggunakan bahasa kotlin dengan GSON
- Class ApiConfig berguna untuk membuat dan mengkonfigurasi retrofit. Untuk memanggil retrofit hanya memanggil ApiConfig.getApiService() sehingga tidak menulis berulang kali karena berada dalam companion object
- Api Service berisi mengenai interface dari kumpulan endpoint dari Restaurant Api Dicoding
- Annotasion @POST = mengirim data, @Header = menyematkan token jika dibutuhkan otorisasi, @FormUrlEncoded = mengirim data dengan @Field
- Fungsi enqueue = menjalankan request secara asynchronous di background
- Perbedaan ListAdapter dan RecylerView.Adapter :
- ListAdapter =
- Tidak memerlukan function getItemCount( ) karena sudah diketahui list datanya melalui type parameter 1 pada ListAdapter, yaitu function submitList( ) pada Main Activity
- Menggunakan DiffUtil(memeriksa data masih ada/tidak) sehingga hanya item yang datanya berubah saja yang akan diperbarui
- RecylerView.Adapter =
- Semua item akan diperbarui ketika ada perubahan data