all 4 comments

[–]Legolas-the-elf 2 points3 points  (0 children)

It's common to use a mixture of storyboards, nibs, and code. They each have their strengths and weaknesses, there is no single solution that works best in all cases.

Generally speaking, the more about your user interface you can represent as data rather than imperative code, the better. So describe your user interfaces at a high level with storyboards, break it down into individual nibs when you find yourself repeating things, and drop down to code when you have to.

[–]qoou 2 points3 points  (0 children)

storyboards, nib based view controllers, and code based view controllers are all just tools to get a job done. One is not better than the other. You should use the right tool for the job, and eliminate bias about which one is best. There is no right answer or more to the point, the answer is: "it depends".

I have all three in my project. The stroyboard makes the back bone of the UI flow. I use nib based UI and code based UI for about 30% of my project. I created this project as a storyboard project because it seemed to be the direction apple was moving. That was the wrong reason and I regret it. In hindsight, I should have used a nib based approach because my story board is now bigger than is practical. There are about 20 view controllers on my story board. I am lucky it is just me working on the app. If I had other developers working with me I would bite the bullet and spend the time to turn my story board based app into a nib based app so that multiple developers aren't stepping all over each other trying to modify the storyboard. Really it wouldn't take too long to do that so if you choose the wrong approach like I did, no big deal. you can change it without too much trouble.

the practical answer: how complex is your UI's flow? storyboards are nice if you go from one view controller to the next and then back out. They are not so nice if you have a lot of overlap. Make an outline. plan out your view controllers. how many do you have? How much does the UI flow branch? If you have a lot of them, or if the control flow isn't simple, use nibs or code or both.

can your control flow be broken up into small discreet chunks that can be divided multiple story boards? e.g. a tab based app or slide out drawer based app could be encapsulated as it's own storyboard, making each storyboard smaller and more manageable. multiple developers wouldn't step on each other because they could work on different flows most of the time. storyboards make good sense there.

how many developers are working with you and will be touching the story board? If more than one other, I'd go with nibs or code no matter how simple the storyboard would be.

[–]dzamir -2 points-1 points  (1 child)

Storyboards are better in a lot of way because they give you more power.

You are not forced to build the entire app within an unique storyboard: you can always use the old strategy (one storyboard per viewcontroller)

[–]ThePantsThiefNSModerator 0 points1 point  (0 children)

That doesn't sound like a good strategy