Quality Coding

What Are Your Favorite Tools for Productive Programming?


I’m always on the lookout for new tools. Are you? Anything that might increase programmer productivity is worth a look.

You know that I’m a big AppCode fan. It saves huge amounts of time. And doing so within an IDE helps me stay “in the zone.”

I’ve shared about 6 Simple Power Tools for Better Git Use. Thanks to reader comments, I learned about Oh-My-Zsh for command-line, and SourceTree for GUI. AppCode also provides great Git support.

So I’d love to hear more from you. What are your favorite tools for productive programming? Click here to share your tips!

About the Author Jon Reid

Jon is a coach and consultant on iOS Clean Code (Test Driven Development, unit testing, refactoring, design). He’s been practicing TDD since 2001. You can learn more about his background, or see what services he can bring to your organization.

follow me on:
Disclosure: The book links below are affiliate links. If you buy anything, I earn a commission, at no extra cost to you.

Leave a Comment:

Maxim says last year

Hi Jon! Ur links a little bit broken ;)

Tomasz Szulc says last year

Hi Jon, any of this link is not working.

Ben Smith says last year

Charles is great for inspecting network traffic.

Tomasz Szulc says last year

I am using Xcode on daily basis. AppCode is not option for me because I would have to jump between App Code and Xcode because of Storyboards and Xibs. I can recommend SourceTree as you mentioned, but sometimes it is getting really slow for bigger files so then I jump to terminal :)

I am using Paw for networking, so I can have all requests nicely mapped in Paw and just execute them, all parameters saved. Also it allows to store some variables and pass them between requests – great tool if you work with rest api and with multiple backends or something.

    Jon Reid says last year

    Tomasz, I personally have no trouble having both AppCode & Xcode open at the same time. I switch between them according to their strengths: AppCode for editing source code, Xcode for IB & debugger.

    Didn’t know about Paw — thanks!

Ben Chatelain says last year

I love using Quick and Nimble to test the code I’m writing. I find the BDD-style testing approach to put me in the right mindset for creating good APIs. Both frameworks can be used with either Objective-C or Swift.

Ken Luke says last year

Alfred: If you’re a touch-typist and you don’t use this then you’re wasting time that you could be coding.

Reveal: Explore and edit the view hierarchy of running apps.

PaintCode: Nice for making custom buttons and other UI ornaments.

Paw: Another vote for Paw.

SnippetsLab: Great tool that recently added support for searching via Alfred, now it’s awesome.

As a side note Jon, I just started evaluating AppCode based on your recommendation and unless I’m missing something, the Swift refactoring seems to be pretty much absent from the latest version (2016.1). Is that all there is or is it a work in progress and I should expect more functionality in the future?

    Jon Reid says last year


    Similar to Alfred: I use Quicksilver. I like creating custom actions, like entering a ticket number which then opens in our issue tracker.

    Regarding AppCode: No, it doesn’t support Swift refactoring yet. They’re working on the editor, which is no doubt tricky with a moving target. The first refactoring they plan to implement is Extract Variable and Inline Variable. I bet in order to take those “simple” steps, they have to solve a lot of problems about manipulating Swift code as an Abstract Syntax Tree — not a trivial task. But I also guess that once they get that in place, other refactoring will follow quickly.

haritowa says last year

Alfred + workflows (take a look)

Postman is really cool tool for test/explore api

Pusher make testing push notifications dumb-simple

Paintcode | Core Animator | Quartz Code, xScope, Pixel Winch, Dash, Paste, SwiftGen, MakeAppIcon, Zeplin, should i go on?)

Chris Carr says last year

* Paw for REST API exploration & testing
* Reveal for UI debugging
* Dash for viewing & searching documentation

    Josh Brown says last year

    I second each of these three tools; they’re all excellent and big productivity boosters for me.

Raimon Lapuente says last year

I use:
Postman: for REST api checking.
Charles: for network inspection (with appropriate certificates works on https)
Reveal or IB: for inspecting UI
Deploymate: for API version checking
Watchdog: to clean derived data automatically

Add Your Reply