Вопрос проверяет знание стандартных инструментов Swift для работы с сериализацией данных.
Codable используется для преобразования моделей Swift в данные и обратно. Чаще всего он применяется для работы с JSON. Протокол объединяет кодирование и декодирование в одном интерфейсе. Он уменьшает количество шаблонного кода и делает модели чище. Codable широко используется в сетевом слое.
Codable — это стандартный и рекомендуемый способ преобразования данных в Swift.
Codable — это протокол, который позволяет автоматически кодировать и декодировать модели Swift в форматы данных, такие как JSON или plist.
Перед перечислением важно понять ключевую задачу: связать модель приложения с внешним представлением данных.
Codable используется для:
Парсинга ответов сервера.
Отправки данных на сервер.
Сохранения моделей в файл или базу.
struct User: Codable {
let id: Int
let name: String
}
Такую модель можно:
декодировать из JSON;
закодировать обратно без дополнительного кода.
Swift компилятор:
Анализирует свойства структуры.
Генерирует код для init(from:) и encode(to:).
Использует JSONDecoder и JSONEncoder.
Пример декодирования:
let user = try JSONDecoder().decode(User.self, from: data)
Большое количество моделей.
Частые изменения API.
Необходимость минимизировать ручной парсинг.
Codable:
не всегда удобен для нестандартных JSON;
требует явного описания, если структура данных сложная.
Codable стоит использовать по умолчанию для работы с JSON и сериализацией. Ручную реализацию имеет смысл писать только для нестандартных или сильно вложенных форматов.