Swiftpack.co -  CypherPoet/CypherPoetCoreDataKit 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/CypherPoetCoreDataKit.git", from: "0.0.17")


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 some of the new best practices, patterns, and affordances for Core Data after the release of SwiftUI 2.0. Please treat it as a guideline/reference for the time being πŸ™‚.


  • βœ… A CoreDataManager that handles setting up your "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.
  • βœ… Predicate Utilities
  • βœ… Strongly-typed errors.
  • βœ… NSPersistentStore helpers for using NSSQLiteStoreType in production apps and NSInMemoryStoreType in tests or previews:


Xcode Projects

Xcode Projects

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

Swift Package Manager Projects

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

let package = Package(
    dependencies: [
        .package(url: "https://github.com/CypherPoet/CypherPoetCoreDataKit", .exact("0.0.17")),

From there, refer to CypherPoetCoreDataKit as a "target dependency" in any of your package's targets that need it.

targets: [
        name: "YourLibrary",
        dependencies: [

Then simply import CypherPoetCoreDataKit 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


Contributions to CypherPoetCoreDataKit are most welcome. Check out some of the issue templates for more info.

πŸ’» Developing


  • Xcode 12.5+ (Recommended)

πŸ“œ Generating Documentation

Documentation is generated by Jazzy. Installation instructions can be found here, and as soon as you have it set up, docs can be generated simply by running jazzy from the command line.

πŸ“ Note that this will only generate the docs folder for you to view locally. This folder is being ignored by git, as an action exists to automatically generate docs 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