Belajar iOS Architecture Design : VIP — Clean Swift

Muhammad Muizzsuddin
3 min readOct 5, 2017

--

Dan hari ini saya belajar Architecture Design baru untuk pengembangan aplikasi iOS.

Desain Asitektur yang biasa digunakan oleh pengembang pemula dalam pengembangan aplikasi iOS adalah MVC (Model-View-Controller). MVC memang bagus dan mudah diterapkan secara cepat namun bukan yang terbaik untuk desain arsitektur pengembangan aplikasi. Salah satu alasannya adalah MVC tidak menyediakan ketahanan yang saat terjadi bug. Pengembang bisa saja terus menerus berputar di dalam kode yang bertumpuk-tumpuk di Controller. Atau mungkin juga bisa di Model bahkan di View. Dan saat penambahan fitur baru, MVC membuat pekerjaan kita menjadi lebih sulit karena melibatkan refactor yang tidak ada habis.

Maka ditawarkanlah VIP — atau lebih dikenal dengan nama Clean Swift, sebagai alternatif bagi MVC. VIP merupakan kepanjangan dari View-Interactor-Presenter dimana merupakan alur yang dilewati saat segala sesuatu yang berhubungan dengan business logic terjadi.

Secara ringkas, VIP merupakan langkah untuk memisahkan setiap kelakuan yang terjadi dalam kode, termasuk business logic menjadi lebih spesifik dan melayani satu tujuan tertentu. VIP memisahkan tujuan-tujuannya dalam kelas-kelas spesifik yang terpisah. Contohnya dalam aplikasi permintaan jasa, maka saat pengguna membuat permintaan baru maka dengan VIP dibuatlah tiga kelas utama yaitu BuatPermintaanBaruViewController, BuatPermintaanBaruInteractor, BuatPermintaanBaruPresenter.

VIP-Cycle-1024x768.png

Urutan dalan VIP adalah sebagai berikut :

Program A akan menampilkan sebuah umpan balik berupa string Hallo {nama}, bagaimana kabarmu? ke layar setelah user memasukkan nama ke dalam text field lalu

  1. View Controller
  • User memasukkan nama ke dalam text field.
  • User menekan tombol tampilkan hasil
  • @IBAction untuk tombol tampilkan hasil mengambil text string dalam text field dan mengirimnya ke interactor untuk diolah (business logic) interactor.lakukanPengolahanInput(string:)

2. Interactor

  • Memeriksa apakah string yang dikirimkan oleh View Controller merupakan string kosong atau memiliki nilai?
  • Jika string kosong maka memanggil presenter.tampilkanPeringatanStringKosong()
  • Jika string memiliki nilai yang disepakati maka memanggil presenter.tampikanSalam(nama:)

3. Presenter

  • Presenter tampilkanPeringatanStringKosong() akan memanggil viewController.updateLabel(string:) dengan parameternya sendiri “Maaf anda perlu mengisikan nama terlebih dahulu”
  • Presenter tampilkanSalam(nama:) juga akan memanggil viewController.updateLabel(string:) dan mengisikan parameter “Halo nama, bagaimana kabarmu?”

Dalam aplikasi To-Do-List yang umum, jika menggunakan VIP, kode yang berhubungan dengan business logic akan di kerjakan di interactor dan di update bagaimana hasil di tampilkan melalui presenter. Dimana view bekerja? View hanya bertugas menerima input dari user dan menampilkan hasil tanpa harus mengutak-atik business logicnya.

Perbandingan dengan MVC, jika kode untuk viewController.updateLabel(string:) dijalankan di @IBAction lalu menampilkan hasil secara langsung, maka dalam VIP kode tersebut akan melakukannya dengan mekanisme View lalu Interactor lalu Presenter.

Term Clean Swift

Penggunaan nama Clean Swift mungkin disebabkan sesuai dengan tujuan dari dibentuknya desain arsitektur Clean Swift itu sendiri.

Clean Swift yang merupakan implementasi dari Clean Architecture ditujukan agar pengembang dalam menjaga arah pengembangan menjadi lebih mudah dalam pemeliharaan, daur ulang kode (tidak seperti MVC yang membuat kode satu sama lain saling bertumpuk), dan mendukung penambahan fitur-fitur baru tanpa melibatkan refactor besar-besaran pada kode yang sudah ada yang rawan error. Let the code stay clean!

Untuk penjelasan lengkap beserta tutorial resmi, Clean Swift telah meyediakannya untuk anda.

--

--

No responses yet