Next in the series of Mac applications, here is a brief review of a fantastic native browser for online and offline documentation: Dash. It is available for iOS and OS X, with a long relation with AppStore, and although you have to pay for it, it is worth the bill.

Dash gives your Mac instant offline access to 200+ API documentation sets.

In case you don’t know what Dash is, I invite you to consult the website where you will find the list of supported languages. Not only the core languages that you can access via standard docsets, but also the extended packages available as user-contributed or 3rd party toolsets. You can even read The Racket Guide in Dash as shown below. (Actually, I read the entire manual this way.)

I use Dash a lot for Scheme, Clojure and Javascript, even if I have extensive built-in documentation in Emacs via, e.g., Cider in the case of Clojure. I know how to browse online documentation or offline HTML pages in an Emacs buffer (I use eww for that), but I find native app like Dash, with Dark mode eventually, to be really pleasant. In any case, if you are an Emacs user, there are also two other options: the dash-at-point package allows to lookup a keyword and open the corresponding help page in Dash app directly; helm-dash (or counsel-dash if you prefer Ivy, but this just a wrapper around helm-dash, so you still need Helm even if you don’t use it) is a replacement for the application itself. The later let you download docset directly from Emacs. In this case, you need to take care to use a common folder for Emacs and Dash. Personally, I use the first option and I am quite happy with the settings.

Two functionalities are noteworthy:

  1. It is possible to annotate any docset (you will need to create an account, though), bookmark page or record code snippet along the documentation. And, of course, you can share anything you read via standard Apple sharing options. Together with Quiver, you can write code, access documentation and write using literate programming very easily.
  2. Custom docsets can be built from various sources and added to the main panel. I should really take some time to build one for the Common Lisp HyperSpec.

I should also note that there are some free alternatives, including the online devdocs.io (it can work offline too) and an optional Chrome plugin or zeal (no Mac version).

Joy Division • Unknown Pleasures