top | item 2858152

Poll: How do you use XCode?

42 points| stephth | 14 years ago | reply

I'd like to get an idea about if there's a substantial space to innovate in developer tools that target iOS/OSX, or if XCode is seen as the canonical all-in-one tool by most.

67 comments

order
[+] SiliconAlley|14 years ago|reply
Doing professional iOS development (and hobby projects with the platform), I've been spending a minimum of 8 hours a day in XCode 4 and there are a lot of really big issues. My foremost grievances:

- A bizarre tab design that, despite the ~month I've had to get accustomed to it, is still compromising my efficiency

- An inability to cope with external modification of project files (e.g. update/merge will often break your project configuration unless you quit the app beforehand)

- Project files maintain their own fake directory structure (groups) when in nearly all cases you just want a 1-1 mapping to what you've got on disk.

- There are an abundance of pretty conspicuous UI bugs the Interface Builder component/panel (e.g. UI elements failing to draw)

That said, I'm a big fan of the humorous error dialog I get to see every couple of hours asking me if, after the application's encountered a critical exception, I'd like to "continue" or "crash".

[+] cageface|14 years ago|reply
Project files maintain their own fake directory structure (groups) when in nearly all cases you just want a 1-1 mapping to what you've got on disk.

I've been using IntellJ for the last few days and was shocked when I tried dragging a file from one folder to another and it just merrily moved it for me. I can also just drop a .png in the right directory and IntelliJ not only adds it to the project, it also registers it as a resource I can refer to directly in code by ID. XCode makes this kind of thing such a pain in the ass.

I've also forgotten how useful a refactoring tool that actually works can be.

XCode is a perfect example of the strengths and weaknesses of the Apple approach. It's more consistent and requires less setup than third-party IDEs, but if you want to bend it a little beyond its comfort point you're SOL and you have no recourse because nobody is dumb enough to challenge Apple on its home turf.

[+] dgallagher|14 years ago|reply
It's definitely buggy (ver. 4.1). In general, save often and you should be OK. It tends to crash on me about once every other day. Apple will probably squash the bugs in due time, but it's definitely less stable than Xcode 3.x was.
[+] cageface|14 years ago|reply
Cocoa without first-class autocomplete is too horrible to contemplate. Unfortunately my 2010 MBP, which ran XCode 3 quite well, doesn't seem to be up to the task of running XCode 4. You know something is wrong when XCode makes Java IDEs look lean & snappy.
[+] tilltheis|14 years ago|reply
I'm on a 2009 MBP and have no such problems. Don't know where they could originate from, though.
[+] stephen_g|14 years ago|reply
I think there's something wrong with your system... I was running XCode 4 on a 2006 Macbook (the one with a Core Duo processor), and it worked fairly well. Not as well as my 2011 MBP but it was still usable.
[+] jarin|14 years ago|reply
Are you using the new disk-wide FileVault in Lion? I had to turn that off because it was making MacVim and XCode both run horribly slow (apparently they both write to disk constantly).
[+] sehugg|14 years ago|reply
You really need 8 GB of RAM to make it dealable.
[+] gfodor|14 years ago|reply
Jetbrains is making a go at it:

http://www.jetbrains.com/objc/

The killer app for this will be that you can install their VIM plugin, so you get VIM bindings inside of a first-class Obj-C IDE.

[+] rodh257|14 years ago|reply
These guys will be a great indicator of whether there is room for innovation or not. Jetbrains make great stuff.
[+] mathrawka|14 years ago|reply
Their VIM plugin crashes using RubyMine for me so often that it is very hard to use. When it crashes, you have to restart the entire program or disable it. If you choose to ignore the error and continue, you may be unable to enter text at some point.
[+] allenbrunson|14 years ago|reply
Man, I'd be really wary of trying this, even if I knew most programmers hated Xcode. I don't think you could find a worse platform to build dev tools for than Apple's.

For one thing, it's awfully complicated: think about stuff like the iPhone simulator. For another, Mac users are notoriously finicky. Personally, if you came up with an alternative that was great in almost every way, but was as graphically ugly as Eclipse, then I wouldn't switch. I'm kind of sad that years of Mac use has made me care about this kind of thing, but there you go.

Finally: Codewarrior. When Apple made the switch to x86, the Codewarrior guys decided that was one sea change too many, and gave up the fight. On the other hand, you could argue that that project was mismanaged for many years before that, and was likely to topple sooner or later.

[+] jarin|14 years ago|reply
I think it MIGHT be worth it for some specialized niche that isn't covered yet, but yeah I've tried several Rails-oriented IDEs like RubyMine, etc. and nothing really "feels" right compared to XCode. For some reason, using Eclipse doesn't really bug me that much on Windows, but on OS X it's just really frustrating.

I'd argue that it would be very difficult to make a better XCode or a better vim, but there's probably room for a better TextMate or "XCode for ____".

[+] cageface|14 years ago|reply
Yeah I think this is a losing proposition, just like trying to compete with iTunes on the Mac. The Jetbrains guys may find a niche here with their Objective-C IDE, but they've already done so much of the groundwork that it's much less risky for them.
[+] mikeash|14 years ago|reply
Regarding CodeWarrior, the project was definitely on life support for years beforehand, as they never really put their weight behind the transition to OS X. Regarding the x86 transition, they probably wanted out by that point but they really had no choice, as they had sold their x86 compiler tech (IIRC to Nokia) just a couple of months before.
[+] tptacek|14 years ago|reply
I tried for awhile to get a workflow going with Xcode and Emacs, but came to the conclusion that I just have to suck it up and use Apple's tools front-to-back to build Cocoa stuff (that may just be me; for instance, I think Marco Arment uses TextMate alongside Xcode).

I don't use Xcode for anything but that; notably, if I'm writing C code, even C code that I might end up calling from Cocoa stuff, I'm doing it in Emacs.

[+] mrcharles|14 years ago|reply
I wish there were third party tools that handled cocoa properly. I can't stand Xcode 4, the whole thing is atrociously bad, especially with limited screen real-estate (I do all my iOS coding on a 13" MBP). With Lion, animations in Xcode now chug and choke.

It really is one of the worst development environments I've ever used. Of course, I'm also spoiled, having used Visual Studio for most of my development career. And though that has its warts, it rarely gets in the way of letting you develop, and when it does, someone, somewhere, has written an extension that fixes it.

[+] DamagedProperty|14 years ago|reply
I have a 13" MBP but I also have a 23" external monitor. I love Xcode 4. Much better than 3. I have used Visual Studio and currently use Eclipse at work.
[+] RandallBrown|14 years ago|reply
I'll take Xcode 4 over the abomination that is VS 2010. It's like VS 2008 but slower and purple.

I do hate the way Xcode 4 does tabs though and it's the one thing that I wish it did like Visual Studio.

[+] stevenwei|14 years ago|reply
Totally agreed. Xcode 3 was fine, but Xcode 4 feels like they just changed it up for the sake of change without actually adding any improvements. The integrated interface builder is particularly awful.
[+] tmlee|14 years ago|reply
i am still using a 13 inch 2009 mbp. up-ed the RAM to 8gb and it works great with Xcode4!
[+] jarin|14 years ago|reply
I find myself trying to do vim keystrokes in XCode, but I've tried using vim for editing iOS code and it's just not as enjoyable as using XCode. I use vim for everything else, though.
[+] holman|14 years ago|reply
I'm forced to download and install all seventy gajillion gigabytes of it in order to get OS X to build anything in different languages like Ruby and Python.

I'd love it if I could just download build tools from the App Store rather than installing all of Xcode itself.

[+] Zev|14 years ago|reply
Begrudgingly. But, I've probably just turned into a curmudgeon who prefers the now-deprecated Xcode 3.

I don't dislike Xcode 4 enough to start using TextMate and xcodebuild/xcrun, though.

(In case my choice wasn't clear, "Project management and editor".)

[+] pagekalisedown|14 years ago|reply
Xcode 4 is so incredibly slow for me, I edit my code in TextWrangler and limit myself to testing with Xcode.
[+] 5hoom|14 years ago|reply
I've got no issues with xcode4 as such, however it has made some significant changes under the hood from xcode3.

My problem is it seems quite a few libs & frameworks I use for iOS are designed for xcode3 & tend to be break in xcode4 without significant tweaking & hair-pulling.

But hey, plugin frameworks & project templates are for wimps anyway ;)

[+] SeanLuke|14 years ago|reply
Actually, I use XCode solely as an editor. No project management, no iOS/Mac development.

Sadly, your poll didn't consider all permutations.

[+] stephth|14 years ago|reply
You're totally right. Just added. You're the first to note it, so I'm hoping the late addition won't be too prejudicial for that option.
[+] pux0r3|14 years ago|reply
If I could find an easy way to ditch XCode and still do productive iOS development, I'd abandon it in a heartbeat. The one saving grace of it is that it supports a decent number of Emacs style text editing shortcuts (a side effect of OSX using Command rather than Control for normal shortcuts).
[+] chubs|14 years ago|reply
I think a good place to start would be making a vim binding for xcode. Realistically its very difficult to escape the xcode ecosystem, however vim bindings would probably be enough to make it great.
[+] msutherl|14 years ago|reply
This would make me _so_ happy. There used to be an InputManager hack that could give you Vim bindings in all Cocoa apps, but alas that no longer works. Sometimes I wished I'd learned EMACS instead so that I could reasonable expect key-bindings in non-console apps.
[+] lobster_johnson|14 years ago|reply
Xcode is broken beyond repair. There are too many horrible problems with it to mention, but some pet peeves:

* The tabs. Xcode 3's file switching was terrible, but it felt impoverished, not dysfunctional. Tabs should not work like a web browser, it just doesn't make sense. (Oh, closing the last tab closes the entire project! WTF!)

* The lack of correspondence between the files/folders in the project and the file system.

* The project settings. They were awful and incomprehensible in Xcode 3, they got even worse in 4.

* Some colours are not overridable. For example, the background colour given to lines that have warnings make it near-impossible to read the text in themes with dark backgrounds. Example: http://dl.dropbox.com/u/12091499/xcode_screenshot.png

* The navigator/utility/assistant editor system is broken. Why can't I have the symbol navigator visible at the same time as the project navigator, like in Eclipse? Why not generalize the different panes/subwindows into a consistent system where I can drag stuff around to create a layout of my choice?

* Toolbar is not editable, unlike most Mac apps.

[+] niels_olson|14 years ago|reply
"to meet macports dependencies" has gotta be on the list!
[+] nolanw|14 years ago|reply
If I could, I would answer "As little as possible". If there's anyone building towards scripts that will, say, build an app and run it in the iOS simulator without using Xcode, I'd love to dive in and help out. Otherwise, someday I'll get to writing them.
[+] stephth|14 years ago|reply
I develop for iOS/Mac but rarely use it.

I'm surprised to see this one with (currently) almost twice the votes compared to Project management only. If that's your case, what's your workflow?

[+] kelnos|14 years ago|reply
Yes, at the very least you need to use XCode to install the app to a real device and run it. If someone's figured out how to do that from the command-line, I'd be really happy...
[+] asarazan|14 years ago|reply
I have to use XCode for iOS development, but hate may not be strong enough a word for what I feel toward it.

Autocomplete works correctly MAYBE 50% of the time. It works 0% of the time on brand new files. Takes maybe an hour or two to get up to that vaunted 50% success rate.

I'd imagine it may have something to do with XCode's horrendous parsing of preprocessor macros.

Also It either crashes or balloons up above 4GB of ram usage at least once or twice a day.

Can't wait for Jetbrains to get their stuff to stable.

[+] benbeltran|14 years ago|reply
I use it like a boss. That's how.

(But seriously. I love the Xcode workflow, and now that it's better integrated with its own tools and git, I love it more than ever.)

[+] megablast|14 years ago|reply
Loved it before Xcode 4, not hate it with a passion. Sure, I am willing to get used to the different way it works, but the fact I can no longer drag files from other projects makes it almost worthless to me.