Persistable
Simple type safe persistable values to use as settings within your app.
Supports the type Any, which you should read as, "anything which is okay with being sent to UserDefaults.standard.set(forKey:)".
// Configuration
struct Settings {
static var darkMode = Persistent(value: false, key: "darkMode")
static var openCount = Persistent(value: 0, key: "openCount")
static var volume = Persistent(value: 1.0, key: "volume") {
didSet {
print("Volume changed to \(volume.value)")
}
}
}
// Setting
Settings.darkMode.value = true
Settings.openCount.value = Settings.openCount.value + 1
Settings.volume.resetValue()
// Getting
print(Settings.darkMode.value) // true
print(Settings.openCount.value) // 1