Building my first iPhone application. (Part 1)

Diving into the iPhone development world. This is Part 1 of a series about developing an iPhone application for the first time.

iphone_largeI’ve had an iPhone for nearly a year and a half now and it’s the best mobile device I’ve ever owned.  Every week I find a useful way to use my iPhone in the pursuit of making my daily life more efficient, informative and streamlined.  I’ve downloaded many great applications for my iPhone.  I have organizational apps, streaming radio apps, social networking apps, blogging apps and various others I use almost daily.  I often find myself wanting an iPhone application that isn’t available or is not the caliber I’d like.  To that end, I think I have good reason to jump head first into developing for the iPhone.

During this series I will discuss the process of building out an iPhone application.  I will share my ideas, tips, “gotchas” and suggestions.  I will literally be going through the development process during the series so the information should be very relevant and up to date.  I will assume that you are not new to application development in general and I will refer to well known development processes without going into detail about those processes specifically.

The first step: getting the idea out of your head

I’ve developed many online applications in the past and I will be applying much of the very same knowledge and experience to developing this application.  I’ve always found that clearly identifying the features and goals of the application before even one line of code is authored goes a long way towards ensuring the application’s success.  The first step is to document the application so it can be fully explored and vetted.   What problems does it attempt to resolve?  Who will use it and why?  What limitations will the application have on a mobile device?  What advantages will it have on a mobile device?  Having the idea out of your head and fully written out allows you to more effectively explore the idea and put it to full scrutiny.  Often times you will reveal previously unidentified strengths and weaknesses of your planned application during this step, which is why it’s of utmost importance.  Significant time can be lost rewriting code and changing direction if you don’t take the time up front fully documenting your idea and it’s purpose.

Create an application summary in which you document the overall idea.  Be general but try to explain the idea from end to end.  It sometimes helps to write this summary as if it were a story.  For instance, “Jack and Jill are long time friends and have always enjoyed staying in touch and updating one another with the latest in their lives.  Jill will email photos and small videos to Jack.  Jack will write emails and text Jill every few days or so.  Jill recently downloaded an iPhone application that allows her to create a time line of her days with images, video, text messages and emails.  Jack can subscribe to this time line and get near real time updates when an item is added to the time line…”  Get the idea?  You can write out your application as if it were a real thing and in use by others.  Doing this will also set you up beautifully when developing and documenting use cases for your application.

You will want to create a functional requirements document for your new iPhone application.  Functional requirements capture the intended behavior of the application.  You can express this behavior as services, tasks, or functions the application is required to perform.  This is an important document because you will use it to code against once that time has come.  If you keep this information in your head it will be very difficult to ensure you’ve met all the needs of the application during development.

I suggest you develop a user action diagram.  This diagram will show the user’s paths as they interacts with the system.  The information you are trying to reveal here is how the user will move throughout the application.  How does a user go from one step to the next?  When a user performs a certain action where to they go from there?  What happens after a user does this or that?  It is a visual representation of all the paths a user can travel throughout the application.  When doing this you will reveal dead ends and loose processes.  Remember, you want to keep the interaction with the application very tight.  You want your users to flow through every process like water!

During the next post in this iPhone development series I will discuss downloading the iPhone SDK and getting a solid development environment setup.  Stay tuned!  Remember to follow me on Twitter and continue the discussion.  I love discussion.

advertisement

leave a response