Exploring Mac App Development Strategies
Example project code for the book "Exploring Mac App Development Strategies". Part of the Clean Cocoa Project.
The App
There are 2 app targets in this project:
DDDViewDataExampleis the original application which I develop in the book.CoreDataOnlyis the result of the 4th part of the book, where I remove the separation of Core Data objects and Domain Model entities.
Note: This repository contains two other branches for historic reason: core-data-only and core-data-ui. They exist to show how the changes were applied.
The application itself won't be very useful; it's just the result of what I teach in the book and not a piece of software you want to use in your day-to-day life. So the real star is the code and its organization.
Project Groups
These are the project groups that correspond to layers in the application architecture:
- Infrastructure hosts the database access.
- Domain is where the business logic and the entities reside; it's supposed to be relatively independent from the actual app, but the
CoreDataOnlyexample deviates from that. - Application is glue-code that makes the app run. It's where the
AppDelegatelives and other orchestrating service objects do their job. The real meat is pushed into Domain and Infrastructure. - User Interface is everything AppKit-related, with Nibs and view controllers and all.
License
Copyright (c) 2014--2016 Christian Tietze.
The code is distributed under The MIT License (MIT). See the LICENSE file for details.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
