You've seen the amazing statistics on Apple Apps and how ordinary folks are achieving success with writing apps for the iPhone and iPad. Well, the first thing I can tell you is that you're right! The Apple App store is taking the world by storm (exceeding more than 2 billion downloads). And my suspicion is that this is all just the beginning.
The problem is, how do you go about writing an app? In fact, what do you need before you being app development? Well, that's where this article will help. I'll provide you with 10 things you need before you start writing your Apple app. Even if you've never developed content for a mobile device, or if you're new to software development, you should know that learning iPhone development can be a fun and rewarding experience.
1. Get a Mac OS X Computer
To develop applications for the iPhone OS, you need a Mac OS X computer running the Xcode tools. Xcode is Apple's suite of development tools that provide support for project management, code editing, building executables and debugging.
I know many of you might be PC users are some of you might baulk at the idea of using a Mac. Well, my advice is – give the Mac a chance. I've many friends who were once die-hard PC users who have now switched over to the Mac. Why? Because they want to write apps! And once they made the switch – they found the Mac to be so much easier to use and a really enjoyable experience.
2. Download the SDK
Apple distributes an iPhone app software development kit (SDK). You'll definitely need to download this and read it from front to back. Don't worry, it's more complex then it seems. Give it time and you'll soon be on the app development bandwagon.
3. Learn Objective-C
Mac programs are written in Objective-C Apple also introduced a special abstraction API for Objective-C called Cocoa Touch for iPhone (and iPod Touch) development.
Objective-C will come quite naturally to those who have programmed in C, C ++ or Java before. Now, if you're new to programming, Objective-C might be a challenge.
Try to grab a basic book on programming to before you get into the nuts and bolts of Objective-C. One of the better books for learning Objective-C is the Programming in Objective-C by Stephen G. Kochan. It does not assume you have any previous knowledge in this area.
4. Become An Approved Apple Developer
Becoming an approved developer for Apple apps takes some time. Many people do not know this. I hear that there is a six month waiting list to be an approved developer. Some have speculated that the time to wait may decrease now that interest in the iPhone and iPad has hit the roof worldwide.
Becoming an accepted developer only gets you into the App Store. Of course, that's the only way to distribute your applications, so it's a necessary part of the process.
5. Research Your App
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.
Make sure you research your app. There's no point just jumping in to write apps which don't meet any user needs. A year ago you could easily write an app that did some nonsense (eg make a fart noise) and expect people to download it. That's not going to happen anymore. If you want an app that is popular, you need to make it useful.
Usually, in mobile device development, your audience is a person on the go. People who use mobile applications want to have quick interactions. They absolutely don't want to write a Word document on the go. They want to do useful things by just pressing a button or two.
The other tip I have is to think of the Apple iPhone as a pocket computer. For example, 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.
6. Write For Portability
What do I mean by portability? Well, 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.
Now, it's OK to write an app that's limited to iPhone 3G or iPhone 3GS -but my feel is that you will be missing out on a potential chunk of target users.
7. Always Document Your Ideas
Before you commit any code to your new project, take some time to document your end-user experience. This does not need to be a lengthy requirements document. It could be as simple as writing down some notes on paper or sketching some drawings.
There is actually a great sketching product out there called UI Stencils that allows you to mock up a screen design on paper. I love it and highly recommend it for app development.
8. Give 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. Make sure you familiarize yourself with it.
It's also important to download and try out other apps made by other leading developers. To ensure a great user experience in your app, 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.
9. Data Management
Oh, before I forget, one of most complex things you will need to consider is data management. If your app is a basic utility (eg a calculator) you shouldn't have to worry about storing data. If you build an app that connects to an Internet-based service, 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.
10. Manage Memory and Battery Life
Those who are a bit more technical will understand what I mean by memory and battery life management. Note that there is no garbage collection for iPhone. Garbage collection is a programming term which means that if your program has a "memory leak", it could cause the iPhone to eventually crash without warning.
Also, take note that 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 (eg GPS) will drain battery life more quickly.
I certainly hope this article has given you a heads up on the things you need before writing an Apple app.
There are quite a number of things you need – a Mac OS X computer, Objective-C know-how, UI design experience, amongst other things. But if you're serious about going about your app development journey, you should not be discouraged.
Learn a little each day, and I guarantee that you'll become quite the expert developer in no time!
Next time, I'll write up some articles on how to actually program an app in Xcode tools and Objective-C. Until then, have fun learning to developing those apps!