Need help with CoreDataBestPractices?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

293 Stars 27 Forks MIT License 22 Commits 3 Opened issues


Best Practices in Core Data explained within a demo application

Services available


Need anything else?

Contributors list

# 79,406
22 commits

Core Data Best Practices by Antoine van der Lee

Swift Version Twitter

Best Practices in Core Data explained within a demo application as presented during NSSpain.

Included in this project

  • [x] Core Data Stack Setup
  • [x] Fetched Results Controller
  • [x] NSFetchRequests
  • [x] Diffable Data Sources
  • [x] Optimised saving
  • [x] Constraints
  • [x] Derived Attributes
  • [x] Transformables
  • [x] Validation
  • [x] Life Cycle Events
  • [x] Batch Insertions
  • [x] Batch Deletions
  • [x] Persistent History Tracking
  • [x] Threading
  • [x] Core Data and Combine
  • [x] NSExpressionDescriptions
  • [x] Unit Testing Core Data


I would love for this project to grow as a source of best practices regarding Core Data. I'll try to add my own learnings to this project too. There are many sources available on the internet but we lack a bit of example code. Hopefully, this way, we make it easier to adopt best practices in Core Data.


  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.


Core Data Best Pratices is available under the MIT license, and uses source code from open source projects. See the LICENSE file for more info.


This project is originally created by Antoine van der Lee based on experienced from developing Collect by WeTransfer. Many detailed explanations can be found on his SwiftLee blog:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.