0Pricing
Swift Academy · Lesson

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 / UIKit

The 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 SwiftData

All lessons in this course

  1. Layers: Domain, Data and Presentation
  2. Use Case and Repository Patterns
  3. Dependency Inversion with Protocol Abstractions
  4. Wiring Layers Together without a DI Framework
← Back to Swift Academy