Eventually you'll probably want to use XCode when developing applications on the Mac and writing Objective C code.

XCode has templates to help you get started. The above minimal approach is helpful to learn about what those templates are configuring behind the scenes.

This is also a good overview of Xcode:

When writing code in C or Objective C, you can compile basic code with gcc. The C tutorial above describes this.

This page also describes the basics for a Cocoa / Objective C application that compiles with gcc:

It's a good idea to understand the basics of C and Objective C.

Here is a simple tutorial for C:

From the same site, here is a good tutorial for Objective C:

for notes on scraping web pages, and other forms of communication, see the communicate module. That functionality has been abstracted out, but it is tricky to find:


Objective C is a superset of the C programming language.

Cocoa is a framework for building applications on the Mac OS X platform.

PyObjC wraps calls to Objective C from Python, exposing that functionality within Python.

xcode 3.2 no longer ships pyobjc project templates

to get them:

ls /Developer/Library/Xcode/Project\ Templates/Application/

svn co http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/Project%20Templates/ /Developer/Library/Xcode/Project\ Templates/PyObjC\ Application/

also [2011.02.14 11:27:03]
this will allow you to open projects, but the rename in the templates won't work.

svn co http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/Project%20Templates/Cocoa-Python%20Document-based%20Application/ /Developer/Library/Xcode/Project\ Templates/Application/Cocoa-Python\ NSDocument\ based\ Application


Learn the tools:

When developing software, there is a pattern to the process:
Edit the code
Run the code
See if changes achieved the desired effect

In some languages there may be a "build" or "compilation" step paired up with the "run" step.

For some languages it may be sufficient to edit the code in any text editor that you are comfortable using, and then use a separate program to run the code. Other languages unite those two steps into a single application called an Integrated Development Environment (IDE).

Regardless of the approach, it is important to identify the right tools needed to implement this process. Start with a "Hello World" style example, and work from there.

Development, Programming, Coding, Writing Software:

Describing desired behavior for a computer to perform in a way that the computer can execute that behavior.

This is about creating new applications that perform a needed function. This is different than using existing applications as an end user.

There are many ways to create new applications. They generally require programming. Programming is (usually) a textual representation of the actions you want the computer to perform. The standards that define that textual representation is called a Programming Language. There are many programming languages. Depending on the operating system you are using on the computer you want to write applications for, you may have different programming languages available to you.

If possible, it's nice to use one language for most tasks. So pick your main language with care. Then, once you learn it, you can complete those programming tasks more quickly without needing to learn the basics of the language.

Unfortunately, eventually you'll probably find that one language won't work for all cases that you want to write applications for. The topic of development and learning a new language will come up again.

Take good notes along the way, and try to note similarities in the process.