Simple Journal app to practice MVC separation, protocols, master-detail interfaces, table views, and persistence. This is written in Swift 4 and also implements Codable.
Part One - Model Objects and Controllers Understand basic model-view-controller design and implementation Create a custom model object with a memberwise initializer Understand, create, and use a shared instance Create a model object controller with create, read, update, and delete functions Implement the Equatable protocol
Part Two - User Interface Implement a master-detail interface Implement the UITableViewDataSource protocol Understand and implement the UITextFieldDelegate protocol to dismiss the keyboard Create relationship segues in Storyboards Understand, use, and implement the 'updateViews' pattern Implement 'prepare(for segue: UIStoryboardSegue, sender: Any?)' to configure destination view controllers
Part Three - Controller Implementation Add data persistence using the Codable protocol and write data to a local file path (URL). Upon launch, decode the data returned from the local file path (URL) back into our custom model objects.