Programming in OS X

Cocoa

Best Developer Tools for OS X: A slashdot article

Karelia Software's Cocoa Open Source

On dynamic typing in Objective C

CocoaDev is a Wiki for the Mac OS X developer community. It contains CocoaWeblogs, "a page to collect links to weblogs that are at least occasionally about Cocoa or Mac OS X programming."

StartCocoa

MagicHat:

" MagicHat is a programmer's research and reference tool. With MagicHat, you navigate through Cocoa's application programming interface (API); review the declarations of language elements such as methods, functions, and constants; and retrieve relevant passages from the Cocoa developer documentation."

Integrating QuickTime with Cocoa UNOFFICIAL Cocoa-dev Frequently Asked Questions

Intro To Using PyObjC: Overcoming Newbie Hurdles when using Xcode and Interface Builder, by Dean Hall

It is now possible to write Cocoa programs with the python scripting language. The permanent home for this project is probably here. "At this point, the PyObJC is considerably more straightforward to use than the Java-ObjC bridge and is easier to use than the AppleScript Studio bridge." --Bill Bumgarner, on the pyobjc-dev mailing list, 16 Oct 2002 The Cocoa Files, by Andrew Stone of Stone Design.

Modifying Stickies: A light introduction to InterfaceBuilder in the form of a guide to adding features to the Stickies application that comes with OS X, this is also a good demonstration of the richness of the Cocoa libraries.

Books

ADC Reference Library: Apple has constructed a centralized place for developer and technical documentation:

"The ADC Reference Library is a powerful developer support tool that integrates the five core ADC technical resource collections—Documentation, Technical Notes, Sample Code, Release Notes, and Technical Q&As—and provides advanced browsing, sorting, filtering, and searching features. We put all these documents in one place to make it fast and easy for developers to find the information they need to create great products”
See also Making the Most of the ADC Reference Library.

AppKiDo: "AppKiDo is a free reference tool for Cocoa Objective-C programmers. The goal of AppKiDo is to help you find what you want in the Cocoa documentation. It does this by parsing the header files and the HTML doc files that were installed with your Developer Tools, and presenting the results in a form that is easy to navigate."

Platypus: Platypus is a powerful developer tool for creating application wrappers around scripts, i.e. creating MacOS X applications that execute a script they are bundled with. Scripts can thus be run transparently from the graphical window environment without having to resort to using the command line interface. (Used to be at http://sveinbjorn.vefsyn.is/software.)

Introduction to Cocoa Bindings

CHUD tools: Optimization tools from Apple.

Introduction to Apple Software Design Guidelines

The Cocoa Controller Layer: "Apple [...] set out to provide a solution that was made available in Mac OS X 10.3. Their solution is the Controller Layer, which is comprised of a number of classes and protocols that implement a cohesive architecture for facilitating communication between an application's model and view layers."

CocoaDev is a Wiki for the Mac OS X developer community. It contains CocoaWeblogs, "a page to collect links to weblogs that are at least occasionally about Cocoa or Mac OS X programming." Knowing When to Let Go: Better Living Through Memory Management The Cocoa API Reference Browser is very convenient if you do Cocoa programming. Nice list of links to Cocoa literature.

Developing with Core Data: An introductory article from Apple.

Beginning Mac Development: A gentle introductory overview with objective-C in mind.

What's New For Users and Developers in QuickTime 7: Part 1: users; Part 2: developers.

cocoatech: From the website:

""The Cocoa frameworks used to create Path Finder, and source code used to write Path Finder plugins are now open source and ready for immediate download. Included in the source code package are two powerful frameworks: CocoaTechBase and CocoaTechFoundation . These two frameworks make up the heart and soul of Path Finder. [...] In addition, CocoaTechTerminal allows you to put a real working terminal in a plain NSView. It's super simple. Build your own Terminal.app in about 5 minutes."

An introduction to PyObjC

Neat PyObjC Trick: bbum shows how to use PyObjc (the python-Objective C bridge) to inject a python interpreter into a running Cocoa program.

Apple on PyObjC: Apple has put up a page describing PyObjC, the Python/Objective-C bridge. Here's a quote:

"PyObjC's maturity is unmatched—it's been around longer than even Apple's Java bridge (it originated on NeXTstep). Finally, while PyObjC is a third-party bridge, it is well known internally at at Apple, and boasts an exceptionally talented group of enthusiastic developers."

Exploring Cocoa With F-Script: An nicely illustrated article by Philippe Mougin, in one giant html file: "F-Script is an integrated set of tools that makes it possible to interactively explore and manipulate Cocoa objects as well as script them".

Understanding the NSTableView Class: "This article will provide an in-depth introduction on how to use the NSTableView Cocoa class to display tabular data"

Applescript

Macscripter

One of the most powerful commands in AppleScript is "do shell script," but there are some pitfalls. Apple has written a lucid and detailed technical note all about them. Hedderik's AppleScripts for doing things with the AddressBook. A useful collection of utility subroutines is available here and a great list of links here. A review of Teach Yourself AppleScript in 24 Hours, by Jesse Feiler, can be found here. Regular Expressions: Three Reasons to Pay Attention to AppleScript is a column from August, 2004 by Cameron Laird and Kathryn Soraiz published in Unix Review. It has nothing to do with Regular Expressions; that's just the name of the column, which is about high-level languages. It's interesting because it's a bird's-eye view of AppleScript intended to be useful to the commercial unix readership, and it is impressively fair, accurate, and succinct.

"Learn AppleScript. Here are three reasons why it's a good time to do so:

• Marketplace changes — mostly impelled by problems with the insecurity of Windows — have revived interest in Macintoshes for both desktops and servers.

• It's easy and rewarding to pick up AppleScript basics.

• New books by Matt Neuburg and Bert Altenburg on the subject makes sense of the subject for typical UnixReview.com readers.”

Scripting AppleScriptable Applications with Python: "I present to you a mini-tutorial on how to script iTunes with Python through the Open Scripting Architecture (OSA), using gensuitemodule.py."

AppleScript: The Missing Manual, by Adam Goldstein, is reviewed at length in Slashdot by Mary Norbury-Glaser and briefly in ATPM.

Appscript:

"Appscript is a high-level, user-friendly MacPython to Apple event bridge that allows you to control scriptable Mac OS X applications using ordinary Python scripts. Appscript makes MacPython a serious alternative to Apple's own AppleScript language for automating your Mac.”
Version 1.0 is now (2/18/05) available for download. This is the project that was called "AppScripting" until v. 0.4.0. Its progress can be followed on the pythonmac-sig@python.org mailinglist.

If you use an Intel Macintosh and write AppleScripts that you save as applications, you need to read this hint.

Other

Version Control on Mac OS X: A three-part article on the O'Reilly website: part 1part 2part 3

userdefaults, plistservices, and CFPython

Pashua: Dialog GUI for Perl, PHP, Shell and AppleScript: This is a neat tool that allows you to wrap your Perl, PHP, or shell script in a simple Aqua GUI.

Building Scipy for Mac OSX: Instructions for 10.3, including how to install Numeric.

Build a Dashboard Widget: A tutorial from MacDevCenter by Andrew Anderson.

Web Development & Mac OS X: a useful series of articles from Apple that includes tutorials on installing MySQL and PostgreSQL.

Python and OS X

DarwinBuild