Various Aspects of iPhone Application Development

After reading the excellent writeup about BlackBerry application development, here are my thoughts on iPhone application development based on my experience, using most of the subsections in the BlackBerry writeup.

1. Small Range of Hardware

There is a single resolution and screen size, with very clearcut differences across the different hardware models. The key difference was with/without phone+microphone (whether there is hardware GPS or vibration support doesn't matter for most software).

Caveat: This has changed with the release of iPhone 3GS, which has significantly better graphics capabilities. Some game developers may (want to) choose to develop against the 3GS hardware only.

2. A Single SDK

It was easy. You choosing the release (2.x) you wanted to support, develop the software, and then you test it against that version and newer versions in the 2.x range.

Caveat: This has changed with the release of iPhone OS 3, since the OS 3 has some incompatibilities with the prior OS version. It is at least harder now to develop for 2.x and expect the application to look exactly the same in 3.x.

Again, with the new features offered in OS 3, and looking at the adoption rate observed by another developer , there may be many developers switching to OS 3 as the baseline version.

3. SDK comes with Native (looking) Controls

With the builtin controls and some strong, yet random, enforcement of UI standards by the App store reviewers, this helps to both reduce the amount of time spent doing controls right and improving the overall UI quality of all applications.

Caveat: While the SDK comes with most of the native controls which Apple themself use, there are notable missing (or private) components. E.g. the glass buttons used in the Phone app for cancelling calls and in Contacts for deleting contacts. The animation effect (among a few others) on the trashcan button when you delete an email in Mail. The photo and thumbnail viewer in Photos.

Many developers suck it up and develop their own replacements or in certain cases risk using private components.

There has been work to replicate some of this, the three20 frameworksample code is a good example of this which provides several well-written components such as the photo and thumbnail viewers used in SimplyTweet.

But a very important point worth noting for potential iPhone application developers is - it takes alot of time to get the UI right in an iPhone application, precisely because the builtin apps are so well-done.

4. No Background Applications

This is really a plus. You worry significantly less about background applications taking up memory that's available to you. You don't worry about how your application will and needs to behave when the user switches away from your application to another (you stil need to handle incoming phone calls, but hey, it's alot better).

Caveat: While there isn't background 3rd party applications running, there are background builtin applications running. These includes at least Phone, SMS/Message, Email, Clock, iPod and Safari. All of these use up memory. You never know how much memory you will have when your application starts up.

5. Pricing

iPhone applications are mostly way too cheap. And free upgrade policy enforced by the App store doesn't help. The App store is not an open market and it has very poor search/discovery functionality, massively favoring "hits", so it is difficult to price your application much higher than competitors.

6. DRM, Distribution and Payment

DRM, distribution, bandwidth, payment etc are all taken care by Apple. Nice job there.

7. Marketing

It is important to realise that iTunes App store doesn't provide/help with any form of marketing, unless your application is already famous/hyped/successful.

There isn't much I can offer on how to market an iPhone aplication. I have had zero success with marketing SimplyTweet myself. If anyone has any advice for me, I will gladly take it :)

8. The Submission/Approval Blackhole

Many people have written about this. I have had my share of problems with it though. I am still waiting for my update to be approval (been weeks), but it's nothing compared to my 3 months wait for the free and paid apps contracts.

On the whole, the approval process has alot to improve on, and other than the lack of transparency, the most teething problem is when you really do need to get a fix in, you still have totally no control over it.

---

Comment

Commenting is closed for this article.

---