MVVM & Repository Pattern Android Development

Image for post
Image for post
Photo by Mika Baumeister on Unsplash

Hai setelah sekian lama tidak menulis, biasalah fresh grad banyak problematika yang perlu di urus belakangan ini hehe, saya kembali menulis tentang seputar apapun yang ingin saya tulis wkwk

Di sesi tulisan ini saya ingin sedikit membahas android karena title profile saya android engineer tp kok tulisan nya gada tentang android ya wkwk

okee…saya bahas android, kali ini saya akan bahas tentang Repository Pattern pada android development.

Sebelum melanjutkan membaca artikel tentang repository pattern ini kawan-kawan harus baca dulu atau pahami tentang Desain Pattern MVVM, cari sendiri dah ya artikel nya saya males wkwkwk

Lansung saja bos bahas apa mahluk Repository Pattern itu.

Jika sudah paham bagaimana MVVM bekerja, pasti tau kan ada model di desain pattern MVVM? apa masih bingung yaudah deh gambaran besarnya saya kasih tau tentang MVVM.

MVVM adalah singkatan dari Model View ViewModel, nah ada tiga bagian dalam MVVM kan kita bahas satu-satu.

Model

Model dalam MVVM berperan sebagai proses pengolahan data

ViewModel

ViewModel berperan sebagai atau semua penampung logic bussines yang terjadi sebagai komunikasi antara model dengan View.

View

Nah untuk View sendiri berperan sebagai UI seperti Activity, fragment tempat untuk menampilkan data yang di kirim dari ViewModel.

Nah itu sedikit overview tentang MVVM, karena dalam MVVM logic bussines di tampung pada ViewModel, pernah ga sih kepikiran data yang di kirimkan Model itu berasal darimana?

Dengan Repository Pattern kita bisa membedakan data dari API atau data dari Local Database. selain itu juga pernah kepikiran buat fitur Online/Offline? misal ingin membuat suatu aplikasi berita tapi ingin bisa di akses tanpa internet? Nah solusinya Repository pattern ini. Alurnya adalah data di muat dari API terlebih dahulu setelah itu kita cache dalam local Database

Arsitecture Component nya begini kalo MVVM

Image for post
Image for post

bisa di lihat gambar diatas repository berperan sebagai jembatan sebelum data di kirimkan ke viewmodel

Apasih keuntungan nya menggunakan Repository Pattern?

  • Memisahkan aplikasi dari sumber data.
  • Menyediakan data dari berbagai sumber seperti dari API, database lokal atau dari cache, tanpa klien khawatir tentang hal ini.
  • Mengisolasi lapisan data.
  • Satu kontrol, tersentralisasi, akses yang konsisten kepada data.
  • Mudah untuk melakukan testing kepada business logic dengan Unit Test.
  • Mudah untuk menambahkan sumber data baru.

Begitu sob agak pusing ya gak sih? sama saya juga pusing wkwkkw

Sekian terimakasih kawan-kawan seperkodingan. See You :)

Reference : Dicoding Class Android Jetpack Pro

Written by

Android Engineer | Linux User

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store