Friday, March 18, 2011

Book Review for Android User Interface Development: Beginner's Guide

Book review for "Android User Interface Development: Beginner's Guide"

This book teaches Android UI development in Packt's 'Cookbook' style. The book is written in a very understandable way, yet still teaches good UI design in reasonable depth. It covers technical aspects of UI development (use of widgets, themes, animation, styling) as well as development practices (how to validate input).

If you haven't seen a Packt Cookbook yet, it's a book primarily broken into recurring sections with titles "Time for Action", "What Just Happened" and "Have a Go, Hero". "Time for Action" is a series of instructions that spell out exactly what to do for a sample scenario. "What Just Happened" follows up with an explanation of why the reader was asked to execute the instructions. "Have a Go, Hero" is a section challenging the reader to extend the spoon-fed instructions by implementing a next-step challenge. This style of writing emphasizes hands-on knowledge transfer without a lot of verbose theory, so it'll be good for readers who like to learn as they code.

Be aware this is not a book on Android development in the general sense. There is some introductory material here: installation and configuration of the SDK, a first rudimentary project, a little other ground-level material. But largely this book concentrates on UI aspects. To put that in context, if this were a book in the Enterprise Java workspace, it'd be entirely about JSF and have not much on EJBs or JMS. (I'm not sure if that's a good parallel, but I'm sure you get the idea.)

The sample code is well laid out and is structured in the same way the SDK examples are structured. (So if you're learning the basics of Android development by following the SDK doc, you'll be good with the book samples.) The topics chosen for inclusion in the book are a good representation of the kinds of UI issues an Android developer is likely to encounter. So what exactly can you expect to learn from this book? Here's an incomplete list, but one that shows the kinds of things that are covered:

- How to present a question to the user
- How to receive an answer
- How to handle list choices (multi-select? single?)
- Headers and Footers
- Making a photo gallery
- Handling Date/Time
- Layouts (Swing users will find this familiar)
- Validating inputs
- Animation
- Styling (i.e. changing a button's appearance)
- Application themes

If this list makes you think the book teaches a mix of programming skills and graphic design, I wouldn't say that you're wrong. (I've always been a programmer type, and never much of a polished UI presenter, so I learned some new things in the styling and theme categories.)

Who would benefit from reading this book? Android developers who want to write a professional looking application. If you're like me, your first instinct is probably going to be to just run out and read the SDK doc to hack together some sort of functional application. But if we want people other than ourselves to like it, then we'd better be sure it looks, feels, and acts like the user expects. That's the place where the book brings value-- teaching us how to make our Android apps pretty.

The book can be found here.

Happy (mobile) coding!