About

I’m a software developer based in Melbourne, Australia.

I’ve written 202 articles on Cocoa with Love since the first in February 2008, including 50 in Swift and 152 in Objective-C.

Cocoa?

In the early days of Mac OS X, “Cocoa” was a name used to distinguish NeXTSTEP derived functionality, in contrast to “Carbon” which was used to describe Classic Mac OS derived functionality. According to Apple’s developer documentation:

The term “Cocoa” has been used to refer generically to any class or object that is based on the Objective-C runtime and inherits from the root class, NSObject. The terms “Cocoa” or “Cocoa Touch” are also used when referring to application development using any programmatic interface of the respective platforms.

Apple haven’t used this term in marketing for some time but it survives as the name of the “Cocoa” library that you can import into Swift in macOS native apps. With SwiftUI able to function without directly importing Cocoa, it appears that the name is likely to eventually fade away.

The name “Cocoa” has no direct origin in NeXTSTEP or macOS programming; it was a trademark Apple reused from an unrelated project that chose the name to imply a “child-friendly version of Java”. Of course, Java was partly inspired by NeXTSTEP’s Objective-C, making Cocoa (like everything else in programming) its own grandmother.

Cocoa with Love software license

Original code samples on any page of Cocoa with Love may be used in accordance with the following ISC-style license:

Copyright © 2008-2024 Matt Gallagher ( https://www.cocoawithlove.com ). All rights reserved.

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

The license applies to “original” (i.e. where I’m the author) “code samples” (appearing between <code></code> tags in the page’s HTML source). This license does not apply to non-code content from Cocoa with Love – site layout, article text, artwork and logo may not be rehosted or redistributed without prior consent.

This license should appear at the top of all source code files linked on my github page. Any failure to do so is probably just an accident: let me know and I’ll fix it.

Translating articles

If you’d like to translate one or more articles from Cocoa with Love into another language and host the translated copies on your own website, I permit this provided the following conditions are met:

  1. The translated article must be distributed solely via the world-wide-web and access must not require payment or registration.
  2. On the translated article page, immediately under the article title, you must provide a clear statement that the original article is copyright Matt Gallagher and indicate the year the original article was written.
  3. On the translated article page, immediately under the written by Matt Gallagher credit, you must provide a clear link to the original article on Cocoa with Love.
  4. Content changes beyond those required for translation are not permitted within the text of the translated article.
  5. You must not claim to be Matt Gallagher, must not claim to be officially associated with Cocoa with Love, and must not use the Cocoa with Love logo or banner images.

Distribution without translation, or distribution as part of a paid package, or distribution via methods other than the world-wide-web, is not permitted.