The advantages and disadvantages of UIStoryBoard are very obvious, leading to severe polarization. Although I made a lot of jokes about storyboards below, I still love storyboards and recommend that teams of less than 10 people switch to storyboards.

The disadvantage of Storyboard

1. Storyboard is not a panacea and has many limitations, so some interfaces must be implemented with code. This leads to the separation of the same interface implementation and the need to consider the order of execution if a control is changed in BOTH IB and code. It is not conducive to later maintenance.

2. The interface edited in Storyboard cannot add comments or other special marks, resulting in the confusion of the custom values and default values, which is very bad for later maintenance and requires comparison during modification. Expect the next Xcode update to add automatic bold for custom values, which is already available in XcodeProj files.

3. Add a link, because it’s hard to see what was changed in the version management tool, so it’s still not suitable for large teams.

4. When each control in Storyboard is mixed with any other, the best practices are different, which greatly increases the cost of learning. Also, Apple changes storyboards every year, which can cause interfaces that are already implemented to need to be rewritten.

5. Baffling problems often occur in Xcode and Interface Builder, and these problems are occasional and often occur only once, so it takes time and effort to solve them.

The advantages of the Storyboard

1. Conflicts in Storyboard versioning are no longer a problem and can be easily split. IOS 9 used to have third-party libraries, but iOS 9 came with Storyboard reference.

2. Forced separation of view Code and Controller Code, so that Code will not be mixed without a strict Code Review. I’m tired of seeing the view Code, navigation Code, and Controller Code mixed together in some projects.

3. The new Xcode 6 features @ibDesignable and @ibInspectable will largely do what you see is what you get, but severely test Mac performance. Be patient in your study, for the above shortcomings often appear.

4. If you are skilled in using Storyboard, you can write less view code and glue code, which can greatly improve the coding speed.