Swifaults
About Swifaults
UserDefaults, the generic way.
Swifaults
is a wrapper around UserDefaults
, leveraging generics to provide a type safe, simple and clear interface.
Example
Usually, when you want to save a value to UserDefaults
you'd do something like this:
let defaults = UserDefaults.standard
defaults.set("My value", for: "My key")
defaults.synchronize()
and for loading:
let defaults = UserDefaults.standard
let value = defaults.string(forKey: "My key")
Swifaults
allows a clearer usage.
For saving:
let defaults = Defaults<String>(key: "My key")
defaults.save("My value")
and for loading:
let defaults = Defaults<String>(key: "My key")
let value = defaults.value() // value is a `String?`
It's also possible to provide a fallback to a default value in case that the value doesn't exist:
enum UserState: Int {
case anonymous
case loggedIn
case premium
}
let defaults = Defaults<UserState>(key: "user.state")
let value = defaults.value(defaultValue: .anonymous)
and even inline conversion:
let defaults = Defaults<Int>(key: "user.state.raw")
let value = def.value(defaultValue: .anonymous, { UserState(rawValue: $0) })
Default also support saving Encodable
and loading Decodable
by using:
try? defaults.saveEncodableValue(myEncodable)
let myDecodableObject = defaults.decodableValue()
Simple. Give it a go.
Installation
Swifaults is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Swifaults'
Author
Oren Farhan
License
Swifaults is available under the MIT license. See the LICENSE file for more info.