Cocoa Tools

Why They 're Great

F-Script

F-Script Anywhere

Outside of Xcode itself and Apple's excellent documentation and sample code, F-Script is by far the most useful tool I've found for learning Cocoa. F-Script Anywhere uses a code-injection approach not unlike InputManagers to let F-Script run inside any Cocoa application on your system. Using this tool, you can not only peer inside the object framework and see all the object methods, but you can even call the methods in real time and change object parameters. Indispensible!

Both applications (and the underlying F-Script framework) are now available in Leopard-compatible versions. A useful variant that I sometimes turn to is the Python-coded PyInjector, which does pretty much the same thing as F-Script Anywhere but isn't quite as stable. It does have one very special feature, though, that F-Script Anywhere doesn't: PyInjector will let you attach F-Script to non-UI applications, such as Quicksilver when running with UIElement turned on, or my CrystalMenubar app.

Symbol Explorer

Cocoa developers have a wealth of great, free tools for doing research and learning the Cocoa classes and frameworks. Two of them take a similar approach of repackaging the Apple documentation into nice, compact, searchable interfaces: CocoaBrowser and AppKiDo. Then there are tools like Symbol Explorer, which is a bit naughtier: They include all the methods and classes, not just the ones Apple has seen fit to document publicly. This way, you can search on the entire body of known classes, and they have the capacity to learn and discover new ones as you add them to your collection. 

Symbol Explorer is my favorite in this class because it also lets you specify searches by method name, not just by class name. However, I also use an older tool called Magic Hat, though it doesn't seem to want to run on Leopard. Magic Hat (oddly, a Carbon app) also lets you explore related (parent/child) classes easily. 

Symbol Explorer is also a nice supplement to F-Script (which likewise lets you explore all the classes) because it presents actual header files, with the instance and class variables separated and all of the methods arranged by inheritance.

UIElementInspector

This is a free demonstration tool Apple makes available primarily for exploring the accessibility of your user interface. However, it's also an excellent way to explore parts of the user interface that F-Script can't (e.g., menus and other elements that disappear when your mouse moves). Source code available as part of the project download.