Tools of the Trade: Making iOS Development Easy


Let's face it, development has gotten easier throughout the past few years. Gone are the days where you'd have to write all of your code through terminal on your favorite modded vim or emacs editor. Every language almost has an IDE built for it, and at times, we've grown to live with it. Auto-complete that 100-character method? Sure. Insert an image directly into code? You bet. Compile with all the necessary arguments needed to deploy an application out in the wild, for everyone to use? In a nice and friendly list for you to look at.And yet, even with these great luxuries, we still have a tough time dealing with the other aspects of development. Applications deigned by companies (in particular, startups) design and tweak apps in a rapidly-evolving environment. Features, bug fixes, and user interface tweaks become integrated in monthly (even bi-weekly) updates for people to consume. In order to compensate for fast-paced development, we yearn for tools to make the other parts of the development process easier. "Okay, I made this tweak in the user interface, but I don't know how many pixels away this really needs to do I check this with a designer?" "Which branch should I commit to? How far away am I from the current tip of develop, and should I rebase?" "I have 48 merge conflicts in a few classes; how can I resolve this efficiently without trying to understand what this means in the command line?"Thankfully, there are some small groups who have had these same exact thoughts, and have come with a few programs that I use on a daily basis to make my development life 100% easier. These are all paid with a trial, but are definitely worth an investment if you are into software development.


Inspecting the view hierarchy of MyAniList with Reveal.Reveal is an iOS-specific application that allows you to inspect the view hierarchy of your app in real time. Beyond that, it allows you to adjust views, inspect all of the surrounding constraints, and see the change happen on your device! A super useful program for those who are either invested in a lot of pixel-pushing and like discussing the design constraints with a designer, or for trying to figure out why your constraints aren't working. Because let's be honest, constraints sometimes get the best of us. ;) There's a 30-day trial. The paid version is $89, or $59 if you're a student at a university.


Looking at my branch history in Tower.Tower is a powerful GUI for git. Sometimes, there are times where it's sometimes difficult to deal with how far away you are from a certain branch, if you need to rebase, which branches are on remote and aren't in sync with your current local repository...there are a culmination of troubles that only savvy git experts can deal with in the command line. I use a hybrid approach with approaching git: I'll do a lot of my push/pulls/rebases from the command line, but a lot of checking my staged/unstaged/sync status in Tower. Tower alleviates a lot of qualms that git users may suffer from, including figuring out how to manually select individual files to stage, inspect which files have conflicts and resolving them with your own diff tool, and creating new branches and tags off of commits. There is a 30-day trial, and the license to purchase it is $59.


Checking out a diff from a branch in Kaleidoscope.Kaleidoscope is a handy diff tool that you can use to, well, check differences between files. In addition, you can hook it up to git to inspect changes between your commit and a different commit, branch, etc. It works as a merge-conflict tool as well. I use this most of the time for reviewing code at work, as well as checking out what the differences have been from my current branch to the tip of another. I've tried many diff tools, and so far, this one tops the list! This program has a 15-day trial, and can be bought for $69.99. These are just a few of the applications I use to make my development life easier. Which ones do you like to use? Until next time,Corey