What makes a good tablet app?

If you're looking to improve, good examples exist on both sides of the fence.

Spotify: Give me something to look at

On Android tablets, the Spotify app is guilty of several sins. The first of these is that it refuses to flip into landscape mode, an annoyance that is particularly frustrating on 10-inch tablets. More importantly, it wastes space.

Enlarge/ Spotify for Android also wastes a ton of space on a tablet's screen.

This is the same problem that Dropbox has, but I would argue that the solution should be slightly different for a media app than for a file explorer app. Let's see what Spotify did with its iOS app.

Enlarge/ Spotify for iOS is more pleasing both functionally and visually.

This app offers several things I really like—the persistent navigation buttons on the far left are an easy way to use extra space, and, as in the iOS Dropbox app, you can browse through your albums or radio stations without affecting the currently playing playlist. You can also browse your current playlist without losing your place in the playlist or radio station list. The audio player controls that come up from the bottom of the screen when you're playing songs is another nice addition.

I also want to praise the use of album art here—there's really no excuse for music and video apps on tablets for not taking up screen space with window dressings like album art or preview thumbnails. While these flourishes often don't accomplish anything that a wall-of-text app can't do, they can go a long way toward making apps feel more finished. Take a look at the Netflix and Hulu apps for Android, both of which are good examples of applications that look as good on Android as they do on competing platforms.

Enlarge/ Both Netflix and Hulu make good use of a tablet's screen, and they are visually consistent across tablet platforms.

You could navigate through all of these shows if this wall of video thumbnails was instead a wall of text; the app would be just as functional. However, using thumbnails and box art makes it easier to identify albums and movies at a glance, therefore offering a better user experience.

Twitter: Usability or data density, take your pick

The last specific app I will highlight is the official Android Twitter app, which has long been a favorite whipping boy of mine.

Once again, the main problem is wasted space. That wad of small text would be acceptable on a phone screen, but it becomes difficult to read on a tablet's screen. The difference between the Twitter for Android app and the others on our list is that the iOS version of the app doesn't suck that much less.

On an iPad, the Twitter app has that always-appreciated persistent navigation bar on the left, and the font size is bigger, but there is still wasted space on either side of the main column. There are a couple of different ways of fixing this issue, and there are good examples on both platforms.

Enlarge/ Tweetbot for iOS displays a lot of information in a way that is easy to understand.

On the iOS side, Tweetbot for iPad is the client to beat. It has nice, big, readable text, easily identifiable navigation buttons on the left, and much-less-cumbersome account switching if you manage multiple Twitter handles. Tweetbot lets you tap your name in the upper-left corner to switch, where the official Twitter app hides this behind several unlabeled buttons.

My favorite thing about Tweetbot is probably its liberal use of menus and gestures—swipe to the right on a tweet to view a conversation, tap a tweet once to see options for favoriting and retweeting without loading a separate page (Twitter for Android) or expanding and interrupting the flow of your Twitter stream (Twitter for iOS). It's both visually appealing and easy to use for refugees fleeing the horror of the official app.

On the other side of the fence, Plume for Android shows us a much different, but equally valid, use of a tablet's screen space. Where the iOS apps use the extra space to make things more readable and usable, Plume goes for sheer data density.

Enlarge/ Plume for Android is a little dense, but it can show a lot of data at once.

Enlarge/ Zooming in on an individual tweet makes the other columns fade.

On the Nexus 10, you can display up to three different columns on the screen at once, and if you add more columns you can swipe left and right to change which ones are visible. You can also remove columns if three is too many, but rather than resizing the remaining columns to take up the whole screen, the space where the second and third columns would be is simply left blank.

Text remains a bit on the small side in Plume, but tapping on a tweet makes the other columns fade from view and brings up the tweet in question on the side in a nice, big, readable font with controls for retweeting, favoriting, and performing other tasks. All in all, it's a big improvement over the official app.

Twitter is a unique case: third-party clients make up for the many (many) deficiencies of the official clients, but Twitter's stance toward them has become increasingly hostile over the last few months, and the newest version of Twitter's API openly discourages their development. How long we'll be able to rely on third parties atoning for Twitter's sins is anyone's guess.

Conclusions

The single worst thing about most Android tablet apps, especially the ones I've singled out here, is wasted screen space. The best iPad apps take the basic functionality of iPhone apps and make helpful additions to take advantage of the extra pixels, but many major Android apps simply make no effort to look good on anything other than smartphones.

This is especially frustrating because for all of the apps I've listed here, the developers have made quite usable and pleasant iPad apps—they've quite simply chosen not to devote the same attention to the Android ecosystem. Google recently published a set of guidelines to help developers improve their apps without putting forth a lot of extra effort, but most have yet to heed this call to action.

Part of the problem has been one of market share and of fragmentation—many different tablets running many different permutations of many different versions of Android have sold in small numbers so far, which has made it more lucrative to develop nicer apps for the more popular iPad. From a testing and quality assurance standpoint, it also helps that there have been exactly five different models of iPad over the years, four of which are capable of running the most recent version of iOS.

Now that the Nexus 7 and Nexus 10 are here (and the former, at least, is selling in respectable numbers), developers will have a couple of flagship devices they can target first. Once they've put in the work, tablets from all manufacturers should benefit. Let's just hope this tide shifts sooner rather than later.

Promoted Comments

I guess I'm not really sure why fragmentation should be much of an issue with app development. Sure, Android has a few different OS versions in play, but there aren't THAT many resolutions one finds on different tablets, are there? And with the same aspect ratio, generally, couldn't you simply target the Nexus 10, then scale down accordingly depending on the resolution?

Or is app development not that simple?

Android strives for resolution independence - I believe app developers are able to target layouts toward "large" (7-inch IIRC) and "xlarge" (10-inch) screens in their apps, rather than specifying a resolution. This also enables a single APK to render differently on multiple screen sizes (any for-real Android devs should feel free to correct me on these points, though).

Pretty much exactly. You set layouts based on size in DP (px = dp * (dpi / 160)), and assets based on the names you mentioned (ldpi, mdpi, hdpi, xhdpi, xxhdpi). Anything that isn't included in the apk comes from the next rung down.

Most tablet UIs will kick in at 600dp or 720dp.

dagamer34 wrote:

The Nexus 7 does tablet apps a disservice because phone apps run "scaled up". .

I'd prefer that to not offering the apps, or ACTUAL scaling as the iPad does. Android doesn't actually scale anything except image assets, the app is actually rending at the higher resolution.

Pubert wrote:

The fragmentation in the Android smartphone market is just insane. No one in their right mind is going to optimize their app(s) for more than a handful of target devices.

As a few of us have already said, if you aren't doing a high end game the need for targeting specific devices is near zero. You design the UI based on the two elements I stated above and you're good.

Occasionally a device is launched with incorrect settings that don't report correctly, those are the ONLY cases you'd need to design around them. Like I said, major games will deal with GPU differences more than anything - even then there are only 3 vendors for that.

Part of the problem has been one of market share and of fragmentation—many different tablets running many different permutations of many different versions of Android

You might also add many different screen sizes and resolutions to that list.

I have a drawing app out there for iOS. Creating icons for controls and so forth is easy: I need two sizes (standard and retina) and the OS will automatically load the appropriate one depending on the displays resolution. The drawing primitives use points rather than pixels, where 1 point = 1 pixel on standard displays and 2 pixels on retina displays. Finally, I can use the PDF capabilities to draw (and create) vector graphics that are independent of the device resolution.

I've been looking at developing for Android, and it doesn't seem anywhere near as easy. How many different versions of an icon will I need to cope with all the differing display sizes and dpi's? Code that uses the drawing primitives will have to take account of the screen size and dpi (OK, not hard, but on iOS you just deal with iPhone, iPhone 5 and iPad). Finally, and the killer as far as I'm concerned, there's no vector graphic capability (such as SVG) unless you want to use third-party libraries.

I wish Google would put some more effort into the API here. If it was easier to do resolution independent graphics then I'd be far more likely to develop for the platform.

What we are seeing here is old phone apps being used for tablets but this have been largely solved since Android 3.0 "Honeycomb".

Right now you can use "fragments" to make the same application to work fairly well in both phones and tablets using the same UI pieces in different layouts, sharing screen or not depending on screen resolution.

Creating alternative XML resources for different layouts you can use the same UI elements for both tablets and handsets of different resolutions with ease.

Those fragments can be used in previous android versions with a compatibility library, so new applications - or upgraded applications - for old versions of Android can work well in both tablets and handsets.

Andrew Cunningham / Andrew has a B.A. in Classics from Kenyon College and has over five years of experience in IT. His work has appeared on Charge Shot!!! and AnandTech, and he records a weekly book podcast called Overdue.