Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork156
💾 Swifty and modern UserDefaults
License
NotificationsYou must be signed in to change notification settings
sindresorhus/Defaults
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Swifty and modernUserDefaults
Store key-value pairs persistently across launches of your app.
It usesUserDefaults underneath but exposes a type-safe facade with lots of nice conveniences.
It's used in production byall my apps (4 million+ users).
- Strongly typed: You declare the type and default value upfront.
- SwiftUI: Property wrapper that updates the view when the
UserDefaultsvalue changes. - Codable support: You can store anyCodable value, like an enum.
- NSSecureCoding support: You can store anyNSSecureCoding value.
- Observation: Observe changes to keys.
- Debuggable: The data is stored as JSON-serialized values.
- Customizable: You can serialize and deserialize your own type in your own way.
- iCloud support: Automatically synchronize data between devices.
- You define strongly-typed identifiers in a single place and can use them everywhere.
- You also define the default values in a single place instead of having to remember what default value you used in other places.
- You can use it outside of SwiftUI.
- You can observe value updates.
- Supports many more types, even
Codable. - Easy to add support for your own custom types.
- Comes with a convenience SwiftUI
Togglecomponent.
- macOS 11+
- iOS 14+
- tvOS 14+
- watchOS 9+
- visionOS 1+
Addhttps://github.com/sindresorhus/Defaults in the“Swift Package Manager” tab in Xcode.
import DefaultsextensionDefaults.Keys{staticletquality=Key<Double>("quality", default:0.8)}Defaults[.quality]//=> 0.8Defaults[.quality]=0.5//=> 0.5
You can also use it in SwiftUI:
structContentView:View{@Default(.quality)varqualityvarbody:someView{Slider(value: $quality, in:0...1)}}
- KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app
- LaunchAtLogin - Add "Launch at Login" functionality to your macOS app
- DockProgress - Show progress in your app's Dock icon
- Gifski - Convert videos to high-quality GIFs on your Mac
- More…
About
💾 Swifty and modern UserDefaults
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.