Exploring Mac App Development Strategies
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-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.
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.
Copyright (c) 2014--2016 Christian Tietze.
The code is distributed under The MIT License (MIT). See the
LICENSE file for details.