Proyek Flutter Arsitektur Bersih
Tinjauan Proyek
Proyek Flutter ini mengikuti pola arsitektur yang bersih, yang mempromosikan pemisahan kekhawatiran dan pemeliharaan. Proyek ini disusun menjadi beberapa lapisan:
Lapisan Presentasi : Berisi widget, halaman, dan logika presentasi (BLOC). Menangani antarmuka pengguna dan interaksi pengguna.
Lapisan domain : Berisi kasus penggunaan dan entitas domain dan repositori abstrak.
Lapisan data : Mengelola sumber data, repositori, dan model data. Bertanggung jawab untuk pengambilan dan penyimpanan data. Dibagi menjadi repositories , model , local_data_sources , dan remote_data_sources .
Fitur utama
Fitur login
Aplikasi kami mencakup sistem login yang kuat. Berikut adalah aspek utama dari fitur ini:
Validasi Input : Kami memastikan bahwa input pengguna, seperti email dan kata sandi, divalidasi untuk mempertahankan integritas data.
Otentikasi : Setelah memasukkan kredensial yang valid, pengguna diautentikasi dan diberikan akses ke akun mereka.
Fitur pendaftaran
Membuat akun langsung dengan fitur pendaftaran kami. Elemen kunci meliputi:
Validasi Input : Mirip dengan fitur login, kami memvalidasi input pengguna untuk memastikan akurasi data dengan validasi file gambar.
Buat Accout : Setelah memasukkan kredensial yang valid, pengguna valid untuk membuat Accout.
Struktur folder
- lib/fitur/fitur/
- Presentasi/ : Berisi widget dan logika presentasi.
- Domain/ : Berisi kasus penggunaan dan entitas domain.
- data/
- Repositori/ : Menerapkan repositori data.
- Model/ : Menentukan model data.
- local_data_sources/ : mengelola sumber data lokal.
- Remote_data_sources/ : Menangani sumber data jarak jauh.
Paket
- Flutter : SDK Flutter.
- Cupertino_icons : Menyediakan ikon Cupertino yang digunakan dalam proyek.
- Shared_preferences : Plugin untuk mengakses dan menyimpan pasangan nilai kunci pada perangkat.
- get_it : Locator layanan untuk injeksi ketergantungan.
- Dartz : Paket pemrograman fungsional yang menyediakan tipe dan fungsi data aljabar umum.
- Flutter_bloc : Perpustakaan manajemen negara berdasarkan pola blok (komponen logika bisnis).
- Equatable : Paket utilitas untuk membandingkan objek untuk kesetaraan.
- DIO : Klien HTTP yang kuat untuk membuat permintaan API.
- Formz : Paket untuk menangani validasi formulir dan manajemen negara.
- Go_Router : Router deklaratif untuk aplikasi flutter.
- Mime : Paket untuk bekerja dengan tipe MIME.
- File_Picker : Plugin untuk memilih file dari perangkat.
- Mocktail : Perpustakaan mengejek untuk tes panah dan flutter.
- internet_connection_checker : Paket untuk memeriksa konektivitas internet.
Selain dependensi, ada juga beberapa dependensi DEV yang digunakan untuk pengujian dan pembuatan kode:
- Flutter_test : Kerangka kerja uji flutter.
- Mockito : Perpustakaan mengejek untuk tes panah dan flutter.
- Build_runner : Alat untuk menghasilkan kode selama proses pembuatan.
- Bloc_test : Utilitas pengujian untuk pengujian blok.
- Network_image_mock : Paket untuk mengejek gambar jaringan selama pengujian.