Intro
Изначально я был большим поклонником ObjectMapper
и использовал его в каждом проекте.Но в последнее время я попал в команду, которая пытается использовать сторонние зависимости как минимум, и знаете что?Я не вижу никакой разницы.(даже до выхода Codable)
Работа с JSON разделяется на 2 задачи: Кодирование и декодирование:
Кодирование
Кодирование легко и просто.Вам просто нужно написать метод, который преобразует ваш объект в словарь.Готово.Вам нужна третья сторона здесь?Я так не думаю.
Декодирование
Декодирование в основном инициирует ваш объект из словаря.И здесь могут помочь третьи стороны, сделав работу с JSON меньше и выразительнее.
Или вы можете обмануть здесь и сделать ярлык:
extension Dictionary {
func get<T>(_ key: Key) -> T? {
return self[key] as? T
}
}
Person(
name: dict.get("name")
)
Заключение
Похоже, выигрывают третьи лица?Я не уверен.В большинстве проектов время, которое вы тратите на работу с JSON, так мало по сравнению с работой над бизнес-логикой, пользовательским интерфейсом, анимацией, тестированием, проверкой кода и т. Д.
Теперь вам нужно спросить себя, экономит ли полчаса и сто строккода стоит ввести новую зависимость?Вы уверены, что следующий человек, который будет работать над этим проектом, будет знать этот инструмент (он определенно будет знать основы Swift)?Как долго вы будете ждать обновления фреймворка с новой версией swift (уже не так)?
Для себя я решаю, что оно того не стоит.Ваш звонок.