New iPhone App - How to Choose which Xcode Template to Use? New iPhone App - How to Choose which Xcode Template to Use? xcode xcode

New iPhone App - How to Choose which Xcode Template to Use?


In iPhone Development Quick Start, from Apple, you have a brief description of each:

  • Navigation-Based Application. An application that presents data hierarchically, using multiple screens. The Contacts application is an example of a navigation-based application.
  • OpenGL ES Application. An application that uses an OpenGL ES–based view to present images or animation.
  • Tab Bar Application. An application that presents a radio interface that lets the user choose from several screens. The Clock application is an example of a tab bar application.
  • Utility Application. An application that implements a main view and lets the user access a flipside view to perform simple customizations. The Stocks application is an example of a utility application.
  • View-Based Application. An application that uses a single view to implement its user interface.
  • Window-Based Application. This template serves as a starting point for any application, containing an application delegate and a window. Use this template when you want to implement your own view hierarchy.


Start with your prototype and possibly wireframes and then the correct template should jump out at you.

If this does not work for you, then:

  1. If your app looks like 'Contacts', use Navigation-Based Application.

  2. If you're writing a game (or something that looks like one), then OpenGL.

  3. If you're writing something like 'Calendar', then use Tab Bar App.

Hope this helps.


If you don't know what template to use, it seems like your idea needs some refining. Usually, the app idea lends itself specifically to one of the templates.

And no, you shouldn't agonize over this. If you start with the wrong template, you can add the missing pieces without much effort. You can even create a brand new project with the template you want and see how they do it, and just copy that in your program.