Offline Documentation Tools
Tags: setup, productivity, tools, tutorial
Published: 2019-07-30 23:19:06

###### This is my first blog post... YIKES!!!

This will be the first in an ongoing series of posts sharing the tools, workflows and IDE setup I use in my daily development.

Today I would like to introduce you to offline documentation tools I use on macOS and Windows.

**TLDR: Try Dash on macOS and Zeal on Window/Linux**

## Why use an offline documentation tool?

Offline documentation tools are one of those tools you didn't know you needed until you try it. If you are like myself, any given day you can be programming in more than one language (Ruby and JavaScript in my case), maybe you use a UI framework (Bootstrap), and let's throw in a frontend framework (React). That's a lot of information to keep at the top of your mind and I sometimes forget which methods are available in Ruby vs JavaScript.

In a recent situation, I couldn't remember how you would perform a `find` on an `Array` in Ruby. I knew it was just called `find` in JavaScript but for the life of me, I couldn't remember if there was a nice and clean method in Ruby to do this.

Normally you would do the following:

1. Goto the browser
2. Type in the search bar `ruby array find`
3. Then wait for the results to come back and click on the website of your choice where you might find some documentation

But with an offline documentation tool:

1. Load app
2. Pull Ruby docs for Array
3. Look at available Array methods or search for anything mentioning find

No need to load any webpages, parse through results, just go straight to the source.

Let me introduce you to the tools I used when developing on macOS and Windows 10

### macOS

Dash - Free (with paid upgrade) - https://kapeli.com/dash

Official Description:

> Dash is an API Documentation Browser and Code Snippet Manager. Dash stores snippets of code and instantly searches offline documentation sets for 200+ APIs, 100+ cheat sheets and more. You can even generate your own docsets or request docsets to be included.

Dash is such an awesome tool to use and recommend it to everyone I work with. It has access to documentation for almost all major languages/frameworks/libraries you might work with. The extra bonus is that it also has a good library of cheat sheets to quickly lookup how to do something. Dash is free to use but comes with nag modal asking to you purchase it but the paid version comes with awesome integration features for [Alfred](https://www.alfredapp.com/) and most code editors/IDEs.

![](https://imgur.com/idThsbR.png)

This is what my Dash looks like. You can see a lot of different documentation downloaded on the left margin and my downloaded cheatsheets are hidden under the fold.

Pulling up documentation is fairly simple, in the top left you can either do a generic search that will scan all the documentation you have downloaded.

![](https://imgur.com/SGKF34q.png)

You can see in the left top margin results for `Array find` across all the different language/frameworks/cheatsheets. But this is super noisy and we know we just want to search Ruby for a find method on the `Array` class. That is easy to do if you know docset keyword. In the search just type `ruby: Array find`

![](https://imgur.com/6cvqccg.png)

We now scoped our results to only search Ruby and then look for class and/or method we are looking for. If you look a little closer on the bottom left margin it will also display all the methods on the class, cool.

Most docsets already come with a defined keyword, typically the name of the language/library/framework. You can find and edit them in `Preferences > Docsets`

![](https://imgur.com/UDow9cZ.png)

### Windows 10 / Linux / macOS

Zeal - free - https://zealdocs.org/

Official Description:

> Zeal is an offline documentation browser for software developers.

I would best describe Zeal as a stripped-down version of Dash. It only offers offline documentation for most of the popular language/libraries/frameworks, no cheatsheets or code snippet support.

![](https://imgur.com/x32HDEc.png)

Just like with Dash you can search and download documentation in a simple and easy manner. 

![](https://imgur.com/bzpZdQO.png)

Searching documentation functions very similar to Dash but its fuzzy search capabilities can sometimes be an annoyance.

## Summary

Using an offline documentation tool can be super convenient. In fact, I was using the Markdown cheatsheet on Dash while writing this very post. 

![](https://imgur.com/t648cGi.png)

Give them a try and if you know of another tool share it in the comments. Happy Coding!