Thursday, December 10, 2009

What Droid/Android needs

So, I've been playing with a Verizon/Motorola Droid for a few weeks now? It's great, but it's just not ready for prime-time... especially not as the flagship device for the Android platform. So what's wrong with Droid, and what does it need?

Better Hardware
  1. Motorola have managed to build a device with a physical keyboard that's worse than iPhone's virtual keyboard. A tremendous engineering achievement.
  2. 2 years after the iPhone's launch, shipping a touch screen without multitouch (and at this price, on a flagship device, positioned against iPhone) is just silly
  3. The lack of a decent oil-resistant coating on the screen means lots and lots of wiping the display against your jeans
  4. While I'm sure I'd be able to beat any poor mugger senseless with this brick of a phone, a little elegance in design wouldn't be the worst thing

Some OS suggestions

Android still crashes once every day or so... probably because of third party apps, but it's still crummy. Managing third party apps, and preventing them from taking down my phone would be a great OS addition

Multitasking
Background processing is nice, in theory, but in practice the whole thing feels slow and cumbersome, especially compared to the iPhone. I'd suggest a sort of multi-tiered background processing option:
  1. The app just runs in the background without any modification, but is EXTREMELY CPU, network and memory limited versus other apps, especially when the user is actively interacting with the phone.
  2. The app runs in an "approved" background state, where it's got a sort of QoS guarantee... something like "we'll let you run at full CPU for 5 seconds out of every 60 or 120 or whatever", so the app gets more resources, but only if it's designed to play nice
  3. The app gets to run in the background, with full resources, but the user gets a VERY clear warning about what this might do to performance/responsiveness of the phone, etc.

Push with Payload
So, the other thing that helps some of this along is the ability to give developers the ability to push notifications AND payload data right to their app. Integrate this with some sort of "stored procedure" and you've got a great way to keep "background" apps from breaking the user experience.

Imagine an eMail, IM or stock portfolio app for a minute. The server would push updates (like messages, stock updates, etc.) to the phone, and the OS would take the message's payload, hand it over to a "push procedure" method and say "okay, you have 5 seconds... do what you need with this message". The stored "push procedure" could then stick the message in the app's DB, do some basic parsing, notify the user, etc. But the point is that the app can do all of this while the device is still in the user's pocket... and not suck up cycles when the user's got the phone out of their pocket and want to actually USE the app that might have pending content.

Add push w/ payload to an intelligent background processing mechanism, and suddenly you've got a MUCH more responsive and power-efficient platform. Which translates to a better user experience. Which means closing some of the gap with iPhone, without giving up multitasking.

Some Market Rules
Okay, so the Apple App Store has all sorts of restrictions that drive developers crazy... including the approval process. But they've also got some things right. For example, to put an app in the App Store, you MUST provide screenshots. Android market? Not so. On the App Store, you need to provide an "update summary" to explain to a user what changes you've made in an update that they are able to see before updating the app. Android market? Nope.

So, while some of Apple's decisions don't make developers all that happy, they seem to at least try to get things right for users... and happy users mean more app downloads, which means happy developers. Google ought to take a page out of the App Store book, at least where user experience is concerned.


So
My Droid's going back to Verizon any day now, but I'm sure I'll be picking up another Android device in the near future... and I'll cross my fingers I get some of my holiday feature-wishlist by then :)
blog comments powered by Disqus