Layers: Domain, Data and Presentation
Separating business logic from data access and UI in a Swift app.
Clean Architecture in Swift
Clean Architecture separates code into layers: Domain (business logic), Data (persistence/network), and Presentation (UI).
// Domain: pure Swift, no framework imports
// Data: Core Data / URLSession / JSON
// Presentation: SwiftUI / UIKitThe Domain Layer
The Domain layer contains business entities, use cases, and repository protocols. It has no dependencies on UIKit, SwiftUI, or databases.
// Domain/Entities/User.swift
struct User {
let id: Int
var name: String
var email: String
}
// No import UIKit, no import SwiftDataAll lessons in this course
- Layers: Domain, Data and Presentation
- Use Case and Repository Patterns
- Dependency Inversion with Protocol Abstractions
- Wiring Layers Together without a DI Framework