A collection of utilities for building Core Data applications in SwiftUI.
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
CoreDataManagerthat handles setting up your "Core Data Stack".
- ✅ A
FetchedResultsControllingprotocol that helps architect
NSFetchedResultsControllerinstances and extract data from their
- ✅ Predicate Utilities
- ✅ Strongly-typed errors for save operations.
NSPersistentStorehelpers for using
NSSQLiteStoreTypein production apps and
NSInMemoryStoreTypein tests or previews:
Swift Packages ->
Add Package Dependency and enter
Swift Package Manager Projects
You can add
CypherPoetCoreDataKit as a dependency in your
let package = Package( //... dependencies: [ .package(url: "https://github.com/CypherPoet/CypherPoetCoreDataKit", from: "0.0.16"), ], //... )
import CypherPoetCoreDataKit wherever you’d like to use it.
Usage of these utilities is best demonstrated by the Example App.
Setting up the Core Data stack on launch by utilizing
CoreDataManager's default shared instance.
- iOS Example
- macOS Example
- 🔑 This corresponds to setting
CoreDataManager.managedObjectModelNameto match the name of your app's
- For more control and customization, a
CoreDataManagerinstance can be initialized directly with a
CypherPoetCoreDataKit are most welcome. Check out some of the issue templates for more info.
- Xcode 12.0+ (for developing)
📝 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
CypherPoetCoreDataKit is available under the MIT license. See the LICENSE file for more info.