Saturday, May 15, 2010

Android Wish List

This Wednesday is the first day of Google I/O. Google has a lot of very interesting technologies and many of those will have some new features announced this week. However, it doesn't seem too presumptuous to say that I/O is going to be Android-centric this year -- maybe every year for awhile. Google has pitted itself firmly against Apple and its iPhone/iPad platform. So I/O is Google's WWDC, and in case you missed it WWDC 2010 is all about mobile. And so it is with I/O.

There is a lot of chatter about Froyo, or Android 2.2. It's browser will have an integrated Flash plugin. It's supposed to be insanely fast (courtesy of a JIT and lower RAM usage by the kernel). It will support USB tethering and it can turn any Android phone into a mobile hotspot. That's all great, but none of that really does much for us Android developers, except for the speed increase of course -- especially important for game developers. Speaking of game artistes, Froyo is supposed to bring a lot more OpenGL ES goodness into their hands. So maybe we'll start seeing killer games on Android. Anyways, back to developers. What's Froyo got for us? More importantly, what do you want out of the platform? Here's my list.

  1. Push Notifications. The iPhone has it. Blackberry has had it for what, a decade? The Windows Phone thing that's coming out at the end of the year is supposed to have them too. But what about Android? Background services and polling? Stop F'ing with me.
  2. Apps on SD Card. Yeah we've been asking for this for a long time, and Google has always shot it down. Why is it important? It removes the pressure to keep apps super small, a pressure that has some chilling side effects. On the iPhone, I wouldn't hesitate to use a 3rd party library in an app, even if it added an extra 500KB to the app size. Not so on Android. For me this is particularly acute when it comes to using other languages like Scala on Android. The runtime library size is prohibitive -- because the app can't be saved on to the SD card.
  3. More JDK. Wouldn't it be nice to have JAXB on Android? What about JAI? Yeah I know that sometimes they just wouldn't work because of performance reasons, but sometimes they would. Shouldn't be up to the developer to figure out when to use it or not?
  4. Android for pads/slates/tablets. Yeah I want the Android equivalent of iPhone OS 3.2. I want to see Android on these form factors. As a corollary, I want an end to ChromeOS and that potential distraction. Let's just have one tablet OS from Google, ok? Android: Tablet Edition will have the Mobile Chrome browser in Android, anyways right? Bonus points: A sexy device with the new OS running out given to all of the developers at I/O (I know they gave us Droids already, but I'm greedy.)

So there's my list. What's yours?

Update: I remembered one more thing for my wish list, though this is not directly part of Android. I want Android 2.1 (or 2.2) to be available on all Android devices. I want it running on the G1, for example. There are definitely some SDK features I'd like to take more advantage of, and that's hard to do with 1.5 and 1.6 still on the majority of devices. The Mobile Chrome browser in 2.0+ is infinitely better than what's in 1.6 and lower because it uses HTML5 standards for storage, offline, geolocation, etc. instead of the now defunct Google Gears. So I really want those 1.5 and 1.6 browsers to go away, it's like having to support an ActiveX control for Ajax...


nathan_h said...

Re: 1, I've been very pleased with how well IMAP IDLE works in K9 Mail. I leave it on and it receives mail instantly, but unless I'm actually using K9 very much it is not listed as one of the top battery consumers. (The app is otherwise very rough and frustrating.) So I would say that with the right protocol, background services are just fine as it is. Still, it will make things easier for developers when Google inevitably provides a generic network service and API for them.

Re: 2, I'm sure you know about using Proguard to alleviate the problem. I think we just have to deal with this one; large apps also take more time to download. If you let your app bloat you'd better swear off pushing frequent updates to it, or users will start to choose remove instead of update.

4, I totally agree with. As an aside, when I switched my Ubuntu browser to Chromium I felt like I suddenly had a newer, better OS. Right now the world needs Chrome and Android. I know Google has near-infinite resources, but they may as well stay somewhat focused.

Dan Fabulich said...

Disagree on point 4. Chrome OS is what Android should have been from the beginning. Android can't end soon enough.

Unknown said...

Dan: Either way the two need to merge into one ASAP. Right now there's a window of opportunity for a new platform to become dominant over the Microsoft one that has been dominant for so long and it's all because of a couple of "new" computing platforms (touchscreen-based smartphones/tablets) where the existing entrenched APIs (Microsoft Windows) aren't a good fit (at least not without substantial changes due to the modes of interaction).

Right now the landscape is fragmented:
- Apple iPhone OS
- HP Palm WebOS
- Google Android
- Google Chrome OS (?!?)
- RIM (??)
- Others

It makes zero sense for Google to have two separate entries into this area. It will almost certainly lead to failure.