Time is money. Faster coding means better gross. But how can you speed things up if your dev skills are at their peak? The answer is simple: use tools! In this article I will show you some tools which help me to code faster and spend my time more efficiently.
Almost everyone knows Alcatraz. It’s an open-source package manager which allows you to manage plugins in an easy way. So let’s take a look at my top 10 plugins:
A simple, non-intrusive overlay which shows the number of signs in the string currently being edited. It can be evaluated in a pop-up where you can provide multi-line text which will be converted into the appropriate inline string on the fly.
Photo by Dirk Holtwick.
An easy and visual way to play with color. It lets you see color from RGB values directly in Xcode, through a little overlay. It’s also possible to open a color panel and use a color wheel/sliders to instantly change the arguments of the colorWithRed:green:blue:alpha: method. Sweet!
Have you ever tried to compile a project but Xcode didn’t allow you to? Instead, it decided to complain about weird errors? I’m sure you know this situation well and know one potential solution. Nuke DerivedData! Although there are many ways to do it, Derived Data Exterminator adds this action straight to Xcode. From now on you can delete all your Derived Data with a single click or using a shortcut.
Tired of writing
NSLocalizedString over and over again? If you’ve had enough, then the QuickLocalization plugin is for you. Change @”Any String” to NSLocalizedString(@"Any String", nil) using option+shift+d. You can also configure this little guy by defining what should appear in comments' place. For me, this is indispensable!
It’s unbelievable how often I used to browse my assets folder to find proper image names. Now KSImageNamed does this job for me and shows images names together with their thumbnails. Neat.
Photo by Kent Sutherland.
Code review is a part of the Netguru lifestyle. Although a majority of bugs are discovered by this process, sometimes questions appear when we’re playing with someone else’s code directly. Then ShowInGithub comes to play. ctrl+C / ctrl+G shortcuts will immediately open commit/file page directly from Xcode. Awesome. Works with both Github and BitBucket.
Switch syntax is very verbose. It clearly shows what should happen under some cases. But inserting values from enum to switch statement can be very time-consuming. SCXcodeSwitchExpander does this job for us. It automatically gathers possible cases and displays the appropriate form. All we have to do is to implement logic. Easy peasy.
Photo by Stefan Ceriu.
Isn’t it great when project source files are well documented? Have you ever wondered how much work it takes? Actually not so much, thanks to VVDocumenter-Xcode. It automatically extracts all method parameters and returns them in a Javadoc style! All the open-source iOS code we’ve written is documented using this plugin.
Photo by Wei Wang.
This plugin adds an autocomplete filter when you’re typing a method name. It uses the same search algorithm as the “Open Quickly” feature and works the same way. From now on, you can type
- cellFor... instead of “- (void)tableView:(UITableView *)tableView ce...” whenever you want to implement “tableView:cellForRowAtIndexPath:” and save some valuable time.
Photo by FuzzyAutocomplete.
This is my favourite plugin. I can’t begin to imagine how could I write my code without it. Use caret position or carelessly select then duplicate, cut and copy lines. Paste content without reindenting. Select methods from a .m file, then copy declarations and paste them straight to a .h file with automatically prepared formatting. All with configurable shortcuts. This and much more is available in XcodeBoost. Definitely worth checking out!
Photo by Michael Fortin.
I spend most of my dev time in Xcode. Nevertheless, here are some applications which I also frequently use while coding.
According to the iTunes Connect Guidelines, screenshots should not include the device status bar. This tool lets you smoothly remove or crop the status bar. Supports both iPhone and iPad screenshots. This small application does exactly one job, and does it very well.
Tired of writing markdown files without preview? Or maybe you are using an editor with a preview button which renders content on demand? With MacDown you can write your markdown file and watch how content is rendered on the fly with handy side by side windows.
SimPholders is a small application easily available from the Mac menu bar which gives you instant access to recently used apps and all installed simulators. Particularly useful when you need to check your application folder and/or have made some changes there. No longer will you need to dig in finder through simulators and app hashes! SimPholders will do it for you!
This is a really helpful tool provided by Apple which is able to simulate network environments with predefined network profiles (like 3G, Edge and so on). It’s also possible to define your own environment by playing with delay, bandwidth and package loss. Network Link Conditioner is available for physical devices as well. But beware: turning on this tool on your Mac will affect the whole network, not only the one provided to the simulator.
A simple, user-friendly RESTful GUI console which makes playing with APIs more pleasant. Rest Console formats responses and makes them easy to read and use. Supports oAuth as well. This plugin requires Google Chrome.
Using LLDB can significantly reduce your debugging time. Facebook created a set of LLDB commands which helps a lot, especially when something bad happens in runtime and is difficult to reproduce. It can take some time to get used to, but it’s definitely worth checking out.
SQLiteManager is a little plugin for Firefox which is able to manage any SQLite database. For me, this is very helpful when working with CoreData. It’s something I feel is missing in Xcode. This manager is my favorite, because of its simplicity.
As you can see, I use a lot of tools during development. Each of them does their job well and saves me time.Thanks to them, I can focus more on my project and deliver better code. What about you? Are you using any other tools which I didn’t mention and you find helpful?
Did you like this article? If you did, you can get more content like this - by signing up for our monthly iOS Brief