If you are the proud owner of an Infiniti car in Dubai, it’s essential to keep it well-maintained and serviced regularly. One of the best places to take your Infiniti for repairs and maintenance is…
Arsitektur Aplikasi dari setiap perusahaan atau setiap developers team pasti berbeda-beda, tapi dari setiap arsitektur memiliki tujuan yang sama, yaitu:
Arsitektur yang disepakati bersama ini memudahkan tim maupun developers lain (terutama yang baru masuk sebagai team member) bisa membaca codingan maupun structure project atau class yang telah dibuat sebelumnya. Karena telah dibuat kesepakatan tentang arsitektur apa yang dipakai, biasanya memudahkan Technical Writer untuk membuat documentation setiap project atau aplikasi yang dibuat.
Pertanyaan yang paling common dikalangan para developers, tapi masing-masing dari mereka memiliki pendapatnya sendiri-sendiri. Setiap developers memiliki arsitekturnya sendiri, bahkan mungkin ada yang agak selfish terhadap arsitekturnya, dan tidak mau menerima arsitektur lain.
Berdasarkan pertanyaan diatas, munculah arsitektur-arsitektur diluar sana yang (harapannya) bisa membantu para developers dalam membuat aplikasi lebih rapih strukturnya, lebih mudah untuk ditest, dan mudah dimengerti oleh developers lain (terutama untuk new team member).
Dalam penerapannya, mungkin bisa berbeda-beda setiap orang, Tapi untuk starting point, kita akan menggunakan 5 Layers seperti dibawah ini:
Disini berkaitan dengan model bisnis yang dimiliki oleh aplikasi kita. Dalam penerapannya, saya ambil contoh seperti Use Cases, Navigation Router. Sebagian besar aplikasi android yang dibuat adalah menggunakan API, sehingga kemungkinan aplikasi akan lebih banyak berinteraksi dengan cara Requesting dan Persisting. Maka dari itu Layers ini akan sangat berguna untuk mengelompokkan Use Cases yang telah dibuat.
Layer ini berfungsi sebagai tempat dimana kalian bisa mendefinisikan tentang variasi Data Model yang akan digunakan dalam aplikasi. Dalam pembuatan aplikasi, sebaiknya kalian menyimpan data secara local.
Maksudnya adalah agar aplikasi tidak selalu mengambil data dari API maupun dari resources lain setiap aplikasi dijalankan. Jadi, Layer ini bisa difungsikan untuk menyimpan Attribute Data untuk Local Database maupun Response Data dari API.
Presentation Layer gunanya untuk mengelompokkan class yang berfungsi sebagai / berinteraksi dengan UI. Mungkin dalam penerapannya, kalian memiliki cara pandang masing-masing.
Layer ini biasanya berisi Android UI (Activity, Fragment, Views), Presenter atau ViewModels tergantung Pattern apa yang kalian pakai.
Kita biasa membuat Function-function atau Object yang konteksnya bisa jadi Reusable function atau Class. Contohnya seperti Helper Class, Util Class, Scheduler Class, Constant Object, dll. Fungsi-fungsi atau variable yang ada di Layer ini harus as simple as possible karena sifatnya harus se-reusable mungkin.
Well, semoga kalian mudah dalam memahami tulisan saya tentang penerapan Clean Architecture ini. Karena yang paling penting dalam arsitektur ini adalah bagaimana penerapannya dalam aplikasi kita dan memahaminya.
Sebagai latihan, kalian bisa melihat Sample Project dari github saya, Project dibuat menggunakan Kotlin:
Saya tidak akan menjelaskan terlalu detail tentang aplikasi tersebut, kalian bisa Clone atau Fork proyek tersebut dan bisa kalian pelajari sendiri. Berikut sekilas tampilannya:
Clean Architecture ini bisa dipakai di Pattern apapun yang kalian ingin gunakan (MVP, MVVM, MV*), karena arsitektur ini bertujuan supaya memudahkan kalian dalam pembuatan aplikasi supaya lebih Testable, more readability, and as clean as possible.
Usahakan setiap kalian ingin membuat Class baru, pikirkan terlebih dahulu Class yang ingin dibuat termasuk di Layer apa. Sehingga meminimalisir House Keeping atau Refactoring code yang bisa menguras waktu dan tenaga kalian dikemudian hari.
Happy Coding :)
Have you heard? Fintechs and traditional financial institutions don’t have to be enemies anymore. In fact, we’re seeing time and again that these businesses are often stronger when they partner…
In the process of marketing their newest products, manufacturers frequently make use of phrases and statistics such as “80% in 30 minutes” or alternatively “100% in just an hour.” The rapid adoption…
When it comes to creating content online for our audiences to consume, we must understand that context is king. The device we choose to use at a particular time is often driven by our context. Our…