Our top five tips for iPhone and Android developers

Apple and Google have changed the way applications are distributed to mobile devices.
We have released FirePin on AppStore and Android Marketplace and want to share our experience.
The Apple AppStore gave Mac developers a great opportunity to get their applications out there and some did really, really well. Now Google does the same thing with its Android Marketplace. Both storefronts give developers relatively easy access to a large user base. But there are differences in terms of ease of development and distribution.
Our top five:
  1. Start early when dealing with Apple
  2. Android development is faster than iPhone development
  3. iPhone users are different to Android users
  4. Don’t expect sophisticated reports
  5. Keep it simple
1. Start early when dealing with Apple
First you have to sign-up for the iPhone Developer Program for a joining fee. In our case it took actually weeks to get it all approved. This might have to do with Apple checking actually the details of our company and the fact that we are an Australian company. I could imagine that the process is faster for a US company.
If you plan to let people pay for your application then there is some additional forms to be filled out. Especially if you are non-US developer (we are in Australia) there are some additional TAX -related forms you nee to fill out and some need to be send in as paper copies. So you better kick that process off early.
You should allow about 5 days for Apple to review your application. Every update takes another 3-5 days to review.  Apple really reviews an app before it goes into the AppStore. They do not just let the app sit there for a week and then press a button to release it, no, they actually test the app. So you got your application through what I would almost call “user acceptance test” which is performed free of charge by Apple staff. Which is nice. If you have been involved in larger projects you might know that “user acceptance testing” takes time. Which sucks.
Here is a good description Oliver Breidenbach on how to get a EIN from the IRS that is required for non-US developers who want to sell their app.
Publishing on the Android Marketplace is sooo easy. The developer is trusted to publish “good” applications and therefore there is no review process. The app just goes live and the users can start downloading. Google obviously relies on the “wisdom of the crowd” to promote good quality applications based on user feedback. It looks like Android users are more willing to leave a feedback than iPhone users.
2. Android development is faster than iPhone development
Even though I use a Mac for all my software development I haven’t actually developed with the Apple SDK or the Cocoa framework. Apple’s SDK is actually not as bad as I thought. After a while I got really in touch with XCode and find it actually simpler than Eclipse. One thing that decreased my productivity was Objective-C which was completely offset by the good quality sample code provided by Apple. The iPhone Simulator works well but not for location-based applications (see previous blog entry). Unfortunately, the community of Objective -C programmers is much smaller than, lets say, Java or Ruby. Finding information on the web was harder than it needs to be.
On Android we had the same application up and running in a fraction of time. The reason is “openness” of the Android platform and the large community of developers. The emulator comes with a number of development tools that make automated testing pretty easy for location-based apps. You can replay a KML file. Very nice.
3. iPhone users are different to Android users
Our app is only since 1 day on the Android Marketplace, but we can already see that the review and feedback from Android users is completely different to what we got in the AppStore. Even for the same application. (More info will be blogged soon)

4. Don’t expect sophisticated reports
Analytics suck for both, AppStore and Android Marketplace.
5. Keep it simple
So you are a mobile application developer now. There is a lot of new stuff you have to deal with.  Best you keep your application as simple as possible. We found that users like simplicity in mobile phone applications. Our app is very simple and we actually spend much time to make it so simple. Other apps in the same category are overloaded with features and users give up early. We see that users come back and use an application when it is simple.