2.Clean_Architecture_Flutter_Dev_Subedi.pptx

kumarshrestha1800 0 views 8 slides Oct 05, 2025
Slide 1
Slide 1 of 8
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8

About This Presentation

Just a presentation


Slide Content

Clean Architecture in Flutter Prepared by Dev Subedi

Clean Architecture भन्नाले के हो? 👉 यो एउटा कोड संरचना हो जुन हाम्रो एप्लिकेशनलाई धेरै स्पष्ट र Maintainable बनाउँछ। 👉 यसले कोडलाई अलग-अलग तहमा बाँड्छ जसले जिम्मेवारी छुट्याउँछ। 👉 मुख्यत: ४ तह हुन्छन्: Domain, Application, Data, Presentation।

1. Domain Layer ✅ Project को मुटु — कुनै Flutter, API, DB प्रयोग हुँदैन। 📁 entities: वास्तविक वस्तु जस्तै Task (title, description, isDone) 📁 repository: के-के काम गर्नु छ भनेर method को declaration मात्र। 📁 services (optional): fixed logic (e.g., calculate priority) उदाहरण (entity): class TaskEntity { final String title; final String description; final bool isDone; } उदाहरण (abstract repo): abstract class TaskRepository { Future<List<TaskEntity>> getAllTasks(); }

2. Application Layer (Use Case) ✅ यो तहमा domain repo मा बनेका methods लाई अलग-अलग class मा राखिन्छ । 🧠 एक method = एक class 👉 Separation of Concerns: UI, logic, data अलग गर्नु । उदाहरण : class GetAllTasks { final TaskRepository repo; GetAllTasks ( this.repo ); Future<List< TaskEntity >> call() => repo.getAllTasks (); }

3. Data Layer ✅ वास्तविक काम यहीँ हुन्छ (API call, JSON read/write आदि) 📁 models/: DTO - data transfer objects 📁 repositories/: domain मा declare गरेको method यहाँ implement 📁 datasources/: Remote or Local बाट data लिने उदाहरण: TaskModel implements TaskEntity TaskModel { fromJson, toJson, toEntity, fromEntity methods }

4. Presentation Layer ✅ UI तथा state management यहीँ हुन्छ। 📁 screens/: Flutter widgets (screens) 📁 cubits/blocs/: Logic, inputs/outputs Cubit बाट UI मा dynamic change हुन्छ। उदाहरण: BlocConsumer → shows task list from getAllTask

🗂 Folder Structure Overview 📦 lib/ ┣ 📁 features/ ┃ ┗ 📁 task/ ┃ ┣ 📁 domain/ ┃ ┃ ┣ 📁 entities/ ┃ ┃ ┗ 📁 repositories/ ┃ ┣ 📁 application/ ┃ ┃ ┗ 📁 usecases / ┃ ┣ 📁 data/ ┃ ┃ ┣ 📁 models/ ┃ ┃ ┣ 📁 repositories/ ┃ ┃ ┗ 📁 datasources / ┃ ┗ 📁 presentation/ ┃ ┣ 📁 screens/ ┃ ┗ 📁 cubits/

🎯 Summary ✅ Domain Layer – शुद्ध Dart को class र interfaces ✅ Application Layer – Logic separation (usecases) ✅ Data Layer – वास्तविक काम, model, API, DB ✅ Presentation Layer – UI, State Management 🎓 Example Features: get_all_task.dart, add_task.dart, delete_task.dart 🙏 Thank You – Dev Subedi
Tags