I’ve gradually refined a collection of tools and utilities that help with day-to-day development. Some of these tools actually help the process of writing or organizing code, some help collaboration with designers, others help with testing. All, I recommend and use on a regular basis.
I use this software every day, and second only to Xcode, it’s my most used development tool. For me, Tower is a game-changer when it comes to working with Git repositories, making every Git task an order of magnitude easier than using the command line.
Key features Drag and drop merge, pull, cherry-pick. Easy conflict resolution. Ability to undo everything. Partial stashing. Pull requests.
Kaleidoscope is the ultimate companion to Tower. What Tower does for Git, Kaleidoscope does for diff! The way I use the two is that when I need to resolve complex merge conflicts, I have Tower open the relevant files in Kaleidoscope and then I save the changes back to my working tree.
- Seamless text diff visualization and bi-directional merging.
- Image diff… compare two images visually.
- Easy navigation between folder scope and file scope.
xScope is a truly magical piece of software. Imagine having a virtual ruler you can put on the screen and accurately measure the dimensions of anything in pixels or screen points… that’s what xScope does. Along with so much more! I use xScope a lot when I’m doing UI work and I get handed a rendered design with no access to sizing or colors. It’s also useful as a testing tool for double-checking the code, to make sure it is doing what it is supposed to.
- On-screen ruler, guides, and crosshair.
- Loupe tool to magnify and measure colors.
- Visualize designs as they would appear on different devices.
#4. VMWare Fusion
Often it’s not enough to get an idea of what something would look like on another platform, you need to actually build or test on those platforms too. This is where VMWare Fusion comes in. Fusion lets you run Windows, Linux, and even older versions of macOS on your Mac. Key features
- Run other operating systems and different versions of those systems on your Mac.
- Run specific applications outside the virtual machine as if they were native apps using “unity” mode.
Quite often, the software will involve interacting with external web services. This could be Dropbox for sharing files with colleagues or Amazon S3 for large scale file serving. Transmit handles all of these diverse services and protocols in one user-friendly interface.
- Store drives and servers you use regularly, to access with one double-click.
- Sync lists of logins between devices.
- Drag and drop copy, and easy permission setting.
- Easy API key setup.
As someone who works fully remotely, often our team will want to share demos or screen captures to illustrate bugs for review. ScreenFlow makes this process super easy. In addition to capturing the screen and sound, it can also highlight mouse clicks and display pressed keys. It also makes an excellent usability testing tool, for recording user interaction. Finally, it is a capable-enough video editor for making simple promotional videos.
- Simple user-friendly interface.
- Capture screen as well as webcam for picture-in-picture.
- Video and audio editing capabilities.
- Ability to add captions and annotations.
Whilst none of these apps are exactly cheap, they will all add significant value to your workflow. Over the years, these have become my “go-to” apps to assist with various aspects of development, and they keep improving year after year. I feel that investing in quality tools is well worth it because of the time it saves and the productivity gained. What are some of your favorite tools to assist development?