What Are Your Favorite Tools for Productive Programming? 

 April 26, 2016

by Jon Reid


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!

Jon Reid

About the author

Programming was fun when I was a kid. But working in Silicon Valley, I saw poor code lead to fear, with real human costs. Looking for ways to make my life better, I learned about Extreme Programming, including unit testing, test-driven development (TDD), and refactoring. Programming became fun again! I've now been doing TDD in Apple environments for 20 years. I'm committed to software crafting as a discipline, hoping we can all reach greater effectiveness and joy. Now a coach with Industrial Logic!

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

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

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

    • Ken,

      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.

  • 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

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}