Domain Layer Flutter – membangun struktur kode program yang bagus adalah salah satu tantangan yang besar bagi seorang developer.
Saat aplikasi kamu berkembang hingga berskala besar, penting untuk memperhatikan arsitektur yang digunakan, karena mempengaruhi kecepatan dan keandalan aplikasi dalam mempertahankan fungsionalitas fitur-fiturnya.
Flutter adalah framework lintas platform yang dapat kamu gunakan untuk membangun aplikasi hanya dari satu basis kode saja. Flutter dibangun dan dikembangkan langsung oleh Google.
Nah, pada artikel kali ini, kita akan membahas tentang salah satu bagian clean architecture pada Flutter yaitu Domain Layer.
Apa itu Clean Architecture?
Sebelum membahas tentang Domain Layer, apakah kamu sudah tahu apa itu Clean Architecture? Clean Architecture adalah konsep yang dikenalkan oleh Robert Martin dalam bukunya yang berjudul “Clean Code”.
Ide utama dalam buku tersebut adalah arsitektur yang memisahkan kode program menjadi bagian-bagian (layer) secara terpisah sehingga lebih mudah kelola.
Secara umum, Clean Architecture didalam Flutter adalah arsitektur yang memisahkan kode program antara business logic, presenter/UI, state management, eksternal datasources, dan repository. Tujuan dari clean architecture adalah membuat kode kamu jadi lebih testable, maintainable, dan scalable.
Layer
Setelah kamu tahu apa itu arsitektur, sekarang mari kita satukan persepsi tentang definisi dari layer.
Layer adalah komponen yang menyusun arsitektur kamu yang berfungsi untuk menjalankan tugas spesifik sesuai kebutuhan logika bisnis kode program. Layer harus dibuat dalam bentuk sesederhana mungkin. Namun, tetap terisolasi untuk mencapai basis kode yang dapat dipelihara (maintainable).
Di Flutter sendiri, layer terbagi menjadi 3 jenis, yaitu:
- Data Layer, termasuk logika yang berhubungan dengan database, API, dan lain-lain.
- Domain Layer, komponen yang mengelola logika bisnis.
- Presentation Layer, mengelola desain UI/UX aplikasi kamu.
Kali ini kita hanya akan membahas tentang domain layer saja, untuk layer yang lain Caraguna akan membahas secara terpisah.
Domain Layer
Domain Layer adalah komponen dalam clean architecture pada flutter yang berisi usecase, entity, dan repository. Domain layer bersifat independece yang tidak terpengaruh oleh layer lainnya.
Layer ini berfungsi sebagai contract untuk class pada layer lain untuk menjalankan logika bisnis aplikasi. Domain layer dapat disebut sebagai core untuk logika bisnis.
Berikut ini adalah penjelasan beberapa bagian dari domain layer, antara lain:
- Usecase, mendeskripsikan pemrosesan logika bisnis yang dilakukan dalam aplikasi. Berisi enkapsulasi dari semua logika bisnis di setiap bagian use case pada aplikasi.
- Entity, merupakan class data model yang akan digunakan untuk mengolah data dari repository. Berbeda dengan komponen model pada data layer, Entity merupakan core dari model itu sendiri yang nantinya akan di-extends oleh model pada data layer.
- Repository, sebuah abstract class yang berfungsi untuk melakukan contract class repository, yang nantinya akan di-implement oleh komponen repository pada data layer.
Source:
– https://dev.to/george_andronchik/clean-architecture-of-flutter-application-part-1-theory-3b6p
– https://verygood.ventures/blog/very-good-flutter-architecture
– https://codewithandrea.com/articles/flutter-app-architecture-domain-model/
– https://resocoder.com/2019/08/27/flutter-tdd-clean-architecture-course-1-explanation-project-structure/