Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

⚙️ A tiny property wrapper for UserDefaults. Only 60 lines of code.

```swift
import Persistent

extension 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/)