TechCrunch posted the-first-of-many "Top 30 Android apps of 2011" article earlier this week, which is always must-read fodder for me. As an Android owner and hacker, I'm always interested in what people think are great applications. For fun, read the article and try to figure out if the author really thought these were 30 great apps, or the editor said "Find 30 apps!" Somewhere around 17 the author just started swearing under their breath.
I was going to write about how despite it's openness and Java-based development, Android is still suffering from a lack of really great applications and developers. Don't get me wrong, some of these applications (Path, Any.do) are brilliant, but there are still damning details in the article.
Of the list of 30 applications, the only developers with more than one application on the list are people who also host their own App Store, and combined they have 7 of the 30 applications. (Five are from Google, and two are from Amazon).
On the surface, you can discount this by saying "they are the most motivated to have great applications" or "they have the best developers because they have the biggest investment", but neither one of those really, in the end, make sense for what Android is, which is a platform. After this many years of Android, it should be hard to build a great list because you'd feel like you're leaving things out. And shouldn't be dominated by Google and Amazon.
This speaks loudly to the state of developers and development on Android. It's very easy to get started. It's easy to get distribution. It's really, really, really hard to achieve greatness. That's not all bad - that should sound eerily like Windows development of the 1990's, or Web Development of the 2000's. We've seen these cycles before, but they are not pretty, and they all were forced to change.
The day before the "30 best apps" article, TechCrunch also had an piece on the challenges of native applications and the opportunity of HTML5. You know, the one we get every few months about the impending greatness of HTML5. Despite editors feel this article must be (re)written at least once a quarter, I'll admit it's an important topic, and a long-term trend to watch. (Sidenote: despite all the departures, there are still plenty of good
contributors to TechCrunch. It's no longer must-read, but it's not dead
either. I prefer pieces that take an opinion, and the latest
contributors are doing that.)
The article was decent, and I liked it's presentation. But even more important was the comment by Harry Tomey, where he summed up some of the "hidden" challenges of Android Development. Fragmentation is an oft-cited downside of Android, but I think Harry put it more concretely, especially for startups. The cost of QA and support for multiple OS versions, patches, UI overlays, and hardware form factors - all major realities in Android - have tipped into the prohibitive.
These two TechCrunch pieces intersected quite violently - of the three
"best of" applications I tried to install, all three of them
worked on my phone (Droid X), only one ONE of then even installed on my Android tablet (Galaxy Tab
10.1) and well, I'll have to go to another app store to see if they work
on my Kindle. Yet these are all Android devices.
At that point, I was motivated to see if they had an iPad version. That would only take one step, rather than three. (Go ahead and make the point I'm not an average
user because I have all these gadgets - the problem is only worse for
the person who only has a Galaxy Tab or a Kindle and can't figure out
why their "Android" apps won't work).
Reading nearly any App Store, er Market (you know what I mean. For Android. Wait, I mean, the Google one, not the Amazon Appstore on Android. URGH...) review has at least one "This piece of crap app doesn't work on my Galaxy IV-R27 Turbo!"
- this got so serious, reviews in the Market now includes the model and
version of the reviewer. Want to be really scared as a developer? Just scroll
through a few pages like this:
At this point, I switched my opinion. This is not a problem for developers anymore. It's a consumer problem; because developers, frankly, gave up.
The problem of Android fragmentation is not a problem for most developers. I'd argue that today the majority of Android developers (remembering that the majority is still the small shop/individual, not a major corporation) don't even care anymore, and are not really trying to solve the problem. It's beyond their ability do manage, profitably.
Don't believe me? Don't believe the statement about "most are still small shop/individuals")? Okay, we'll do this your way. Download Google+ or any of the "30 great" Google apps for the Galaxy Tab 10.1. Six month later, and with the exception of GMail, they are still all simply scaled up versions of their phone versions, not taking advantage of any Android-Honeycomb futures, not attempting to deal with even the most basic fragmentation. And this is Google. Most apps from other publishers won't even install.
If this is true of the top applications for 2011, it's scary to think
how many people opened an Android-based Christmas gift yesterday, and
are now wondering why they can't install an app, or why a certain
service doesn't work for them but works on their friend's devices. How do
you even start to explain that to a consumer?
This is a consumer problem, which will, over time, harm Android distribution, and in turn, harm developer brands. Eventually, that will lead to developers leaving the platform, unless it's addressed, quickly. Putting this genie back in the bottle is going to be the biggest challenges Google has faced, if not the biggest.
The negative impact on brands will cause publishers enough pain that they will need to figure out some path to avoid bad reviews, upset customers, and frustrated development teams. This cannot be solved with volume alone, because the volume numbers do not accuratley represent the market opportunity for a developer. They simply do not account for the overhead of fragmentation. The emperor has no clothes, and it's painfully obvious.
The only upside I see? There is a huge startup opportunity here: if you can build a Selenium-like product for developers, and a process for managing fragmentation issues, you can translate those market numbers to profitable releases across multiple versions. All of a sudden those market graphs really translate to dollars. Might be the best Android app yet.