# Arsitektur

Penerapan arsitektur dapat memudahkan developer dalam mengembangkan aplikasi supaya lebih mudah di maintenance. Dalam panduan ini arsitektur yang digunakan terinpirasi oleh Domain Drivern Design (DDD).

# DDD (Domain Drivern Design)

ddd_image

DDD digunakan untuk memisahkan layer yang diperlukan dalam pembuatan aplikasi. Pemisahan ini digunakan untuk membuat tiap-tiap layer menjadi lebih independen (unbound). Sehinggga proses maintenance menjadi lebih mudah.

ddd_layers

Terdapat beberapa layer umum yang digunakan pada arsitektur ini. Diantaranya

  • Presentation
  • Application
  • Infrastructure
  • Domain

# Presentation

Merupakan layer yang berhubungan dengan view atau UI aplikasi.

# Application

Merupakan layer yang berhubungan dengan logic dari aplikasi. layer ini hanya sebagai penghubung ke layer yang lebih dalam

# Infrastructure

Merupakan layer yang berhubungan dengan proses pengambilan data.

# Domain

Merupakan layer model (Entity) logika model, dan aturan.

Penggunaan DDD pada flutter bisa dilihat disini (opens new window).