Tuesday, June 26, 2018

Android Viper Architecture

Mengenal Viper Architecture for Android.

Mungkin sudah ada yang mengetahui tentang viper architecture, dan viper architecture terkenal sebagai architecture dalam mengembangkan aplikasi berbasis IOS. kali ini saya ingin membahas ternyata viper juga bisa digunakan sebagai architecture patern untuk android.

Sebelumnya saya sedikit ingin menjelaskan apa itu viper architecture?Viper adalah singkatan dari View Interactor Presenter Entity Router dimana semua class memiliki responsibility yang di definisikan dengan baik sesuai dengan prinsip responsibilty sendiri.

berikut flow of data di apps android :


* Schema Viper pada android :

View : Membuat Tampilan sehingga hanya menunjukan UI saja.
Interactor : Mengurus semua tindakan yang dilakukan oleh presenter.
Presenter : Berfungsi memerintahkan setiap tindakan dengan memanfaatkan Interactor, memberiahu View untuk menampilkan konten dan memerintahkan navigasi ke layar lain menggunakan Router.
Entitas : Mewakili data aplikasi, singkatnya bertindak seperti Model dalam pola arsitektur MVP.
Router : Menangani navigasi kelayar selama siklus hidup aplikasi.

Kelebihan dari Viper Architecture ini adalah :
  • Testability out-of-the-box. karena modul longgar digabungkan itu benar-benar mudah untuk menguji secara terpisah. setiap objek di dalam modul juga dapat dipisahkan dengan cukup baik yang sangat bagus untuk pengujian unit
  • Pemeliharaan yang lebih baik dan kode yang lebih jelas
  • Membuat lebih mudah untuk melompat dari proyek iOS ke proyek Android dan sebaliknya
  • Karena Viper termasuk clean architecture dalam pengembangan Aplikasi dan tidak membuat presenter berat dengan banyak kode seperti pada architecture MVP & MVVM
  • VIPER independen benar-benar baik untuk tim besar (dalam hal iOS itu lebih dari dua pengembang). Ini berarti lebih sedikit menggabungkan konflik, uji yang lebih baik, dan perubahan modul yang lebih mudah. Anda mungkin ingin membuat kerangka arsitektur awal terlebih dahulu dan kemudian memberikan modul satu per satu ke pengembang lain untuk mengimplementasikan logika.
  • Codebase terlihat mirip. Selama Anda mulai merasakan filosofi VIPER Anda akan jauh lebih cepat dengan membaca kode orang lain. File akan lebih kecil (tidak lebih 3K baris kode UIViewControllers) logika akan lebih jelas dan stabilitas dan fleksibilitas keseluruhan lebih tinggi. Anda bahkan dapat membuat ulasan kode lintas platform logika bisnis dengan tim Android
Kekurangan dari Viper Architecture ini adalah :
  • Butuh Waktu ekstra untuk mempelajari, mengembangkan dan implementasi Viper Architure ini bagi Developer Baru
  • Banyak Layer atau File yang harus dibuat pada awal membangun Architecture ini
Dibawah ini salah satu contoh implementasi viper archiecture di android :

Step 1. Pertama-tama, buat aplikasi di AndroidStudio, dan buat Package Struktur berikut.


Step 2. Next Buat Activity yang disebut ControlActivity dimana aktivitas ini akan menjadi titik masuk untuk aplikasi kita.


Berikut penjelasan masing - masing class architecture :

  • ControlContracts adalah kelas yang berisi semua antarmuka yang harus dilaksanakan oleh kelas-kelas lain, ini penting karena ini akan menentukan semua metode yang akan mengekspos setiap kelas

  • ControlPresenter yang akan menjadi perantara antara tampilan dan Interactor. Kelas ini sebagian besar akan berisi metode untuk mengubah data dari Interactor ke objek yang akan ditampilkan dalam tata letak


















  • ControlInteractor, kelas ini mengimplementasikan antarmuka Interactor








  • ControlRouter yang mengimplementasikan antarmuka Router. Kelas ini berisi semua metode yang diperlukan untuk menavigasi layar lain


Berikut Contoh Implementasi Dari Viper Architecture :

1. Activity class yang disebut Login

2. Class LoginContract

3. Class LoginPresenter


4. Class LoginInteractor


5. Class LoginRouter



















Begitulah gambaran singkat tentang viper architecture patern di android...
So.. silahkan pilih ingin menggunakan architecture patern yang mana kawan -kawan inginkan MVC, MVP, MVVM, Clean Architecture or Viper Architecture tergantung masing - masing kebutuhan kawan - kawan semua ...
:)

Dan untuk mengetahui lebih dalam tentang Viper berikut Refrensi  yang bisa dibaca :
- https://www.raywenderlich.com/183467/android-viper-tutorial
- https://www.linkedin.com/pulse/viper-architecture-android-alexander-cabezas-medina
- https://github.com/LycanDev/Viper_architecture
- https://medium.com/@ankoma22/the-good-the-bad-and-the-ugly-of-viper-architecture-for-ios-apps-7272001b5347




No comments:

Post a Comment