Clean Architecture w praktyce

📚Moduł 1: Architektura MVP
⏱️~40 minut

Clean Architecture (Robert C. Martin) to wzorzec architektoniczny który separuje business logic od frameworków, UI i external dependencies. Dla MVP: nie implementuj wszystkiego, ale rozumiej zasady.

Główna idea Clean Architecture

Dependency Rule: Dependencies wskazują do środka, nigdy na zewnątrz.

Efekt: Business logic nie zależy od Flutter, Firebase czy żadnego frameworka. Można je testować bez UI.

💡 Dla MVP: Pragmatic Clean Architecture

Pełna Clean Architecture to overkill dla MVP. Ale zasady są uniwersalne: separuj business logic od UI i data sources. To wystarczy.

Praktyczna implementacja (Flutter)

Folder structure:

Przykład: Login Feature

1. Entity (domain/entities/user.dart):

2. Repository Interface (domain/repositories/user_repository.dart):

3. Use Case (domain/usecases/login_usecase.dart):

4. Repository Implementation (data/repositories/user_repository_impl.dart):

5. UI (presentation/screens/login_screen.dart):

Dependency Injection

Jak połączyć warstwy? Dependency Injection.

Riverpod providers:

Łatwo zmienić implementację (Firebase → REST API) bez zmiany business logic.

Kiedy NIE używać Clean Architecture

Dla MVP produkcyjnego: użyj uproszczonej wersji (3 warstwy: domain, data, presentation).

📝 Zadanie

Zaimplementuj jedną feature (np. login) używając Clean Architecture. Stwórz: Entity, Repository interface, Use Case, Repository impl, UI. Przetestuj use case bez UI.

← Poprzednia lekcja Następna lekcja →