Thursday, December 6, 2012

Pros and Cons of Developing for Android vs. iPhone

I've been saying I'd do this post for awhile, but I hadn't actually gotten around to doing an Android app myself until recently (we previously published a small app, but I didn't do much of the dev work). Since I just finished porting Run Tracker+ and Run Tracker Free I thought now would be a good time for this review(iOS version). Side note: I don't have a free version on iPhone, this is the start of a new experiment I'm trying to upsell the full version. From what I hear free apps really dominate Android, so I thought this might be a good idea.

There are actually quite a few pros and cons for both platforms, and they don't all match up, i.e. there are some things that suck on both, and some that are good on both.

Learning Curve

IMO, this is a pro for both of them. I didn't find either one to be too bad. I'm coming from a C/C++ background with a lot of time spent doing embedded development. Obj-C for iPhone is obviously a bit different, but not so much that I didn't pick it up fast. My Java experience prior to Android consisted of 2 weeks of a class in college, but the basics (syntax) are similar enough that I didn't have any troubles getting up to speed.

Winner - Tie

Development Environment

This one is tough. I've been using xcode for so long now I'm really used to it. I'm using Intellij for my Android development based on a friends recommendation and I like it too. I've also used Eclipse. If we were talking about pre-xcode 4 I'd say Android wins because I hated interface builder. With xcode 4 though that's solved. I did have a slight problem with Android, as everything in the documentation is Eclipse based. Maybe that's just my problem, but I like Intellij better, so....

Winner - Leaning iPhone. 


For me, the iPhone wins hands down. Supporting lots of different screen sizes and resolutions and aspect ratios is a lot harder than supporting 2. (and we just got 2 with the iPhone 5.) Also, being able to just drag and drop stuff onto my interface is really nice. iPhone allows for pixel perfect design easily. If you want that on Android you have to have way more patience than I have.

Winner - iPhone

Coding Time / Built in Features

This one sort of surprised me. I've never had a problem getting things done with iPhone, but there are a few things I found to be really awesome in Android. 1 example being that it has built in text to speech and the iPhone doesn't. My voice summary function is 50-100 lines in iPhone. In Android it's 1:

foo.speak(text, TextToSpeech.QUEUE_FLUSH, null);

That was handy. I wasn't sure if I was going to include that feature in 1.0, but I decided to look it up real quick to see how much work it was going to be. 5 minutes later it was done.

Winner - Android

Submission Process

At the start, Android has an advantage in that it is $25 and iPhone is $100, but that's where it ends. Back to earlier, all the documentation is for Eclipse. Getting my submission ready required a command line. While I've spent countless years of my life using the command line for various tasks in various operating systems, I'd much rather have a button that says, "Build this app and then submit it to the store." Maybe eclipse has this button, I'm not sure, but I know Xcode has it so...

At this point, iPhone has a big lead. Unfortunately it throws it out the window at some point during the 2 week review process. The part where apps that work get rejected for absurd reasons, and apps with major bugs get through (and then more weeks to fix said bugs) frustrates me. <Rant> I just had an iPad app update that I tested on my iOS 5 iPad pass a review. Unfortunately, I didn't realize they deprecated the screen rotation stuff in iOS 6. In iOS 6 it turns out, my app was entirely unusable. Not just not that great, UNUSABLE. It got stuck in the opposite rotation it was supposed to be in, and you could click on anything at all. Apparently Apple doesn't test on their latest version either (or at all). Then, when I asked for an expedited review for a critical bug fix, they said, "unfortunately we cannot grant your request at this time as it does not meet the criteria for expediting a review." Seriously? What the hell is a critical bug fix, if, 100% not working app doesn't qualify?</Rant>

Winner - Tie - Yeah I had a big rant against iPhone, but they were way ahead up to that point :-)

App Store

I've spent a lot of time talking about the Apple App Store so if you're interested check out the archives. It's terrible, awful, really freaking bad. Android wins hands down. The searching auto complete isn't broken like Apple. It completes what you were typing instead of completing into a 15 word app name. (While I'm at it, they limit app names to 30 characters, something Apple really really should do. Instead of random rejections based on a reviewers subjective view of how long an app name should be, we get a nice clear rule.)

Continuing with search, after a few hours, searching my app by the first part of its name "Run Tracker+" gave my app as the first result. On iPhone, +'s are ignored, and searching for my entire app name (that's been in the store for 18 months and has 5 figures of downloads) "Run Tracker - GPS Fitness Tracking for Runners" puts my app at #2. Seriously. Unbelievable. Note that people will actually search for this because of the above mentioned absurd auto complete.

Moving on, the Android store also offers the option to a video and large promotional headers. I don't really care about the header, but the video is definitely a nice touch.

Winner - Android


Ah sales. The only category here that actually matters. This particular app has only been on the store for a day, and other app has been there for about 6 months. On the other hand I have > 20 apps on the Apple Store and have had some of them there for several years. It's certainly not a fair comparison, but the app I have had out for 6 months has done has made 5% of what it's iPhone counterpart made over the same time period. That being said, the recent Apple App Store changes have made it really hard for a new app to succeed. We'll have to see how that plays out for me on Android.

I'll update this after I have more significant data, but from the data I have, and from what I've read and talking with other devs:

Winner - iPhone

Overall Conclusion

I actually liked working with Android more than I expected. If it wasn't for all the different aspect ratios I'd like it significantly more. That being said, it all comes down to money in the end. The verdict is still out on that front. Assuming I can get it to make a reasonable amount (> 50% of my iPhone sales) I plan on making it a first class citizen for my next new app (That is assuming I can my sales back to a reasonable point and I do a next app instead of trying something new or freelancing). Until then, I do plan on porting several more of my apps to try and get a better feel for the store, and how much it can make.

If you've read this far and are interested in the mobile app market you may want to check out my newsletter. It's periodic emails (no more than 1-2 a month) on mobile app sales and the different markets.