My macOS Dev Env Tools
Tags: showdev, productivity, webdev
Published: 2019-06-07 21:57:18

In no particular order, listed below are the tools I use on a daily basis to write code and be productive. If you have strong opinions about why X should replace Y on this list, leave them in the comments because I am always looking to make my workflow faster and more efficient.

# Terminal Tools

### [iTerm2 (v3)](https://www.iterm2.com/version3.html)

![iTerm2 Logo](https://thepracticaldev.s3.amazonaws.com/i/xvm7kxgdlfwxcrg03cm5.jpg)

Highly customizable compared to Terminal. I get a lot of mileage out of the natural text navigation configuration (holding option/alt to move between word breaks)

### [Homebrew](https://brew.sh)

![Homebrew Logo](https://thepracticaldev.s3.amazonaws.com/i/kmcjlwcb7casdkq89vl4.png)

My package manager of choice. I use [`brew bundle`](https://github.com/Homebrew/homebrew-bundle) quite a bit to ensure that my Dev Env dependencies can be easily migrated to a new machine if anything happens to my current one.

### [Tmux](https://github.com/tmux/tmux)

From their site:

>tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

If you can get past the size of the config file (*psst. feel free to use [mine](https://github.com/kyleboe/dotfiles/blob/master/.tmux.conf)*), this tool is a must. If you've ever accidentally closed a terminal window where you needed something that was on it, you'll benefit from learning how to use Tmux.

# Non-Terminal Tools

I had to group things by functionality because there are some acknowledgements that need to be made. I'll mark the one I use, but know that I have at least tried the others.

## Text Editor

I am a Sublime Text convert after seeing how easily extensible VS Code is.

![VS Code Logo](https://thepracticaldev.s3.amazonaws.com/i/fyc4ubtawnv1t7d7ncn3.png)

Easy Mode:
- **[VS Code](https://code.visualstudio.com/) ⬅**
- [Sublime Text](https://www.sublimetext.com/)
- [Atom](https://atom.io/)

Hard Mode:
- [Vim](https://github.com/vim/vim)

## Window Manager

While I only use Spectacle, there is a *huge* honorable mention due to [koekeishiya](https://github.com/koekeishiya), the dev behind ChunkWM. He is a legend in terms of writing window managers.

![Spectacle Logo](https://thepracticaldev.s3.amazonaws.com/i/vodevdsv7g4ywyms6pjy.png)

Easy Mode:
- **[Spectacle](https://www.spectacleapp.com/) ⬅**
- [Magnet](https://magnet.crowdcafe.com/)

Hard Mode:
- [ChunkWM](https://github.com/koekeishiya/chunkwm)

## Note-Taking

![Notion Logo](https://thepracticaldev.s3.amazonaws.com/i/xdx7frkd1z1owa4tl0gl.png)

I cannot recommend Notion enough. Their feature set blows most everything out of the water. Just check out their product page and see for yourself.

- **[Notion](https://www.notion.so/) ⬅**
- [Bear](http://www.bear-writer.com/)
- [Evernote](https://evernote.com/)
- [MacDown](https://macdown.uranusjr.com/)

## Misc Productivity

### [Alfred](https://www.alfredapp.com/)

![Alfred Logo](https://thepracticaldev.s3.amazonaws.com/i/eozmdwqmx4bsxsert9l5.png)

This Spotlight Replacement (and a whole lot more) is the core of my productivity. Alfred is highly extensible and worth the price for the text snippet functionality alone.

### [Bartender](https://www.macbartender.com/)

![Bartender Logo](https://thepracticaldev.s3.amazonaws.com/i/kwtzj5vauqelntn9uwi3.png)

With everything having a menu bar icon, Bartender helps clean up the noise and only bring things to your attention on your terms.

## [Dash](https://kapeli.com/dash)

![Dash Logo](https://thepracticaldev.s3.amazonaws.com/i/l8rh7kbw7jyog3khvp8u.png)

From the site:

>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.

Solid tool for offline documentation (and integrates with Alfred).

# **Tools ≠ Practice**

The TL;DR of any post like this is that tools do not equal development practice. This toolset has been built out of necessity; spending time refining my workflow to make it more efficient. If you use a different set of tools that works for you, great. The environment tools you use do not make you a better or worse developer.