A GUI tool for building interfaces for your programs, and then some.
You define your interface by simply creating your windows and dragging GUI widgets onto them.
But you also create the connections between controller objects in your code and your interface elements by drawing lines between them.
InterfaceBuilder saves your interface to a NibFile, and can create the skeleton source files for your controller classes.
Some people mistakenly regard InterfaceBuilder as just a GUI layout tool, but it is far more powerful than that. By allowing you to create actions and outlets, you can define a majority of your programs interactions before you even write a line of code.
(See also: ActionMethod, OutletVariable)
Panther’s InterfaceBuilder has a new under-documented BindingsInspector (q.v.).