CoreNotes An app that users CoreData to save notes Frameworks CoreData CloudKit Design Patterns Extensions Protocols