In general I'd like to understand which templates to use when, when I'm making new iPhone apps. Could anyone offer some guidelines, tips, rules-of-thumb?
Also, how much should I agonize over this? If I start off with the wrong one, can I add the missing pieces manually, is it hard?
For reference here are the choices I'm seeing:
- Navigation-Based Application
- OpenGL ES Application
- Tab Bar Application
- Utility Application
- View-Based Application
- Window-Based Application
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:
If your app looks like 'Contacts', use Navigation-Based Application.
If you're writing a game (or something that looks like one), then OpenGL.
If you're writing something like 'Calendar', then use Tab Bar App.
Hope this helps.
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.
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.
Also note - there aren't that many templates.
Create a new project for each one, Build and Run immediately, and you'll get an idea what you need.