You’ve seen the statistics and glowing success stories and you’re interested in writing your first iPhone app. Good for you! If you’ve never developed content for a mobile device, or if you’re new to software development, learning iPhone development can be a fun and rewarding experience. In future articles I’ll be providing you with tips and tricks for getting your first application up and running. However before we jump into the code, let’s take a step back to consider the building blocks of your first app.
Will it make sense to your audience?
As in all things related to software development, the goal of your app will be to provide a solution to a set of end users. In some cases your “solution” could be an answer to a specific problem, or it could allow people to discover something new about their environment. Perhaps the solution already exists on another platform (e.g. desktop, web) but doesn’t exist for the iPhone.
One thing you do know is that your audience is on the go. People who use mobile applications find value in quick interactions with limited user input. They don’t want to use your app to write a Word document. However, people will like your app if they can get the information they need by pressing a button or two. In the case of a mapping application or email, they may only launch the app (with no user input) to get the information they need.
Think “Pocket Computer” instead of Mobile Phone
As an experienced web developer, the first thing that comes to mind when I hear the term “mobile phone” is limited functionality on a screen that’s too small. All things being equal, this has been the typical experience of previous mobile platforms. With the iPhone, think of the device as a pocket computer. For example, many new iPhone users report decreased usage in both laptop and desktop computers. In addition, successful applications like Pandora that have typically struggled in a desktop setting now flourish as a pocket computer solution. When planning your application think about what is unique to the iPhone that can be utilized in your app. If you can figure this out you’ll have the next Bump or Urbanspoon.
Consider the differences between the iPhone and iPod touch
With your cool app idea and a good understanding of your audience, let’s consider the actual hardware and software. Depending on which frameworks (major components of the iPhone SDK) are used in your application, your app may not work on every iPhone device. For example, an application that makes use of the camera, compass or microphone will work on an iPhone but not an iPod touch. It’s OK to write an app that’s limited to iPhone 3G or iPhone 3GS — just be sure you account for it when you develop (and market) your app. This should also go without saying, but be certain to have a physical iPhone or iPod touch to test your code before submitting your app to the App Store.
Document your ideas
Before you commit any code to your new project, take some time to document your end-user experience. This doesn’t need to be a lengthy requirements document. It could be as simple as writing down some notes on paper or sketching some drawings. When I created Jingle! I sketched the design using a stencil kit provided by UI Stencils. Using actual paper and a stencil kit was especially cool as it was a fun way to piece together user interface elements. I also tracked my notes, marketing materials and communication using Evernote.
Design a great user experience
When you start looking at Apple documentation, one recurring theme you will see is reference to a document called the Human Interface Guidelines (HIG). Essentially this is the master document for how your iPhone application should look and behave. Most of us have heard the stories of how XYZ app was “rejected” by Apple because of an apparently random decision. If you want a head start on what Apple is looking for in an application, you will benefit greatly by starting with this document.
Another way to ensure a great experience is to look at other leading applications that may be in your category. Ask yourself why those applications are the leaders and what elements they used to create a great experience. Also check out the ideas of usability expert Jakob Nielsen.
Manage Memory and Battery Life
To ensure your project is successful also consider how your app will manage memory and battery life. As we will discover in the code, there is no garbage collection for iPhone so you as a developer will be in command of memory management. Also, certain iPhone functions will use more battery life than others. For example, applications that stream data from the Internet or make extensive use of the Core Location Framework (e.g. GPS) will drain battery life more quickly.
Finally, one of the most complex items you will need to consider is data management. You have three options. If your app is a basic utility (e.g. temperature converter, calculator) you shouldn’t have to worry about storing data. If you plan to build an app that connects to an Internet-based service (e.g. how Tweetie works with Twitter), you’ll connect to these online resources through web services. Your third option will be to store user data on the device using the Core Data Framework.
If you are planning your first app, feel free to send in your questions, thoughts and ideas!