It’s official.
I prefer Xcode 4.
I’ve been using Xcode 4 almost exclusively the past few weeks and yesterday I had to switch back to Xcode 3 for another project.
I hated it.
I thought the “all in one” window setup would bother me, but I actually find that I like it. It works. It’s not 100% perfect, but I’m actually able to get around a lot better than I could before.
The constant compiling and checking from LLVM 3.0 gets annoying sometimes as you type, but on the whole it stays out of your way and it’s nice to stay on top of problems as they come up.
I’m not sure what does code indexing, but sometimes I use indexing as a shortcut to get to things. It seems the indexer only understands what is actually there. For instance, if I started invoking some new class within a file but the file wasn’t “aware” of the class yet (e.g. no .h #imported), the indexer may not recognize it thus no code completion. There’s some other quirks in this area, which get frustrating, but again you manage and hope the edge cases will be solved in future versions. If I can nail down a good repro case, naturally I’ll report it.
I kinda like how Find is just in the left sidebar and not another window. It works.
Still getting used to the debugger layout, but on the whole it’s alright. I’ve been trying LLDB and it’s worked out pretty well, but a few days ago it started registering a bunch of bizarre messages, something about “object so-and-so doesn’t recognize selector ‘count'” which of course was correct but there was nothing I was doing that could have caused that. On a whim I switched to gdb and the problem went away, back to LLDB and the problem reappeared, so to try to get past the problem I just went with gdb. Well… then gdb manifested one of its favorite things to do: go stupid. You step, it doesn’t step… it’s trying to obtain data but gets into some stupid mode and everything just hangs while it tries to time out and your debug session is totally screwed. *sigh*
It’s still hard to get used to Interface Builder being built in, but I do love the integration. It makes life so nice. I do hope there will eventually be a “IBPlugin” solution, including a transition strategy for past plugins and nib/xib’s made with custom stuff. I’m looking forward to writing a new iOS project and taking advantage of the “storyboarding” feature. That seems cool.
As a general statement, Xcode 4 seems to have attempted to simplify and better organize the growing mish-mash of commands and functionality. It’s appreciated and so far so good.
In the past, I always avoided code completion and letting the editor format my code and typing. Xcode has generally defaulted to having that stuff on, but in the past it’s always been more annoying than helpful so I turned it off. But now, I’m actually liking it, especially code completion. It’s working much better, more logically, seems to be more accurate. It feels more help than hindrance. Code autoformatting, I’m still letting it happen, but because it doesn’t do things 100% as I want them it’s a little annoying, but I’m adapting.
Still not totally adapted to the change in keyboard shortcuts, but that too is slowly changing. I still want to hit cmd-1 to bring up the main “info panel” when I’m in IB mode.
Sometimes Xcode does go stupid. I’ve had a couple crashes. But on the whole, I am actually liking it. Again, the most telling part for me is having to step back to Xcode 3 and hating it and missing lots of things that Xcode 4 brings to the table.
All hail progress.