โครงการ Clean Architecture Flutter
ภาพรวมโครงการ
โครงการ Flutter นี้เป็นไปตามรูปแบบสถาปัตยกรรมที่สะอาดซึ่งส่งเสริมการแยกข้อกังวลและการบำรุงรักษา โครงการมีโครงสร้างเป็นหลายชั้น:
เลเยอร์การนำเสนอ : มีวิดเจ็ตหน้าและตรรกะการนำเสนอ (Bloc) จัดการส่วนต่อประสานผู้ใช้และการโต้ตอบของผู้ใช้
เลเยอร์โดเมน : มีกรณีการใช้งานและเอนทิตีโดเมนและที่เก็บนามธรรม
Data Layer : จัดการแหล่งข้อมูลที่เก็บและแบบจำลองข้อมูล รับผิดชอบในการดึงข้อมูลและการจัดเก็บข้อมูล แบ่งออกเป็น repositories model local_data_sources และ remote_data_sources
คุณสมบัติที่สำคัญ
คุณสมบัติเข้าสู่ระบบ
แอปพลิเคชันของเรามีระบบเข้าสู่ระบบที่แข็งแกร่ง นี่คือประเด็นสำคัญของคุณสมบัตินี้:
การตรวจสอบความถูกต้องของอินพุต : เรามั่นใจได้ว่าอินพุตของผู้ใช้เช่นอีเมลและรหัสผ่านได้รับการตรวจสอบความถูกต้องเพื่อรักษาความสมบูรณ์ของข้อมูล
การรับรองความถูกต้อง : เมื่อป้อนข้อมูลรับรองที่ถูกต้องผู้ใช้จะได้รับการรับรองความถูกต้องและได้รับอนุญาตให้เข้าถึงบัญชีของพวกเขา
คุณสมบัติการลงทะเบียน
การสร้างบัญชีนั้นตรงไปตรงมากับคุณสมบัติการลงทะเบียนของเรา องค์ประกอบสำคัญ ได้แก่ :
การตรวจสอบความถูกต้องของอินพุต : คล้ายกับคุณสมบัติการเข้าสู่ระบบเราตรวจสอบอินพุตของผู้ใช้เพื่อให้แน่ใจว่ามีความแม่นยำของข้อมูลด้วยการตรวจสอบความถูกต้องของไฟล์ภาพ
สร้าง ACCOUT : เมื่อป้อนข้อมูลรับรองที่ถูกต้องผู้ใช้จะถูกต้องในการสร้าง ACCOUT
โครงสร้างโฟลเดอร์
- lib/คุณสมบัติ/คุณสมบัติ/
- การนำเสนอ/ : มีวิดเจ็ตและตรรกะการนำเสนอ
- โดเมน/ : มีกรณีการใช้งานและเอนทิตีโดเมน
- ข้อมูล/
- ที่เก็บ/ : ใช้ที่เก็บข้อมูล
- โมเดล/ : กำหนดรูปแบบข้อมูล
- local_data_sources/ : จัดการแหล่งข้อมูลท้องถิ่น
- Remote_Data_Sources/ : จัดการแหล่งข้อมูลระยะไกล
แพ็คเกจ
- Flutter : The Flutter SDK
- Cupertino_icons : จัดเตรียมไอคอน Cupertino ที่ใช้ในโครงการ
- Shared_preferences : ปลั๊กอินสำหรับการเข้าถึงและจัดเก็บคู่คีย์-ค่าบนอุปกรณ์
- get_it : ตัวระบุตำแหน่งบริการสำหรับการฉีดพึ่งพา
- Dartz : แพ็คเกจการเขียนโปรแกรมที่ใช้งานได้ซึ่งให้ข้อมูลและฟังก์ชั่นข้อมูลพีชคณิตทั่วไป
- Flutter_bloc : ไลบรารีการจัดการสถานะตามรูปแบบ Bloc (Business Logic Component)
- Equatable : แพ็คเกจยูทิลิตี้สำหรับการเปรียบเทียบวัตถุเพื่อความเท่าเทียมกัน
- DIO : ไคลเอนต์ HTTP ที่ทรงพลังสำหรับการร้องขอ API
- Formz : แพ็คเกจสำหรับการตรวจสอบแบบฟอร์มการจัดการและการจัดการสถานะ
- go_router : เราเตอร์ที่ประกาศสำหรับแอปพลิเคชันกระพือ
- MIME : แพ็คเกจสำหรับการทำงานกับประเภท MIME
- file_picker : ปลั๊กอินสำหรับการเลือกไฟล์จากอุปกรณ์
- Mocktail : ห้องสมุดเยาะเย้ยสำหรับการทดสอบ Dart และ Flutter
- internet_connection_checker : แพ็คเกจสำหรับการตรวจสอบการเชื่อมต่ออินเทอร์เน็ต
นอกเหนือจากการพึ่งพายังมีการพึ่งพา dev บางส่วนที่ใช้สำหรับการทดสอบและการสร้างรหัส:
- Flutter_test : กรอบทดสอบ Flutter
- Mockito : ห้องสมุดเยาะเย้ยสำหรับการทดสอบ Dart และ Flutter
- build_runner : เครื่องมือสำหรับการสร้างรหัสในระหว่างกระบวนการสร้าง
- bloc_test : ยูทิลิตี้การทดสอบสำหรับการทดสอบ blocs
- Network_Image_mock : แพ็คเกจสำหรับการเยาะเย้ยภาพเครือข่ายระหว่างการทดสอบ