As a seasoned developer and consultant, there are a few apps and utilities that form part of my exclusive and quintessential toolkit when I work on projects. I focus primarily on iOS projects, but I am using a tool that is just as powerful and essential whether you are an Android developer or Web developer/designer: Dash by Kapeli.
When coding or designing, along with your IDE or design tool (such as Photoshop), you normally rely on documentation references, such as Cocoa docs or CSS reference documentation. I would like to introduce the best API documentation tool for your Mac, and the only API reference tool you will ever need. As an essential part of my programming workflow, I rely on Dah to lookup methods and classes I work with on a near-compulsive level.
Before I explain how I use it, here's an overview of the tool.
Dash allows you to select from more than 150 API documentation sets, from CSS to Apple’s iOS documentation, offline. And if the API you are after isn’t there, you can generate your own docsets.
I use a documentation website called cocoadocs to reference third-party Cocoa libraries. Cocoadocs supports direct integration of reference libraries to be added to Dash for offline usage, straight from the browser.
Installing Dash on the Mac is straight-forward, and using it is even more so. Basic installation enables the app to run in the background, triggering the app to the foreground using a global shortcut.
You can search using the global search box for API methods. Dash filters down across multiple language document sets, enabling you to select the appropriate function call, segmented by language. You also get a convenient method hierarchy browser that lets you browse through all the methods of the class of interest.
Integration with IDEs
Working with Dash on the desktop, especially with the global shortcut, is very easy. But Dash also has superb integration features. Using Xcode, installing the Dash plugin allows you to directly use Dash documentation instead of the built-in system when command-selecting a method in the code view.
If you use Eclipse or Textmate, you also get plugins for a similar intimacy of integration. A sign of the growing popularity of Dash, more and more plugins are being made available all the time.
As a surprising bonus, the author has released an iPad version of Dash, which works similarly to its desktop equivalent. I tend to use the iPad version as a separate screen to glance at while coding on my MacBook.
While Dash is an exceptional tool for what it does, I would like to see the iOS app evolve more over time--to include iOS 8 features like Handoff, so that users can switch an API reference from the device to the desktop. In general, though, Dash provides a lot of bang for the buck. Indeed, a trial version is available for free, and I highly recommend that readers check it out.