There are several applications I use on an almost daily basis for Cocoa development. Some of them are merely shortcuts for common tasks while others are indispensable to my workflow.
This list includes some of the applications I have come to appreciate and rely on. The applications mentioned in this article are not free and I am in no way affiliated with any of the companies that create them.
Several years ago, Reveal made a big splash in the Cocoa community. With very little setup, Reveal helps developers debug the view hierarchy of an application at runtime. The first time I used Reveal, I was quite impressed. Even though view debugging is now built into Xcode, Apple's implementation is pretty basic compared to Reveal's.
Reveal is very easy to use and much more powerful than Xcode's implementation. You can browse the view hierarchy, select views, and modify their attributes. Reveal recently added support for iOS 9 and tvOS applications. If you aren't using view debugging or you aren't quite happy with Xcode's implementation, then give Reveal a try by downloading the trial version.
With every major release of Xcode, Apple seems to change the location of the sandbox of simulator builds. Finding the folder you are looking for is painful and cumbersome. That is what the folks over at KF Interactive must have thought when they created SimPholders .
SimPholders started its life as a free application and quickly become a popular utility among iOS developers. SimPholders 2 was released a few months ago and is now compatible with Xcode 7. SimPholders lives in the status bar of OS X. The menu shows you a list of the most recent simulator builds and one click takes you to the application's sandbox. Even though SimPholders is no longer free, I can assure you that it is worth every cent.
There are many utilities for browsing SQLite databases, but Base has been my favorite one for several years. It does exactly what I want it to do without being overly complex or hard to use.
I primarily use Base for debugging Core Data issues, but you can use it for any task that involves an SQLite database. No matter how your application uses SQLite, with or without Core Data, Base is your best friend for debugging. Base supports syntax highlighting, snippets for frequently used SQL queries, autocompletion, and much more.
Every mobile application is connected to the web in some way or form. Debugging network traffic can sometimes shed light on hard-to-find bugs or performance issues. Charles is the best tool for the job that I know of.
Monitoring network traffic is easy, but Charles does a lot more than that. With Charles, you can modify requests, add breakpoints, enable SSL proxying, and much more.
PaintCode is quite unique and I don't know of any other tool for Cocoa development that matches its feature set. PaintCode very much looks and behaves like a drawing application. Designers and developers can use PaintCode for creating artwork, such as icons and controls. But instead of exporting the artwork to various formats and sizes, PaintCode generates drawing code you can use in your application. Why would you want to do that?
There are several benefits to this approach. The artwork you create with PaintCode is no longer tied to a specific screen size or resolution. If Apple introduces a new device model with a new form factor or pixel density, then your application will be ready from day one.
PaintCode has grown into a powerful application with support for Objective-C, Swift, and C#. It also allows designers and developers to import SVG of PSD files. It gives developers the ability to use style kits to make it easy to bundle artwork in easy to use packets in a project. It's pretty impressive what PaintCode can do.
While there are many Git clients available for OS X, I really enjoy working with Tower . It doesn't perfectly align with my needs, but it comes very close, much closer than other clients. The user interface is polished, intuitive, and easy to use. It integrates with may tools and services, such as GitHub, Bitbucket, and Kaleidoscope.
Even though I frequently use Git from the command line, it is nice to have a graphical user interface for browsing branches, resolving merge conflicts, and keeping an eye on projects. Fournova , the company behind Tower, offers a free trial and I encourage you to give it a try.
You may be wondering why I like to spend money on applications that have many free alternatives to choose from. And Kaleidoscope isn't the cheapest solution if you are looking for a diff tool. Kaleidoscope, developed by Black Pixel , is a lovely piece of software. It is my default diff tool and it neatly integrates with Tower, the Git client I mentioned earlier, and SourceTree .
But Kaleidoscope is more than a diff tool for source control. You can compare files, folders, and even images. Even though it has many options, features, and settings, Kaleidoscope is easy to use and gets out of the way when it needs to. Download the trial and give it a try.
What Tools Do You Use?
Developers are known for being opinionated and picky, especially when it comes to software. What applications do you use on a daily basis? Which ones are indispensable to get any work done? Drop your answers in the comments below or reach out to me on Twitter .