A lot of students who come to learn iOS App Development ask me this question. There are a lot of people who don’t even know that there is another way to develop apps. For those who are new to app development let us have a look at 2 approaches towards app development.
Interface Builder: Interface Builder is the mechanism for making an iOS App by simply dragging different view elements from the side bar & dropping them on to your app screen.
his way the developer can immediately see how the app is going to look without running a simulation. The GUI based design makes it very easy to configure the view components to your need very quickly. Remember that just because you choose to develop your app using Interface Builder doesn’t mean that you won’t have to write a single line of code. Far from it, you will still have to write code to get your app working.
Programatic Approach: The other approach is to make every thing on the fly. The developer writes code that is required to display the desired view components.
The view components are also configured in the program itself. In this approach the Interface Builder is not used at all.
Now for the million dollar question. Which is better? The thing is that it basically depends on what your end goal is. If the app is a very simple app or a demonstrator of possible future apps/ideas, then it might be a good idea to use Interface Builder. However, if you wish to have an extremely high degree of control over your app & be able to do some really fancy stuff then you might want to consider the programatic approach.
Typically apps which require a higher degree of precision over the layout or performance would require many view components to be rendered using code. Games would be a good example of such a situation. However, if that is not the criteria then one can design using Interface Builder. This is not to say that apps developed using Interface Builder are less efficient but programming the view does give the developer a higher level of control.
In the end it all boils down to what you feel more comfortable with. People from a strong programming background may prefer to code it all. Hence, the focus shouldn’t be on which approach is better, it should be on how can I get the best possible app on the store.