Layer responsible for persistant data storage of the application
Just call for example UserDefaults.favouriteRecipes. All user defaults keys are described in UserDefaults.swift.
UserDefaults.favouriteRecipes
In this case, we have CoreDataManagerProtocol - typealias of another two protocols for working with Step and Recipe managed object models.
CoreDataManagerProtocol
Step
Recipe
public typealias CoreDataManagerProtocol = CDRecipeProtocol & CDStepProtocol
For working with User Defaults, we have implemented 2 property wrappers:
Codable
For working with Core Data we have implemented Core Data manager - the only place where import CoreData is placed.
import CoreData
It has 2 initializers:
NSInMemoryStoreType
NSPersistentContainer