I just answered an email from a friend of my dad’s about iPhone app development, and thought this might be interesting to other folks interested in having an app built. It just outlines the steps I usually go through with iPhone app clients to take them from having that sparkle of an idea in their minds to having an app in the App Store.
1. Use Cases. This is work that you would do and hand to your developer. You create use cases for the basic ways in which users will use your app. For example, if your app lets couples place their wedding guests at tables for their reception, these might be your main use cases:
A. Enter guest names & info. This info could include: names, photos, phone numbers, addresses, and +1s (+n for spouse, children)
B. Place guests at tables. This should be graphic and allow the user to see round or square tables with guests’ names or photos in place.
C. See stats. Users can see how many guests have been invited, how many placed at tables, how many tables there are of how many people each, etc.
2. User Interface Design. If your developer has good UI skills, they should do the first pass at this, and you should have a lot of input in this phase. This is done “on paper” (often with a graphics program) and lets you see how the main screens will look.
3. Prototyping. Here the developer creates a working prototype that you can run on your iPhone. This won’t use any real data, won’t save info to the device, won’t connect to any servers, but should allow you to see how the user will go from one screen to another. Some developers skip this step, but I think it is extremely important (I’ve even given talks on it) and saves a lot of time later in the development phases.
4. Graphics. You can do graphics at any point, and often they are done at the end. But I find that it can be hard for people to understand the UI properly if there are clunky or missing graphics, so I prefer to insert some of the graphics into the prototype. They can always be changed later.
5. Data Structure & APIs. The developer will now create the data structures for your app, and any APIs you need for connecting with remote servers (if you want to pull data from or send data to a web site, for example). Doing these before development saves a lot of time.
6. Development, Stage 1. Here the developer will turn the prototype into a functional app. Most of this work is visible to you, like getting all screens in place and hooking them up to real data. After this phase there are sometimes minor tweaks to the UI.
7. Development, Stage 2. Here is where the developer will work on elements that are not as visible to you: connecting with a server, dealing with security, data validation, and lots of other technical details that often take as long as phase 1.
8. User Testing. After the developer tests the program, you and any test users should test the app thoroughly. This stage often comes up with minor improvements.
9. Final changes. The developer will make any final changes you discovered during testing.
10. Submission to App Store. It’s important to remember that Apple has to approve your app. This could take from a few days to a few weeks, and longer if for some reason your app is rejected.
Hope this info is helpful!