3 min read
on May 8, 2013
We haven’t gotten around to updating this post just yet
As you read on, keep in mind that while some information may not be completely up to date, this article still contains some useful insights.
Learning a new programming language has always been fun for me. That’s why my job as Manager of Client Solutions at PubNub is literally a geek's dream — it involves working closely with our cust…

Learning a new programming language has always been fun for me. That’s why my job as Manager of Client Solutions at PubNub is literally a geek’s dream — it involves working closely with our customers to provide client SDKs to them in over 50 different languages!

Since I started working here, I’ve been stocking up on O’Reilly books and honing my skills in many of these languages, such as Android, Flash, Java, J2ME, JavaScript, Ruby, PHP, … the list goes on and on. But the one language I’ve had the hardest time getting my brain around has been Objective-C for iOS development.

Objective-C is very ugly, and not at all easy on the eyes. It has many sharp edges due to its use of square brackets, and by design it’s very verbose and syntactically-bloated. Its friends don’t invite it to the beach or the mall anymore, and at parties, it hangs out in the corner of the room, sober and alone.

In order to really embrace it, one must get past its physical appearance. I tried. And tried. And eventually, I did. And once I did, and learned to appreciate it for what it is, like probably everyone else who has done iOS development, I began hacking around with XCode.

For those who are unaware (as I was until recently), XCode is the all-in-one, Super-IDE, provided by Apple via the iTunes store.  Nearly all tutorials, HOWTOs, etc. reference this IDE in their documentation. If you try to develop on Linux or Windows for iOS, good luck — you will have a hard time setting up the open source dependencies and libraries required to achieve this. It’s totally possible, but takes a lot of time, and if you have any issues during coding or compiling, a select few will be able to assist you with your issue, as many people would normally say “Ok, in XCode, did you try clicking this then that?” You can probably see where this is going.

“SO!” you may say, XCode is only available on Mac, and it’s basically the only supported way of doing iOS development. Apple makes things that are shiny and expensive that everyone MUST LOVE! iPods were awesome, Newton was awesome, so XCode must be awesome! Actually, nope. It kinda sucks. I can honestly say that MS Quick C 5.0 had an easier-to-use QBasic-based IDE than XCode provides.

Although there are ways to extend it via plugins, the base, Apple-supported IDE is pretty weak in features. For example, you can only open two tabs at a time, there is no quick and easy way to reformat code, and the code-commenting logic gets confused by indentation. I can go on and on, but I won’t because there are articles dedicated to how much XCode sucks already out there.

I asked some iOS developers what they were using, and Jetbrains AppCode came up a lot. So I gave it a shot. And I must say, it’s AWESOME!  I may be biased, as I am no stranger to Jetbrains IDEs…

I was first introduced to RubyMine a few years ago, and was dazzled by how awesome and easy to use it was.  As I now need an IDE that can support nearly every language on the planet here at PubNub, I began using Jetbrains IDEA to fill that niche. Aside from the awesome features that you come to expect in an IDE (code reformatting, multiple tabs, debugging tools, built-in diff tools, etc) one of the best things I have become accustomed to with IDEA is the consistency of keyboard commands for a given task, regardless of the language I’m working with.

AppCode has a very similar look and feel to that of IDEA. So for me, the learning curve was dramatically reduced (I already knew how to debug, compile, diff, etc. using IDEA, so figuring it out with AppCode took me seconds. The only real obstacle I ran into is the key bindings, as I’m coming from IDEA on Linux via a PC keyboard. But you can’t have it all, can you?

I would say if you are a fan of IDEA or any of the other Jetbrains IDEs, and you either want to learn iOS development, or are looking for an alternative to XCode, AppCode is awesome. You should still get acquainted with XCode, as you will need it every once in a while, but AppCode has made learning iOS not only tolerable, but actually FUN!

Happy coding!

More From PubNub