A Quick Primer on Why There's Still No Android Tablet Apps

Update: Within twelve hours of me hitting 'post' google announced in an IO session that they were adding actionBar support to older versions of Android, rendering all 953 words completely moot. I'm going to go ahead and take all the credit for this. Its still worth reading if you're curious about the technical reasons for the app gap.

Honeycomb was released a year and a half ago, and yet we only have a few hundred tablet apps. I'm sure nobody feels super stoked about that.

The situation isn't awful. I have about a hundred apps on my Acer A500, I really like that device. The apps that exist are usually pretty great. The market isn't bare, but it isn't a joy to browse like I imagine the app store is for ipad owners.

This is partly because of marketshare, we have less than 30% (or so) of the tablet market and developers are obviously not seeing it as a worthwhile investment.

Thats not the whole picture because we are, however, way ahead in phone marketshare. Android is awesome at scaling, there's a video where some guy ported honeycomb to the 1" motoactiv, and toshiba sells a 13.3" tablet and somehow neither of these products suck for reasons related to UI. So, why then do phone apps look like disastrous ass on tablets? The reasons are a little technical and they lie under the hood. I'm not a developer, so the gritty details may be oversimplified and even slightly wrong, but overall I've read enough technical documentation and technical discussion and watched enough of the IO talks that the overall picture is pretty close to correct, please don't puke on it with semantics.

Honeycomb added two important peices to the app layout puzzle: Fragments and the Action Bar.

Action_bar_pattern_rotation_medium

via developer.android.com

For those who don't know, The inbox list and the email view are each contained in a Fragment, while the compose, search and account switch buttons are all part of the Action Bar. If both devices are ICS, then both devices are running essentialy the same code, but rendering the results with a different layout. Its as simple as writing a separate xml file for the extra layout, if your app is simple enough, you can do this with drag and drop. The app Tasks showed up pretty much fully formed only a few weeks after ICS dropped. It uses these APIs to scale perfectly between my phone and tablet and its really awesome.

"If this is so great" you ask, "why isn't anyone using it?"

Well everyone is! Half of it anyway. Fragments work on any phone as far back as Android 1.6 which means 99.7% of things that have android on them. Unfortunately, Action Bar only goes back to 3.0 (about 10% as of June 1st). In other words, google made a fantastic "scalable" tool that only works on tablets. There's a really awesome moment in the questions of this video, they're demonstrating scaling using the Google IO app from last year, and they tried to gloss over the fact that the action bar only works on honeycomb, they had to build their own fake action bar for the gingerbread version. The devs don't let them get away with it.

Google I/O 2011: Designing and Implementing Android UIs for Phones and Tablets (via GoogleDevelopers)

The Action Bar's exclusivity is why there are so many ICS-only apps, like Boid and Chrome. Nothing else significant about Holo is a real barrier. If you build a scalable app for tablets with an ActionBar, it can only scale to the handful of phones with ICS, and before December it couldn't scale downwards at all. Google gave out 5000 galaxy Tabs last year and the vast majority of the devs didn't use them to make apps. Developers who made apps for tablets were doing twice as much work to address a tiny fraction of the market. That's no fun at all, and I can't say I blame bazillion devs who couldn't be arsed. It certainly doesn't help that amazon used 2.3 for their fork and so the best selling android tablet can't use 'real' tablet apps.

If google had snuck Action Bar in 2.3.4, .5, .6, .7 or just found a way to make it work like they did with fragments, then every app that has been updated in the last year or so would have a tablet version. With ICS gaining momentum, we're starting to see what we should've seen forever ago: apps like Pocket, they took the redesign and rebrand as a chance to make an awesome universal app. There are definitely others out there and a ton more in the pipeline.

The whole thing is made even more confusing by the existence of Action Bar Sherlock. Its an API that anyone can use, and its written by Jake Wharton. As far as I can tell, he's just a guy. Action Bar Sherlock is a library that brings the action Bar to android 2.0 and up. There's some high-profile apps that use it, Boid is working on using it and Tasks and Foursquare already do. Evidently, there's something about his implementation that makes the android team uncomfortable, but they're clearly a talented bunch of nerds, they totally could've done this. They still could, maybe we'll hear about it over the next 2 days at IO. We did hear about this, ActionBar is coming to <3.0 in the near future!

So now, we know why theres no tablet apps, how do we deal with it? The problem will completely go away once enough users are on ICS, so pester your phone OEM to give you ICS already. Pester Amazon to update the Fire to ICS, or buy a Nexus 7. ICS isn't just better for you, its better for everyone. We don't need to bitch about tablet apps, if we bitch about updates, the tablet apps will happen naturally.

TL;DR version: Google bungled the backend of its initial tablet effort and didn't make it worthwhile to make tablet apps until ICS dropped. Devs don't hate us, they just don't love us. Whine like crazy for your ICS update. Google fixed the problem, you didn't need to read it anyway. Do a dance.