Swiftpack.co -  CypherPoet/CoreDataKit as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
A collection of utilities for building Core Data applications in SwiftUI.
.package(url: "https://github.com/CypherPoet/CoreDataKit.git", from: "0.0.19")


CypherPoetCoreDataKit Header Image

Twitter: @cypher_poet

A collection of utilities for building Core Data applications in SwiftUI.

🚧 Disclaimer

This library is still very much a WIP as I study/experiment with/develop best practices, patterns, and affordances for Core Data after the releases of Swift 5.5 and "SwiftUI 3.0". Please treat it as a guideline/reference for the time being πŸ™‚.


  • βœ… A CoreDataManager that handles setting up a "Core Data Stack".
  • βœ… A rich set of utilities for performing Core Data migrations.
  • βœ… A FetchedResultsControlling protocol that helps architect NSFetchedResultsController instances and extract data from their NSFetchRequest results.
  • βœ… Utilities for composing NSPredicate instances in a strongly-typed fashion.
  • βœ… Strongly-typed errors under types like CoreDataManager, PersistentStoreMigrator and more.
  • βœ… NSPersistentStore helpers for using different SQLite writing locations in development and production.


Xcode Projects

Select File -> Swift Packages -> Add Package Dependency and enter https://github.com/CypherPoet/CypherPoetCoreDataKit.

Swift Package Manager Projects

You can add this project as a package dependency in your Package.swift file:

let package = Package(
    dependencies: [
            url: "https://github.com/CypherPoet/CoreDataKit", 

From there, refer to the CoreDataKit "product" delivered by the CypherPoetCoreDataKit "package" inside of any of your project's target dependencies:

targets: [
        name: "YourLibrary",
        dependencies: [
            .product(name: "CoreDataKit", package: "CypherPoetCoreDataKit"),

Then simply import CoreDataKit wherever you’d like to use it.


Currently, usage of these utilities is best demonstrated by the various example applications here. But a few pointers...

Dynamically initializing a Core Data Stack for your app depending on whether it's running for production or for Xcode Previews.

Setting up the Core Data stack on launch

Core Data Migrations


  • Xcode 13.0+ (Recommended)

πŸ“œ Generating Documentation

Documentation is generated by Swift Doc. Installation instructions can be found here, and as soon as you have it set up, docs can be generated simply by running ./Scripts/generate-html-docs.zsh from the command line.

πŸ“ Note that this will only generate a .build/documentation folder for you to view locally. This folder is being ignored by git, and a GitHub action exists to automatically generate docs at the root level and serve them on the project's gh-pages branch.

🏷 License

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


Stars: 2
Last commit: 2 weeks 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.

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