Intro to iOS Design Pattern

Syaiful Amin March 13, 2017

Mungkin anda pernah mendengar istilah Design Pattern, tapi tahu kah apa itu artinya? Kebanyakan pengembang aplikasi sangat setuju design pattern sangat penting. Sekarang sudah banyak artikel yang membahas tentang design pattern dan kadang kita sebagai pengembang aplikasi tidak terlalu memperhatikan design pattern dalam pembuatan sistem kita.

Design pattern adalah solusi arsitektur yang dapat digunakan kembali untuk menyelesaikan masalah umum pada software design. Design pattern pada pemrograman digunakan sebagai pola untuk menyelesaikan masalah yang dapat digunakan di beberapa situasi yang berbeda.
Ada banyak jenis design pattern yang bisa diterapkan untuk mengembangkan aplikasi iOS beberapa diantaranya yang paling sering adalah sebagai berikut:

  • MVC (Model View Controller)
  • MVVM (Model View ViewModel)
  • VIPER (View, Interactor, Presenter, Entity, Routing)

Pada dasarnya design pattern di atas bertujuan untuk membagi sistem menjadi beberapa modul Architecture yaitu data formating, layout, navigation, object model, model manipulation, state, persistence, networking. Untuk lebih jelasnya saya coba bikin bagan dibawah ini.

Pembagian modul pada MVC Design Pattern

 

Pembagian modul pada MVVM Design Pattern

 

Pembagian modul pada VIPER Design Pattern

 

Kenapa Design Pattern begitu penting?

Tanpa design pattern, sistem kita bagaikan anak ayam yang kehilangan induknya, saat debuging kita kesusahan seperti contohnya untuk mendapatkan data a di taruh di class apa, data b di class apa, kadang juga ada beberapa method yang harus diimplementasikan di sebuah modul tapi malah dibuat di class lain dan lain sebagainya. Dengan design pattern semua lebih jelas karna setiap pekerjaan utama sebuah sistem sudah di bagi tiap tugasnya masing-masing seperti yang sudah saya jelaskan di atas dalam bagan. Akhirnya kita akan menghasilkan sebuah sistem dengan pembagian kerja yang jelas, mudah dibaca dan dipahami dan tentunya akan lebih stabil dalam bekerja.

 


http://amin.id