20 Indispensable Applications for Programmers


I don't remember how or when I stumbled upon 1Password, but I am glad that I did. This popular password manager lets securely store almost anything, from passwords and credit cards to software licenses and private keys. The suite of applications, developed by Agile Bits, is best in class, bar none.


There are many macOS clients available for working with Git. Atlassian even offers a free solution, SourceTree. But Tower is the best I have come across over the years. While I mostly use the command line for simple operations, Tower is an indispensable piece of software in my workflow.


Paw advertises itself as "the most advanced API tool for Mac" and it may be right. This beautifully designed macOS application lets you send and inspect HTTP requests. But it does much more than that. It is interesting to see how Paw has successfully made its way into a market that is crowded with free alternatives. Paw is a joy to use. It is powerful, flexible, and easy on the eyes.


Even though Xcode ships with a view debugger, Reveal is worth every penny. Reveal is more powerful, and more stable, than Xcode's view debugger. A few weeks ago, Itty Bitty Apps introduced the next major release with support for application extensions and view debugging over USB. Give it a try. I use it in almost every project I work on.


I use Alfred from time to time, but LaunchBar is my preferred application launcher. But LaunchBar is much more than an application launcher. I really enjoy the bells and whistles LaunchBar ships with, such as rules, its clipboard manager, and support for extensions.


Keeping windows organized, especially on a notebook, can be a pain. Most developers prefer to keep their hands on the keyboard as much as possible. Divvy makes this painless. There are several applications for managing windows, but Divvy ticks all the boxes I am interested in.

I also use Moom, a similar application. But I only use Moom for the convenient menu it shows when you hover over the green button in the top left of a window.


Most of my writing is done in Markdown and Byword is my preferred writing companion. In fact, I am typing this in Byword. I miss the beautiful user interface of Bear and Ulysses, but Byword lets me focus on the writing and it also allows me to directly publish to WordPress. Did I mention Byword is also available on iOS.


Bear took me by surprise a few weeks ago. This beautifully crafted suite of applications has made me forget Evernote and Vesper. It is easy to use, ships with a nice selection of themes and, last but not least, has support for Markdown. Notes are seamlessly synchronized between iOS and macOS. I'm a fan.


PixelCut recently introduced the third major release of its flagship product, PaintCode. PaintCode is a vector drawing application that turns drawings into code. It supports Swift 3, Objective-C, Java, JavaScript, and C#. It also includes support for PDF, SVG, EPS, and several other file formats.


Another developer tool I couldn't do without is SimPholders. Finding the application container of simulator builds is tedious and the location tends to change with every major release of Xcode. SimPholders makes accessing the application container of simulator builds painless and it offers a number of other neat features, such as launching an application and shortcuts to common device actions.


TextExpander is a very popular snippet expander for macOS. It allows me to transform a few keystrokes into a text snippet or image. This is very convenient for a plethora of tasks, including software development. I have been using it for years and use it hundreds of times each day.


I use ScreenFlow to create the courses of Cocoacasts. It has served me well for many years and it is packed with features. There are a few features I miss but nothing major.


Even though I'm not a designer by trait, as an independent developer, I frequently need to create or tweak project assets. I have used Adobe Photoshop for many years and I still do, but Sketch has gained a lot of traction in recent years. Designers seem to love it and I can understand why.

Sublime Text

Sublime Text has been around for years and years. It used to be the default text editor for many developers. I continue to use it because it is extremely lightweight. Nowadays, however, my preferred text editor for development is Atom.


The folks at GitHub have done a great job with Atom. The popularity of Atom has exploded since its introduction several years ago. It is great to use, easy to expand, and continuously improving.


Despite the recent kerfuffle about Dash, it continues to be the best documentation browser for developers. It also sports a snippet manager and integrates with a range of other applications and IDEs.


Even though Base hasn't been updated for over a year, I continue to use it for browsing SQLite database. It does its job well and I have no complaints. Sometimes an application is great as it is.


Over the years, Charles has saved me countless hours of debugging. Charles is an application for debugging network traffic. It has been around for many years and does an excellent job. My only complaint with Charles is the lack of a native client for macOS.


Black Pixel is known for crafting beautiful products and Kaleidoscope is no different. For a file comparison tool, it may be a bit too expensive for some developers, but I don't regret purchasing Kaleidoscope. It works great and integrates nicely with Tower.


AppCode gets a lot of praise, but I haven't given it a fair trial yet. For now, I am sticking with Xcode.

Xcode has evolved dramatically over the years. For Swift development, it still isn't ideal. Compiling takes quite a while for larger projects and Xcode frequently decides code completion isn't that important after all.

Complaining about Xcode is a tradition I suppose. But let's be honest, Xcode does a pretty great job most of the time. Right?

Stop Writing Swift That Sucks

Download the Swift Patterns I Swear By