WrappedUserDefaults – это созданный MobileUp инструмент для использования при создании мобильных приложений на платформе iOS. Эта библиотека ускоряет процесс разработки, позволяя автоматически сохранять необходимые данные в UserDefaults без дополнительного кода, и не требует повторения рутинных методов в каждом новом проекте.
Библиотека состоит из двух компонентов: JSONConverter для кодирования/декодирования данных различных типов, и UserDefaultsBackedWrapper для записи/получения данных из локального хранилища.
JSONConverter поддерживает следующие типы конвертации:
- Энкодинг
- Encodable → Data
- JSON → Data
- [String: Any] → Data
- JsonString(строка с валидными json) → Data
- Декодинг
- Data → Decodable
- JSON → Decodable
- [String: Any] → Decodable
- Data → [String: Any]
- Data → JsonString
В первой версии property wrapper'а поддерживаются примитивы, совместимые с UserDefaults.
let encodedData = try JSONConverter.encode(object: testObject)
let decodedData = try JSONConverter.decode(Double.self, data: encodedData)
@UserDefaultsBacked<Int>(key: "keyForInteger", defaultValue: 13)
var backedInteger
UserDefaults.standard.clearAll()