Monday, December 14, 2009

Advancing Android

Ah, so Nexus One is on the horizon... the true "Google Phone", and there's a lot of people checking their Verizon receipts (and the return policy) to see if they've bought their Droid in the last 30 days or not.

Rumors abound about Google shipping this as an unlocked and unsubsidised GSM handset, and people seem to be wondering just what this might mean...

A few thoughts:
  • So far, no Android device has been on par physically with the iPhone. Whether it was industrial design, processor speed or otherwise, the iPhone still feels like it's in a league of it's own. This handset gives Google the chance to remove hardware as a reason to buy an iPhone instead.
  • Unlocked? Hmm... If there's no carrier burden, this can truly become a first class data device... These are devices that really are all about TCP/IP, and just happen to use whatever network is around to get a connection, whether it's cellular, WiFi, or something else... Suddenly, carrier networks, roaming agreements, and fancy technologies like UMA become a lot less interesting... it can really just be all about data, and whoever is able to provide you the right quality of data service, at the right time, at the right price. Changing the game like this isn't dissimilar from Google's participation in the last US spectrum auction.
  • What does this say to all the OEM's like Motorola who are making large strategic shifts to embrace Android? Is Google competing with their partners? No. The Android ecosystem needs a true iPhone-class flagship device, and by providing one, Google makes things better for all the participants in the ecosystem. While HTC seems to be the OEM building this particular device, I wouldn't be surprised if Google quite freely shares most or all of the design for this device with other OEM's. Building a minimum-spec phone that's competitive with iPhone, and helping the other ecosystem OEM's get to the same point helps developers and customers: less fragmentation, better user experience. While Motorola and others might suffer some near-term drop in device sales, in the long run this is going to be beneficial for the ecosystem.
  • Where's the money? Is this thing going to ship above the $500 mark like all other unlocked smartphones? Building a new flagship phone that you want traction around, and then pricing it way outside even where early-adopters typically tread doesn't sound like a great way to spread the word. So, either there will be a carrier channel here that'll subsidise it (T-Mobile seems like a good option, given the device's reported 3G frequencies), or Google's going to eat some of the cost. Google could well decide that getting a solid competitor to iPhone well entrenched is worth some subsidy cost,of course... just write a cheque out of the promotional budget... But I think it's more interesting to try and understand just what the combined search and app market revenue looks like per device. If Google can sell a device at a price competitive with subsidised phones, and make up the difference with ads and apps, that's one hell of an endorsement of the platform, and the mobile ecosystem as a whole... and it's signals a huge change in how devices will be sold and subsidised in the next few years.
All in all, it promises to be an interesting Q1 for Android, and the smartphone ecosystem as a whole.

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 :)