For anything nontrivial, IB is more of a hindrance than an aid. You probably are constructing the view programmatically.
For anything nontrivial, IB is more of a hindrance than an aid. You probably are constructing the view programmatically.
And of course, this tool isn't just for UI tweaking. It's for any kind of messages you might want to send to objects. It's an object spelunker.
Many times I find it difficult to select a subview under another subview. Or, when adding a subview, it is too eager to be the subview of a subview. Those are the tip of my list of grievances.
I use it! Sometimes it's simpler and faster to go with IB instead of code, and you are definitely right about maintainability. But I sure wish there was something as convenient that wasn't awful to use. That's actually how I feel about all of Xcode. (Yes, I've tried AppCode, I liked it even less.)
I've worked on a number of large iOS projects over the last four years — I tend to select whether or not to use IB on a per-project basis. About 60% of our projects end up using IB for the majority of their UI layout.
Recently we built a very large educational app for teachers. IB was great — we had a number of key storyboards, most of the design happened very fast. We developed strict standards by which we developed further styling in code (for things that IB couldn't handle like pattern images, and stretchable images).
Merging Storyboards was a bit of a pain — which was exacerbated by the fact that it's much easier for multiple developers to touch a single storyboard than to touch a single xib. But using DiffMerge as our default git mergetool makes things better.
There are definitely times when IB is not suitable — especially if you want to develop reusable dynamic layouts or controls.
But when you have strict specs, designers working on the project in advance, and clients signing off on particular designs, IB is great.
Out of curiosity, have you maintained any of your large projects over a long period of time? Did you have any issues with nib files (i.e lots of duplicated bugs? re-introduced bugs? etc?) Personally I've avoided nib files like the plague because of this, but I'm curious as to how others deal with them.
That said, merging xib's is a pain in the ass. I wish they were more like Android's human readable layouts.