Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mezhevikin/persistent
⚙️ A tiny property wrapper for UserDefaults. Only 60 lines of code.
https://github.com/mezhevikin/persistent
appstorage combine extension ios lightweight property-wrapper reactive swift swiftui userdefaults
Last synced: 2 months ago
JSON representation
⚙️ A tiny property wrapper for UserDefaults. Only 60 lines of code.
- Host: GitHub
- URL: https://github.com/mezhevikin/persistent
- Owner: mezhevikin
- License: mit
- Created: 2022-09-05T13:13:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-05T13:47:47.000Z (over 2 years ago)
- Last Synced: 2024-03-14T23:06:40.041Z (11 months ago)
- Topics: appstorage, combine, extension, ios, lightweight, property-wrapper, reactive, swift, swiftui, userdefaults
- Language: Swift
- Homepage:
- Size: 4.88 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
⚙️ A tiny property wrapper for UserDefaults. Only 60 lines of code.
```swift
import Persistentextension UserDefaults {
// Optional property
@Persistent("login", .standard)
static var login: String?
// Property with default value
@Persistent("isDarkMode", false)
static var isDarkMode: Bool
}
``````swift
UserDefaults.login = "mezhevikin"
UserDefaults.isDarkMode = true
```### Combine
```swift
let subscription = UserDefaults.$isDarkMode.sink {
print($0)
}
UserDefaults.isDarkMode = true
```### Swift Package Manager
```
https://github.com/mezhevikin/persistent.git
```Inspired [Antonie Van Der Lee](https://www.avanderlee.com/swift/property-wrappers/)