The Tools (2017 Edition)

As a developer, I use a lot of tools to get my job done. I love integrating new tools into my workflow that helps me do my job better and faster. Last year, I found a lot of new tools that I adopted into my daily workflow, and wanted to share those and more with you.

Below, you’ll find the definitive list of tools that I use on a daily basis and are part of my default installs on all my new Macs and iOS devices (yes, iOS devices, because sometimes I find myself doing web or Swift Playground work on it as well).

The Mac Tools

  • Xcode – he ever venerable Xcode is a staple on my system and an app that’s guaranteed to be open 24/7 and used every day.
  • BBEdit – I use this for editing JSON, CLI scripts, and other plain text files that are too much of a pain to open and edit in other plain text apps.
  • Tower – I was a long time git CLI user, but switched to Tower a few years ago when I started managing more repos across services. I now use this for managing all of my git repos in one easy to view app that can do advanced git merging and handle different workflows for different repos. I also like the ability to visually diff changes that are going to be pushed and unstage individual lines.
  • Quiver – This is a newer app that I’m trying out that lets me take notes on certain code blocks and keep a coding journal about the code base that I’m working on, complete with code highlighting for snippets.
  • WatchDog – Developed by a friend, this is a must-have app in the Xcode world. It automatically cleans your derived data folder periodically to ensure clean builds with fewer issues.
  • Coda – When writing PHP or hand-editing my website templates, I use Coda because of it’s support for multiple languages, the CSS tools, and really great set of file management tools.
  • Transmit – If I just need to upload files to S3, or move something around on my server, Transmit is the best app for that job. It’s been a staple on my system since the OS X 10.4 Tiger days.
  • OmniGraffle – Flowcharting is still a useful thing to get a point across, and whenever you need flowcharts, you need OmniGraffle because it’s the best. No other apps can even come close to the features it offers.

The iOS Tools

  • Swift Playgrounds – One of my newfound pleasures is writing iOS code inside of Swift Playgrounds when I need to test something out. It’s simply magically futuristic to do that inside of Swift Playgrounds on an iPad. I dream of a day when Xcode is available on an iPad.
  • Coda – Like the macOS equivalent, Coda for iOS is a must-have if you do any web development work or need to edit files on a server.
  • Transmit – I store crash logs and other bits of data on AWS’ S3 servers, and being able to access that while on the go is important. Transmit for iOS is one of the best file management and FTP apps available on the iPad and iPhone.
  • OmniGraffle – OmniGroup’s apps on the iPad are very high quality and nearly the same as their macOS equivalents. OmniGraffle is no exception as it allows me to create flowcharts and edit them on my iPad.

Organization Tools

  • Things 3 – I recently switched from the Reminders app to Things 3 for organizing tasks between various projects. The level of system integration and features makes this a must-have app for managing multiple tasks.
  • Together – I often write in a journal during meetings, and I use this app to hold scans of my notes after the meeting. It stores the documents in iCloud and is synchronized across my iOS and macOS devices for easy searching.
  • Notes app – The Apple Notes app is probably one of the best built-in apps besides Calendar and Mail that I use on a regular basis. It has most of the features of Evernote and other paid services, but does it better and with full encryption. iOS 11 will bring even more features like document scanning that will likely make me transfer my Together documents into Notes.

Communication Tools

  • Slack – Is there much to say here? It’s a chat app that I use with multiple teams and it provides audio chat as well.
  • FaceTime Audio – I really enjoy using FaceTime Audio and Video when I need to contact a team member about a simple question when I don’t feel like typing out the question. It’s free, it works, and the quality is excellent.
  • HipChat – Some clients still use HipChat, and it’s not horrible, it just doesn’t have the features of Slack that I’ve come to love.
  • Messages (good ole’ iMessage) – Yes, I use messages to contact some team members whenever they’re offline and unreadable through traditional means if something urgent comes up.

Hardware

  • Late 2013 Mac Pro – This is my main development machine, and it’s still super fast with it’s 32GB of RAM. I compliment the system with a 12TB RAID array (Promise Pegasus with Thunderbolt 2) and two Apple Thunderbolt Displays.
  • MacBook Pro 15″ (with TouchBar) for when I need to work on development tasks while mobile or away from my main development setup. It works great, it’s fast (although not as fast at compiling as my Mac Pro), and I’ve really enjoyed having the TouchBar on it.
  • iPad Pro 10.5″ (with Smart Keyboard) for writing, Swift Playgrounds development, and web development. I also still have my first generation iPad 12.9″ that sits on my desk and is used for chat apps and development testing.

Services

  • GitHub – It seems like almost all of the code bases I deal with are hosted on GitHub these days. I have a personal plan as well that I use for apps that I write in my side time. It’s a must-have service if you don’t want to host your own git repositories.
  • DigitalOcean – When I need to test some server implementation, or stand up a new server, I usually turn to DigitalOcean. Recently, however, I’ve began using AWS Lightsail and it’s a pretty good alternative as well that’s hosted in Amazon’s data centers and has roughly the same pricing model.
  • AWS S3 – I use this to host files for my iOS apps, as well as a place where unsymbolicated crash reports get uploaded to when an app crashes. The crash reports are symbolicated by my Mac server and re-uploaded to S3
  • iCloud Drive – The day Apple introduced iCloud Drive, I canceled my Dropbox subscription and began using it to store my files, documents, and other project files. It’s fully encrypted, and with the new High Sierra and iOS 11 features (including individual file sharing), this file service is one of the best for Apple users.

Xcode Extensions

I’m not a huge Xcode extension user after Apple changed how extensions work in Xcode 8; however, I do use SwiftLint occasionally.

The Objective Developer is a blog written by Cory Bohon