Swiftpack.co -  FelixHerrmann/FHPropertyWrappers as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
FelixHerrmann/FHPropertyWrappers
Some useful Swift Property Wrappers.
.package(url: "https://github.com/FelixHerrmann/FHPropertyWrappers.git", from: "1.1.0")

FHPropertyWrappers

Version License Tweet

Some useful Swift Property Wrappers.

Will be expanded over time.

Requirements

  • macOS 10.10+
  • iOS 9.0+
  • tvOS 9.0+

Installation

Swift Package Manager

Add the following to the dependencies of your Package.swift:

.package(url: "https://github.com/FelixHerrmann/FHPropertyWrappers.git", from: "x.x.x")

Manual

Download the files in the Sources folder and drag them into you project.

Stored

A property wrapper which reads and writes the wrapped value in the UserDefaults store.

It supports all the types that are allowed by UserDefaults. Check all the supported types here.

@Stored("string") var string = ""
@Stored("int") var int: Int
@Stored("array") var array: [String]
@Stored("dictionary") var dictionary [String: Int]

The default value is based on the defaultStoredValue if nothing is set.

In addition to that, Optional, RawRepresentable and Codable are supported too. For non-RawRepresentable enums use Codable.

@Stored("optional") var optional: String?
enum Enumeration: String, Storable {
    case firstCase
    case secondCase
    
    static var defaultStoredValue: Enumeration {
        return .firstCase
    }
}

@Stored("enumeration") var enumeration: Enumeration
struct CustomType: Codable, Storable {
    let name: String
    
    static var defaultStoredValue: CustomType {
        return CustomType(name: "")
    }
}

@Stored("codable") var codable: CustomType

The wrapped value must conform to Storable.

SecureStored

A property wrapper which reads and writes the wrapped value in the Keychain.

It supports all the base types, most of them rely on Codable. Check all the supported types here.

@SecureStored("string") var string = ""
@SecureStored("int") var int: Int
@SecureStored("array") var array: [String]
@SecureStored("dictionary") var dictionary [String: Int]

The default value is based on the defaultStoredValue if nothing is set.

In addition to that, Optional, RawRepresentable and Codable are supported too. For non-RawRepresentable enums use Codable.

@SecureStored("optional") var optional: String?
enum Enumeration: String, SecureStorable {
    case firstCase
    case secondCase
    
    static var defaultStoredValue: Enumeration {
        return .firstCase
    }
}

@SecureStored("enumeration") var enumeration: Enumeration
struct CustomType: Codable, SecureStorable {
    let name: String
    
    static var defaultStoredValue: CustomType {
        return CustomType(name: "")
    }
}

@SecureStored("codable") var codable: CustomType

The wrapped value must conform to SecureStorable.

License

FHPropertyWrappers is available under the MIT license. See the LICENSE file for more info.

GitHub

link
Stars: 1
Last commit: 4 days ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

1.1.0
1 week ago

UserDefault renamed to StoredSecureStored wrapper added (uses Keychain)

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics