The Valuable Toolset for iOS Development

The way to work smarter, faster, and get better results

James Tang
Feb 27, 2014 · 7 min read

I believe in working smarter rather than working harder. With the right tool, you eliminate work that is around the issue, and go straight into the point.

Some tools will cost a bit of money, but those money saves you hours of workaround. You will learn to use better tools, be more productive, and earn more, and use better tools, and become even more productive... Nice karma, isn’t?

Lets start with something more essential.

1. Gitx (rowanj-dev)

Git is a command line code management system, which you should already be using, which is very useful for helping you to manage your code versions. It’s so powerful that it supports feature branches, tags, submodules, logs, etc, and you probably want to have a GUI that shows your commit tree in a fashionable way.

There’re many variants of git clients, such as other forks of opensouce Gitx, Tower, SourceTree, etc.

I highly recommend to not depend on the GUI client for daily operations and learn to deal with commands in git command line. Common ones like push, fetch, merge, tag, clone, etc. This helps you understand and master the concept behind git, and with this Gitx fork, it also provides command line integration which you can easily fire up the GUI with $ gitx, can’t live without it.


We will quickly learn that some of the files should really never be committed into the repository. How you’d tell git is to commit an additional .gitignore file.

You probably don’t want to do it manually on every project you started. Just run the following command:

$ gi xcode,objective-c > .gitignore

3. Reveal

To see UI changes, we used to recompile our app, highly inefficient.

Reveal is a UI inspector, as well as a runtime debugger. You can look into the view hierarchy, update, and modify different properties. This is a real time saver and make you understand a lot more on how your app works.

Its power is not just limited to inspecting our own app. Peter Steinberger showed us how we can also do it in other apps. Sometimes the world becomes better with less secrets ;P.

4. SimPholders

Quickly get access to your application documents directory for your iPhone Simulator apps.

There you can find your database files and persistent storages and caches, such an essential utility to debug applications that provides offline experience.

In case you’re looking for an alternative, there’s another called Folder Simulator.

5. Liya

Looking into Core Data records without a proper tool could be a pain. What worse is that Xcode doesn’t provide a way for you to do so.

Liya isn’t fancy at all, but it’s very light weighted and worked really well without locking up your database while in use. Simply use SimPholder to find an app’s Documents folder, locate the sqlite database files, then start browsing.

7. PAW

Making sure a REST API works properly and knowing exactly how to configure a request would most probably saves you lots of trial and errors without recompiling and going through all the UI hassles.

PAW not just lets you manage your API endpoints, it also caches the results and support environmental variables. It also allows you to save the whole session and reference it later, or to share to the team as well.

What sets PAW apart is it’s code generation tool. Not just simple cURL, but even NSURLConnection/AFNetworking Objective-C code. Working with network requests are so much easier on iOS.

6. Charles

Sometimes you’ll just need to really know what has been delivered in and out of the app. How many times you’d look into console and stretch your head, but not sure about why it went wrong with the API requests and response?

Charles is simply the best network inspector I found. Make sure you know that you can also inspect your real device with a certain setup.

8. Skala Color

Skala Color quickly replaced HexColorPicker as my favourite color picker plugin. With the innovative HUE and opacity panel, it allows a much precise control and also code generation in Objective-C code.

The vanilla color picker in Xcode doesn’t allow you to specify HEX value colours. However it’s basically a standard format for designers and web developers.

This little plugin brings back the power to you. In fact, if we are not HEX colour directly, the manual conversion to 0…1 value results in rounding errors, which actually affects the color displayed on screen. We would always be happier to be able to stick with the design as close as possible.

9. ColorSense for Xcode

I guess one video is better than a thousand words. Such a small useful Xcode plugin that helps you visualize your color in code.

When you use it together with HexColorPicker, working with colors suddenly become pretty enjoyable.

10. FuzzyAutoComplete

You can type a lot faster. This plugin makes your autocomplete works like Open in… feature in Xcode.

It might not be for everyone, but it won’t hurt for trying out. You can also learn some great techniques by reading the project page.

11. CocoaDeveloper Quicklook Plugin

Simply want to know if the provisioning is properly installed? Use this little quicklook plugin and directly see what devices are allowed.

You probably want to use the iPhone Configuration Utility as well to manage your provisioning profile, which has been missing since Xcode 5.

12. Testflight

The official way to beta test your app requires a number of procedures:

  1. ask them for their device id
  2. adding them to your provisioning profile
  3. recompile your app
  4. host the new binary on a server with a version specific meta file
  5. send them the installation link
  6. contact them to click on the link

After all that, you are still on your own to keep track of who has already been sent, and which version they’re on. Testflight provides the hosting, distribution list, installation tracking, crash reports, and even SDK for in-app updates and feedback, which saves you a lot of pain, and it’s free.

Update: Sounds like Testflight is going to discontinue their service, after getting accquired by Apple. You’d be interested in the 7 testflight alternatives.

13. Linguan

At some point you’d really want to sell your app world wide, and Localization became important.

Translation if probably something you’d need help from others, and Xcode has been really bad at allowing others to involve and distributing that task. You had to generate a string file, and it doesn’t help you to do merging, lots of headache.

Linguan must be stepping towards the right direction, it helps you regenerate new missing tokens, and handle the merging for you.

Updates: The link was the original version from @cocoanetics, and it is now maintained by Peer Assembly.

14. Tokens

Such a nice app that helps you keep track of your redeem code. They even send you push notifications when tokens get redeemed.

To become extra productive, I guess someone would want a free copy of PomodoroApp?

Feel free to get updates from @pomodoroapp if you like it.☺

15. PaintCode

Drawing in code could easily suck up a large portion of the development time. Here’s the tool that would save you hours even days of work. I got blown away by checking out their video tutorials, they’re genius.

I would have missed this app without the kind advice from @daveverwer.


That’s it, whats your favourite tool, anything I’m missing out?

I’ve to thank @aschndr for providing comments and number of tools that he’d been using, as well as his kind support on Ripple. Also thank @orta for the updated information on testflight.

We’ve been maintaining a really meaningful discussion in the Ripple iOS Development room, and we’d like to welcome any seasoned developers to participate with us.

Follow @jamztang on Twitter, and you’ll want to follow this collection for more iOS development articles!

iOS Apprentice

We know we have more to learn. It’s a long way.

iOS Apprentice

We know we have more to learn. It’s a long way.

James Tang

Written by

Sketch Plugins and iOS UX Engineer. Opensource projects contributor, share on Twitter. @jamztang

iOS Apprentice

We know we have more to learn. It’s a long way.