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? Share your tips in the comments below!

About the Author Jon Reid

Jon has 17 years of experience doing Test Driven Development in Apple environments. Learn more about his background, and invite him to bring his iOS TDD Workshop 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.
  • Maxim says:

    Hi Jon! Ur links a little bit broken ;)

  • Hi Jon, any of this link is not working.

  • Ben Smith says:

    Charles is great for inspecting network traffic.

  • 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:

      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!

  • 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:

    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:


      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:

    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:

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

  • 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

  • >