Hacker News new | ask | show | jobs
by rizwan 3912 days ago
Choose whatever works for you. Interface Builder can save you so much time building some of the smaller aspects of your app (help/about screens) etc. that it's foolish in my opinion to just "do away" with IB on principle.

Sure, if you have 1 storyboard for your entire app, and 9 people are working on it, you will have collisions. 9 people on an iOS project is bound to have merge conflicts in code too, unless it's coordinated.

Xcode 7's storyboard references should help avoid some conflicts here, as it breaks up a single, conflict-magnet file into several. Hell, you can organize them like XIB files before Apple started pushing the 1 storyboard "simple" approach to ease the learning curve.

Side note: The title of this post should have been "Reasons we are switching away from Interface Builder", as it doesn't actually answer the question. But then it wouldn't be interesting enough to click on.

2 comments

"Choose whatever works for you. Interface Builder can save you so much time building some of the smaller aspects of your app (help/about screens) etc. that it's foolish in my opinion to just "do away" with IB on principle."

To be fair I never said that we were doing away with interface builder on principle. I also said that interface builder was great for smaller teams.

My main critique of interface builder is that it's not a great fit for larger cross functional teams because it makes code review difficult and it's hard to resolve merge conflicts.

These are not problems that the vast majority of app developers face. These are problems that happen on larger cross functional teams.

Their is a reason that neither Facebook, Airbnb, Pinterest nor uber use interface builder.

Even with 1 storyboard, as long as you don't commit completely unrelated changes, you can still have 9 people working on it just as easily as you can if you split it up into one storyboard per view controller. All this requires is that people actually look at the diff they're committing and omit changes to unrelated view controllers (most graphical commit tools will let you pick the lines to commit).