Added user preferences window and settings; import contacts from Address Book; high resolution generic profile image.
Added programmatic creation of contact details popover view; multiple email, phone and address entries per contact via relationships between Core Data entities; multi-contact deletion (Edit->Delete Contacts...); and contact search (first/last name only). Modified Address Book import (via Preferences window) to include all email, phone and address entries per contact. Reorganised main contact list UI.
Migrated the persistent store type to SQLite and added a private migration method to the AppDelegate. Changed deletion behaviour to "cascade" for the one-to-many relationships between the Contact entity and the Address, Email, Phone, and Usage entities. Added setDefaultPreferences method. Modified Facebook query methods to respect user preferences. Modified PreferencesWindowController to request a Facebook access token when Facebook query options are first enabled. Added fade effect to the top of the contact list window (to match the bottom fade effect already present). Updated the default profile image to the lower resolution defaultProfile.png. Fixed a bug in the getFeatures method of the Contact entity class where nil values for the birthday would produce meaningless feature values.
Major refactor: replaced the contact list NSTableView data source logic to be populated directly from the Contact entity instead, via bindings to an NSArrayController. Moved all derived model properties into the model class itself. Contact priority is now stored as an attribute of the Contact entity. Search and sorting of the contact list are now handled using bindings and the array controller. Migrated the Model entity to remove the legacy theta attributes (now stored in the theta array attribute). Overall performance is much better now.
Renamed project to "First Contact". Refactored FacebookQuery.m to dry it out and added method to fetch Facebook profile pics. Replaced Add/Edit views and controllers with unified version that handles both operations and allows multiple email, phone and address entries to be specified. Added .gitignore file.
Logic and application unit test targets added to project.