> Как устроены слои в чистой архитектуре? (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Travelata

Стек: iOS, Swift

> Пример ответа

В чистой архитектуре (Clean Architecture) для iOS на Swift слои организованы по принципу разделения ответственности и направлены от внешних зависимостей к внутренним. Основные слои:

  1. Domain (Бизнес-логика) - самый внутренний слой. Содержит сущности (Entities), Use Cases (Interactors) и репозитории (protocols). Не имеет зависимостей от UIKit, SwiftUI или внешних библиотек. Пример: protocol UserRepository { func fetchUser() -> User }.

  2. Data (Данные) - реализует протоколы репозиториев из Domain. Включает модели данных (DTO), сетевые сервисы (Alamofire/URLSession) и локальное хранилище (CoreData/Realm). Зависит от Domain, но не от Presentation.

  3. Presentation (UI) - отвечает за отображение. Использует MVVM или VIPER. ViewModel/Presenter взаимодействуют с Use Cases через протоколы. Зависит от Domain, но не от Data.

  4. Framework (Инфраструктура) - внешний слой, содержащий UIKit/SwiftUI, Alamofire, CoreData и т.д. Реализует абстракции из Data и Presentation.

Ключевое правило: зависимости направлены внутрь - внешние слои могут зависеть от внутренних, но не наоборот. Данные передаются через модели (DTO) и мапперы. Это обеспечивает тестируемость и гибкость замены компонентов (например, смена сетевой библиотеки не затрагивает бизнес-логику).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью