Domain layer: models, contracts, use cases
The app's own vocabulary: domain models, their immutability, repository contracts, and when a use case is actually needed. This layer is pure Dart — it knows nothing about Flutter, HTTP or databases.
⬜⬜⬜⬜⬜
1. Domain models and immutability (freezed)
domainfreezedimmutabilitydart
2. DTO vs domain model, and mappers
domaindatajsonmapping
3. The repository contract: abstract classes and dependency inversion
domainrepositorydartdependency-inversion
4. Use cases: when you need one and when it hurts
domainuse-casetrade-offs
5. Keeping the domain pure: no flutter/material imports
domaindarttestingci