Author: Bill Phillips, Brian Hardy
Publisher: Big Nerd Ranch Guides, 2013
Audience: Java programmers
Reviewer: Mike James
Android is a tough platform to get started on. You need to know Java, the Android framework, the IDE, the architecture of a typical Android device and so on. For one book to guide you over so much territory is a difficult challenge.
The Android Programming book is a Big Nerd Ranch Guide to Android and it is based on their Android Boot Camp course. It is a fairly chunky book with a largish page size so you have a lot to study.
It starts out easy but be warned you need to know Java. There are a few concessions to the Java novice such as explaining anonymous inner classes - needed for event handling - but if you are a complete Java beginner you need to find out more before you start.
The first chapter gets you started with Eclipse - there are no books at the time of writing that use Android Studio. From here you learn about the very basics of Android by implementing a simple example - a quiz app. Chapter 2 introduces an MVC model for Android construction but don't be put off - this isn't theoretical. Then we cover the activity lifecycle, debugging and adding a second activity.
Chapter 6 looks at the problems of managing so many SDK versions. Chapter 7 opens up the difficult topic of fragments which is a bit strange because it comes before a treatment of the UI Widgets in Chatper 8. It seems to work however. The next few chapters - up to chapter 18 are all about the UI including dialog boxes, the action bar and so on.
Chapter 19 starts the part of the book that deals with Android devices and services. Chapters 19 and 20 are about using the camera complete with a small example. Chapter 21, 22 and 23 are about Intents and tasks. Next we have something about styles, images, XML, HTTP and Threading. The remaining chapters are about search, services, broadcast intents, web browsing, custom views and touch events. location, database and maps.
You can tell that the book covers a lot of ground in its 500 or so pages. However each chapter is short and as the book progresses the level of explanation starts to decrease. As long as you are a smart programmer this shouldn't be too much of a problem as the difficult part of getting started with Android is getting to grips with the overall system - Activities, Views, Fragments and so on. These are the ideas that make Android a bit different from other systems. When you get down to calling an API to get map data then it isn't much different from other map APIs on other systems. However if you need a constant level of explanation then this isn't the book for you. Also if you look at the start of the book as an indicator of how the middle and end of the book work then you might feel a bit cheated.
It is also important to know that this is a "do-it" sort of book and it doesn't spend a lot of time giving you the bigger picture of the structure of things. This is something that gets worse as the book goes on - so if you want more general outline of things then this might not be the book for you. As the book goes on there is very much a tendency to let the code do the talking - which might be a good thing if this is what you like.
This is a good introduction to Android. It doesn't go into anything deep or unusual but if you stick with it then it will get you a good way with any apps you are trying to create. What is wont do is help you solve problems that are unique to your particular app - that's what creativity is all about.
As long as you know Java reasonably well this is a good place to start an exploration of Android programming.