As an iOS developer and productivity junkie, I’m always on the lookout for tools that can streamline my workflow. The following is a collection of software tools that I repeatedly find myself going back to while working with top-tier tech companies and startups in the San Francisco Bay Area.

UI Development Tools

Reveal is like the Xcode view debugger on steroids. It does everything that the built-in view debugger does and then some. And did I mention it’s faster, too?

Some of the coolest features are live editing your frames, edge insets, and more. You can see what your changes look like on the Simulator or device immediately.



It’s also a great tool for exploring an app you’ve never worked with before. You can click on a view and see the class name right there in Reveal, making it easy to find the code creating that view.

The setup takes a second, but it’s definitely worth it. I use the Xcode Breakpoint method, so as long as breakpoints are enabled when the app starts up, Reveal will be watching and ready for action.

xScope is a great tool for making your apps look pixel perfect. Use this to get distances, measurements, colors, and other things design-related.



I use xScope to inspect both designer mocks and the UIs I’m creating on the iOS Simulator. The Rulers, Dimensions, and Loupe are my most used tools. Just make sure your Simulator and any design mocks are in a “Pixel or Point Accurate” mode so the numbers reflect what you see in the code.

With xScope, working with your product designers will be easier than ever! Unknown colors and missing redlines are easily remedied with the tools xScope provides.

Networking Tools

This HTTP debugging tool is essential for viewing the API traffic going to and from your app. The learning curve for Charles isn’t always easy, and the interface isn’t great, but it is an extremely powerful tool.

Sometimes I’ll get assigned a new feature that isn’t fully specced out, and instead of asking everyone for the structure of the endpoints or what endpoint is hit on a certain page (which can be error-prone and out of date) I can load up the app and see for myself.

It’s also a great tool to make sure your HTTP requests are formatted as you expect. Most of this investigating can be done using breakpoints within your IDE, but depending on how complex your networking code is, it can be much easier and faster to get the information you need within Charles.

If you need to debug loading indicator bugs or other networking dependent app functionality, Charles can simulate a slow network as well.

Follow two steps to use Charles for secure traffic on iOS:

Install Charles Root Certificate on simulator or device Enable SSL proxying for the locations you specify under Proxy > SSL Proxying Settings

*Keep in mind: if you have Charles running while you try to access a website with the same base url as the API you’re using, your browser may block you since it will notice a man-in-the-middle attack (which is you using Charles).

Once you find the endpoints you want using Charles to sniff and watch all the traffic, you can use Postman to test the requests outside the confines of your app. It’s nice to test out the endpoints you’re using to make sure they work as expected. You can make all the different kind of HTTP requests and more.

Use it to keep track of parameters, add auth headers, save endpoints for future use, share endpoints and payloads with teammates, and lots of other features to help you organize all the API endpoints you’re dealing with.

Next time someone sends you a URL endpoint that you usually put in your browser, put it in Postman instead, and you’ll get way more information. You can set up authentication keys to simulate everything just like a user from your app.

You can save previous requests, so if you see something broken on your app, you can load up Postman and make sure the server is working correctly before you even look at the native code. You know it’s always the server’s fault, but with Postman you’ll have proof.

*If you have direct access to a database, this might also be where you check the database with software like Sequel Pro to make sure your flow is working before you start to build the UI on a broken server flow.

Productivity Tools

SmartGit (or other Git GUI program)

As much as I love the command line, a Git GUI program is essential for checking over your changes before you commit them. I really like SmartGit because it has a great side-by-side comparison where you can see the file exactly as it was before and after your changes. You can also do one-line reverts and other changes within SmartGit as you’re reviewing all of your changes.

Resolving conflicts after a rebase or merge is another time when a Git GUI program can make your life easier. Often, you can go directly into the code and find the conflicts via angle brackets, but SmartGit provides a 3-way compare view where you can see “theirs,” “yours,” and the combination that you can edit right there in the software, giving you full context on why the conflict occurred.

Gifox (or other gif capture program)

As you’re developing, you’ll often need to share some flow or animation with other people on your team. For screenshots you can always ⌘+S on the iOS Simulator, but for videos you’ll need some extra software. Gifox is an easy way to make quick, short animations and send them to your teammates to show off a bug you’ve found or feature you’re developing.

I use them for most pull requests to share the before-and-after of the flows I’ve changed. It’s a great way to share updates with your product designer and other team members to make sure you’re on the right track.

Giphy Capture is another great free gif creation tool, but I find is has slightly more overhead in saving, which makes me prefer Gifox for shorter videos.

Author: In his free time Dylan Harris writes and maintains Bike to Everything.