Android Development dengan MVP Pattern (Lanjutan)

Hello Coders !!!

Di artikel sebelumnya kita sudah sama-sama membahas apa itu MVP Design Pattern, apa keuntungan menerapkan Design Pattern secara MVP, dan kita juga sudah melihat perbedaan antara MVC Design Pattern dan MVP Design Pattern. Bagi yang belum membaca bagian perkenalan MVP bisa klik di link berikut :

Android Development dengan MVP Pattern (Perkenalan)

Mari kita lanjutkan pembahasan kita mengenai MVP. Karena MVP ini adalah suatu konsep untuk membuat kode-kode kita lebih mudah dibaca, mudah di maintain, dan fleksibel maka pastinya akan ada aturan-aturan yang harus diikuti dalam menerapkan konsep ini ke proyek kita, nah berikut ada beberapa aturan yang harus diikuti dalam penerapan MVP Design Pattern :

  • View hanya bertugas menggambar UI yang diminta Presenter
  • View harus menyerahkan semua interaksi user ke Presenter
  • View tidak boleh menghubungi Model secara langsung, melainkan harus melalui Presenter
  • Presenter bertugas memenuhi semua kebutuhan View terhadap Model
  • Model bertugas menyimpan semua data yang ada, baik yang berasal dari jaringan, database, maupun file system.

Kelima aturan tersebut wajib dipatuhi dalam menerapkan pola desain MVP. Secara sederhana bagian View hanya mengurusi yang berkaitan dengan tampilan-tampilan dan callback dari user saja, dan bagian Presenter mengurusi logika-logika bisnis dalam aplikasi serta memenuhi kebutuhan View terhadap Model, dan bagian Model hanya mengurusi data-data yang digunakan dalam aplikasi.

Setelah mengetahui aturan-aturan yang harus dipatuhi secara umum, sekarang kita coba lihat aturan-aturannya secara spesifik di dalam suatu project Android berikut :

  • Activity, Fragment, dan Custom View berperan sebagai View dalam sebuah MVP project.
  • Setiap View harus memiliki sebuah Presenter.
  • View dapat berkomunikasi dengan Presenter melalui interface.
  • Model terbagi menjadi 4 bagian yaitu, ApiHelper, PreferenceHelper, DbHelper, dan FileHelper. Keempat bagian tersebut dapat diakses melalui sebuah file yaitu DataManager oleh
  • Presenter dapat berkomunikasi dengan DataManager melalui interface.
  • DataManager hanya memberikan data ketika diminta.
  • Presenter tidak dapat mengakses API Android secara langsung.

Nah dalam sebuah project Android yang menerapkan pola desain MVP pasti akan terdapat bererapa bagian-bagian arsitektur seperti Presenter, DataManager, dan sebagainya. Mari kita bahas bagian-bagian arsitektur dalam project Android yang menerapkan pola desain MVP.

  1. View. Seperti yang sudah dibahas dalam aturan secara spesifik, View yang dimaksud disini adalah Activity, Fragment maupun Costum View. View ini bertugas melakukan penggambaran UI dan menerima interaksi user.
  2. MvpView. Kalau dikatakan View dapat berkomunikasi dengan Presenter melalui interface dan begitu pula sebaliknya, maka MvpView inilah interface yang menjadi perantara View dengan Presenter. Interface ini berisi method-method yang harus diimplementasi oleh View dan nantinya akan diakses oleh Presenter.
  3. Presenter. Presenter merupakan kelas Java murni. Presenter ini bertugas membuat keputusan tanpa mengakses API Android, menerima interaksi user yang telah dikirim dari View dan memprosesnya berdasarkan logika bisnis yang kemudian memerintah View untuk melakukan suatu aksi, serta melakukan komunikasi dengan DataManager untuk mendapatkan data yang dibutuhkan untuk menunjang logika bisnis sehingga dapat terpenuhi.
  4. MvpPresenter. Jika di sisi View ada MvpView, maka di sisi Presenter ada MvpPresenter. Merupakan sebuah interface yang berisi method-method dan harus diimplementasi oleh presenter sehingga view dapat berkomunikasi dengan presenter.
  5. AppDbHelper. AppDbHelper merupakan sebuah kelas java. Kelas ini mengatur pengaksesan database aplikasi seperti memasukkan, memperbaharui, menampilkan, dan menghapus data di dalam database lokal.
  6. DbHelper. DbHelper adalah sebuah interface java. Pada interface ini berisi method-method yang harus diimplementasi oleh AppDbHelper. Method-method dalam kelas ini nantinya dapat dipanggil dari DataManager untuk melakukan suatu aksi pada database lokal.
  7. AppPrefHelper. Sama seperti AppDbHelper, hanya saja kelas ini mengatur sebuah Shared Preference dalam android.
  8. PrefHelper. Interface yang berisi method-method yang harus diimplementasi AppPrefHelper. Method-method dalam kelas ini nantinya dapat dipanggil dari DataManager untuk melakukan suatu aksi pada shared preference.
  9. AppApiHelper. AppApiHelper juga merupakan kelas java murni. Dalam kelas ini berisi method-method yang berfungsi untuk menarik data dari webservice.
  10. ApiHelper. Interface yang berisi method-method yang harus diimplementasi ApiHelper. Method-method dalam kelas ini dapat dipanggil dari DataManager untuk melakukan pemanggilan data melalui webservice.

Nah itu tadi adalah penerapan aturan-aturan dan komponen-komponen arsitektur dalam sebuah project android yang menerapkan pola MVP. Bagaimana? Mulai ada bayangan dan titik terang kan bahwasanya pola desain dengan MVP ini sangatlah membantu coders dalam memaintain project-project android yang coders punya karena memiliki pemisahan lapisan-lapisannya. Sebagai contoh, jika coders menemukan bugs aplikasi, dan menduga bahwa ternyata bugs terjadi pada logika aplikasi, maka coders tinggal mengarah ke presenter dari View yang ditemukan bugs, atau coders ingin merubah sebuah API yang telah ada sebelumnya, maka coders tinggal buka file AppApiHelper.

Saya rasa cukup sekian dulu artikel kali ini, untuk selanjutnya kita akan pelajari tentang bagaimana membuat sebuah project Android dengan pola MVP, namun sebelum itu saya akan mempost tutorial Dagger2 terlebih dahulu sebagai penunjang artikel tersebut.  Semoga apa yang saya tulis disini bermanfaat buat coders !

System.exit(0);

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

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