# Struktur Direktori

Struktur direktori harus mengikuti aturan seperti dibawah ini:

├── assets
│   ├── icons
│   ├── images
│   └── colors
├── lib
│   ├── application
│   ├── common
│   │   ├── urls
│   │   ├── exceptions
│   │   ├── enums
│   │   ├── functions
│   │   └── keys
│   │   └── api
│   │   ├── di
│   │   └── network
│   ├── domain
│   │   ├── core
│   ├── infrastructure
│   ├── presentation
│   │   ├── components
│   │   │   ├── alerts
│   │   │   ├── dialogs
│   │   │   ├── styles
│   │   ├── pages
│   │   ├── routes
│   ├── analysis_options.yaml
│   ├── env.dart
│   ├── injection.config.dart (generated file)
│   ├── injection.dart
│   └── main.dart

# assets

folder yang menampung asset folder lainnya. Seperti icons, image, colors dsb.

# icons

berisi file icons.

# images

berisi image atau gambar.

# colors

berisi file code warna.

# lib

merupakan folder utama yang diperlukan untuk membuat flutter app.

# application

berisi logic. Tempat untuk menyimpan bloc disini

# common

berisi kumpulan constants variable (biasanya).

# urls

berisi constants variable untuk path url.

# exceptions

berisi constants exceptions.

# enum

berisi enum.

# functions

berisi functions.

# keys

berisi constants shared preferences

# api

berisi api client.

# errors

berisi api error.

# interceptors

berisi api interceptors.

# api_client.dart

file ini merupakan client sebagai akses api.

# di

berisi kumpulan dependencies injection.

# network

berisi logic connection.

# domain

berisi domains.

# core

berisi inti boundary-logic domain.

# errors.dart

file ini berisi logic error domain.

# exceptions.dart

file ini berisi exceptions error app.

# failures.dart

file ini berisi failures domain.

# value_objects.dart

file ini merupakan inti dari domain.

# value_validators.dart

file ini merupakan validators untuk value object domain.

# infrastructure

berisi repository dan dto.

# presentation

berisi UI app.

# components

berisi components UI

# alerts

berisi UI alerts

# dialogs

berisi UI dialogs

# styles

berisi konfigurasi style app.

# pages

berisi kumpulan pages

# app_widget.dart

file ini merupakan widget UI utama.

# routes

berisi route pages.

# app_route.dart

file ini merupakan inisialisasi route pages.

# analysis_options.yaml

file ini merupakan lint konfigurasi supaya kode lebih rapi.

# env.dart

file ini merupakan inisialisasi variable environment app.

# injection.dart

file ini merupakan inisialisasi konfigurasi injection.

# main.dart

file ini merupakan file utama.