Google+ Badge

Wednesday, April 20, 2011

Using AppCode from JetBrains for iOS development

Since Xcode annoys me so much I though I would give AppCode from JetBrains a shot even though it is alpha code. I must say so far I am impressed. Not a single crash after have used it for a day and it does solve a number of complaints I have about Xcode.

What is it that I like?

Can reformat your code. Easy to set up the rules, works as expected. I finally took the time to clean up the look of some older code to match our current standards.

Auto imports and uses current Xcode settings. It all just worked when I pulled up my existing project.

SVN works like I expect it to work. So much nicer than Xcode.

Groups sorted alphabetically. Gee, who would every think that could be handy?

Nice color coding in the IDE. More things are colored making them stand out as they should.

Much better static code analysis. Sure some of it is a bit overkill but I found a lot of useful issues that I have cleaned up in the code. It even spots unused includes, tells you when you synthesis a variable but never really declare it, signed / unsigned mis-matches, unneeded typecasting, things you might not be cleaning up in your dealloc, etc.

If you start using a class that you have not imported yet a simple Ctrl + ENTER adds the import to the file.

Editor tabs the way I expect them to work, open a file and it stays open, editor does not replace it during debug or any other time it sees fit.

When you are in the debugger it shows you the actual content of your variables. Take that Apple, I can see what is my NSArray! I can look at strings, integers, booleans etc. How novel!

Column block editing mode. Nice when you need to delete a hunk of code out the middle of a bunch of lines of code. Most editors support this, as far as I know Xcode does not.

I am guessing there is ton of other stuff it does too. Right now it appears to be a keeper. We use IntelliJ for our main Java application so I pretty much know my way around a JetBrains IDE which is a help.

Downside - still uses Xcode Interface Builder (can't blame them here, who would want to rewrite that) so it will fire up Xcode if you attempt to edit an XIB file. Not like I do that very often, generally you create one then spend most of your time coding for it.

I will post more as I get more use out of this IDE. Nice to see some competition in this arena for Apple finally.