Galaxy Nexus & Android 4.0

Google Android 4.0 LogoI watched the live Google/Samsung announcement of the Galaxy Nexus yesterday. The event was held in Hong Kong, and streamed live to the Android Developers YouTube channel. I wasn’t completely blown away by the hardware – seems pretty run-of-the-mill after being spoiled with the Galaxy S II. But I was impressed to see how much thought Google has put into the user experience for Android 4.0 (“Ice Cream Sandwich”).

I get the impression that this time, Google’s focused on the little things. Like zero shutter lag for the camera, rather than the megapixel count. Or streamlining the voice-to-text capabilities, as well as copy & paste. These “little things” are really the things that matter for consumers. Apple’s known this for a long time, and one of the selling points for Apple’s phones is the great user experience (even if the flexibility isn’t there). I think Google’s trying to take a leaf from Apple’s book here, and start building an engaging, “love-able” (their words, not mine!) user interface. An admirable goal, and from what I’ve seen, they have taken big steps in this direction with the latest version of Android.

But that’s the consumer side of things. For developers, Android 4.0 introduces a number of new concepts, including:

  • Unified UI toolkit – “A single set of UI components, styles, and capabilities for phones, tablets, and other devices”. So Android 4.0 has finally pulled together the Gingerbread & Honeycomb releases.
  • Rich communication and sharing – A bunch of new APIs, most significantly Android Beam, which enables NFC-based instant sharing between smartphones.
  • New lock screen – Not sure how much opportunity there is for developers to plug in here, but Google has introduced a new set of instant actions which can be accessed directly from the lock screen (camera & music controls).

    Read more

Tap That! Number v4.0

I’ve just released a new version of Tap That! Number for Android – version 4.0. It’s a major revamp, as I’ve completely re-written the high scores component. Instead of using ScoreNinja (a lightweight high scores library), I’ve opted for Scoreloop, one of the big social gaming platforms. This basically means the whole interface looks a lot … Read more

Live Wallpapers, and PreferenceActivity bugs

Android Live WallpaperI’ve been working on a new app lately – a CPU monitor live wallpaper for Android. There are some great tutorials & sample code out there if you’re looking at starting with live wallpapers. I recommend the Androgames tutorial, as well as the official Android documentation, and CubeLiveWallpaper sample application. Both tutorials take a slightly different approach, so make sure you understand the concepts (especially threading) thoroughly before writing your own wallpaper. I started off using the Androgames model, but then ended up completely rewriting the code to optimize battery use. The end result is much more like the CubeLiveWallpaper example.

While coding the settings screen for this app, I ran across two pretty major bugs in the current Android SDK. It seems the implementation of PreferenceActivity is quite broken, and has been for several versions of the SDK. In particular, ListPreference and CheckBoxPreference each have outstanding bugs which nearly every developer will encounter when trying to use these classes.

Read more

AdMob Code Update Available

AdMob LogoAdMob recently released an update to the Android and iPhone SDK. Many developers have noticed a message on their “Sites & Apps” report indicating there is a “code update available“. However, AdMob don’t seem to have released a changelog or any release notes indicating what has actually changed in this latest version (v 4.1.0). So what’s the deal – should you upgrade?

Read more