CloudKitCodable

0.3.0

An encoder and decoder for CKRecord
insidegui/CloudKitCodable

What's New

Version 0.3.0

2024-04-15T17:07:34Z

What's Changed

New Contributors

Full Changelog: 0.1.4...0.3.0

CloudKit + Codable = ❤️

Badge showing the current build status

This project implements CloudKitRecordEncoder and CloudKitRecordDecoder, allowing for custom data types to be converted to/from CKRecord automatically.

Usage

For details on how to use CloudKitCodable, please check the included documentation.

Example

Declaring a model that can be encoded as a CKRecord:

struct Person: CustomCloudKitCodable {
    var cloudKitSystemFields: Data?
    let name: String
    let age: Int
    let website: URL
    let avatar: URL
    let isDeveloper: Bool
}

Creating a CKRecord from a CustomCloudKitCodable type:

let rambo = Person(...)

do {
   let record = try CloudKitRecordEncoder().encode(rambo)
   // record is now a CKRecord you can upload to CloudKit
} catch {
   // something went wrong
}

Decoding a CustomCloudKitCodable type from a CKRecord:

let record = // record obtained from CloudKit
do {
   let person = try CloudKitRecordDecoder().decode(Person.self, from: record)
} catch {
   // something went wrong
}

Minimum Deployment Targets

  • iOS 14
  • tvOS 14
  • watchOS 5
  • macOS 11
  • Xcode 15 (recommended)

Installation

Swift Package Manager

Add CloudKitCodable to your Package.swift:

dependencies: [
    .package(url: "https://github.com/insidegui/CloudKitCodable.git", from: "0.3.0")
]

Manually

If you prefer not to use Swift Package Manager, you can integrate CloudKitCodable into your project manually by copying the files in.

Description

  • Swift Tools 5.5.0
View More Packages from this Author

Dependencies

  • None
Last updated: Wed May 15 2024 09:02:30 GMT-0900 (Hawaii-Aleutian Daylight Time)