Android or iPhone?

This is the fourth of several posts where I am revisiting CommonsWare, my long-time business and current “hobby with a logo”. I thought it might be useful to some to see how all that came about, the decisions I made, and so on.

The series:


Rolling back to where the first post ended, in late 2007:

  • Apple announced that they would have a real SDK for developing iPhone apps in early 2008

  • Google released the first developer preview of Android

I started experimenting with Android. The SDK was a bit odd, and the docs were a bit modest, but for a developer preview, it was reasonable. Moreover:

  • It was based on Java, and I had a reasonable amount of experience with it

  • It was open source, and I was a definite fan of that, to the point where my “daily driver” machine was powered by Linux

  • At the time, I trusted Google far more than I trusted Apple

However, Android was still just a preview. As it turned out, it was nearly a year until hardware became available to the public. Apple was already shipping iPhones. If you compare sales back then to today, Apple was not selling very many iPhones. It was quite some time before Android devices surpassed iPhones in sales. And, as 2007 came to a close, it was fairly clear that the iPhone SDK would do better “out of the gate”, just because they had an active user base.

So, I waited.

On March 6, 2008, Apple released their SDK. From my vantage point, it was an unmitigated disaster:

  • It was based on Objective-C. I remember when Objective-C came out — I looked at the syntax and wondered why anyone would use it.

  • It was based on Cocoa, the macOS/OS X UI framework. I had no experience with that. Of course, I had no experience with Android’s widget set either, but at least there, I was on a level playing field with just about everyone else. I expected that macOS developers would be in better shape to develop iPhone apps than I would be.

  • It required a Mac for development. This wasn’t the end of the world, as I used to use a 15” iMac as my main desktop and so had OS X experience. Still, it wasn’t what I wanted.

  • Most importantly, you had to sign an NDA. It is very difficult to write books when you are not allowed to write books. It is very difficult to answer developer questions when you are not allowed to answer developer questions. And so on.

Shortly thereafter, I turned my attention to Android, and a few months later, I had an early edition of The Busy Coder’s Guide to Android Development available. And, in October 2008, I waited in the early hours of the morning outside a T-Mobile store in the greater Philadelphia area, to beat the rush of people who I was sure were going to line up to purchase the T-Mobile G1 (a.k.a., the HTC Dream), the first widely-available Android phone in the US.

As it turned out… I was the only one waiting. And the guy at the store thought I was nuts.

In a parallel universe, Android “died on the vine”. In this universe, Apple’s hubris bit them in the posterior once again. In the US, they established AT&T as the exclusive carrier for iPhones. The other US carriers struck deals with HTC, Motorola, and others for Android phones, giving Android an opening. By the time Apple relented and got iPhone models available for all the major US carriers, Android was established and would go on to global dominance.

Android’s success meant that I had the potential for success, “riding the coattails” as it were. It still was far from guaranteed that I would do well. Fortunately, 2008 gave me an opportunity to establish some credentials, a topic that I will cover in the next post.