Author: Shane Conder,Lauren Darcey & Joseph Annuzzi Jr.
Publisher: Addison Wesley, 4rd Ed
Audience: Intermediate programmers
Reviewed by: Harry Fairhead
This is a strange 4th edition in that in its previous edition it had a rather different title, although it too had the same cover photo - which hardly suggests mobile technology!
The previous edition it had the title Android Wireless Application Development Volume I: Android Essentials and our review of it opened with "Wireless Android development? Isn't Android always wireless? Obviously the publishers were taking notice as the word "wireless has been dropped. So too has the wording that suggest is the first of two volumes although the inclusion of "Introduction" leaves room for Volume II: Advanced Topics 3rd Edition to be similarly revised as a standalone follow-on title.
Looking at the contents of the new edition compared to its predecessor the structure is very similar. A chapter on Android Development Tools from previous editions has been relegated to become Appendix A. Unfortunately, while there are a few mentions of Android Studio, the book doesn't cover this new and evolving IDE.
The one completely new chapter is in the final part of the book and has the title Planning the Android Application Experience. It takes you through the entire process from identifying objectives, through issues of navigation and the user interface to designing screen layouts and usability testing.
Although a good deal of "house cleaning" is evident throughout the book, hasn't done anything for the first chapter which is an introduction to Android that covers the entire history of the mobile phone, including a look at the original brick style phone and strange things like WAP that you can more or less forget about. It does eventually get round to discussing the Android system, but it doesn't make a good start for the book as it makes you feel it is the book that is out of touch rather than you.
Fortunately things start getting a bit better at Chapter 2 where we look at how to install the SDK and other development tools. Of course this is now already slightly out of date because of the release of Android Studio.
Chapter 3 gets you started running a full Android program that you can download from the website. I prefer a simple Hello World style first program but you might not. You then very rapidly build your own Android app and there are some easy but advanced features included.
Part II of the book is all about the basic workings of an app. Chapter 4 outlines the anatomy of an Android application. The problem is that if you haven't got some experience of creating code the descriptions seem abstract and hence more difficult to understand. It shows you everything you could possibly need to know about the structure of an Android app even before you might have got the general idea of what is going on.
If Chapter 4 suffers from being a little abstract then Chapter 5 might be a bit to detailed. It looks at the details of the manifest file. As this is mostly a matter of book keeping it could have been postponed until later while you looked at how to create an Android app. In other words its too detailed a look at many things that aren't relevant to the beginner and mostly best dealt with as say web based documentation.
Then Chapter 6 explains in detail how to work with resources. Again a topic you have to master but probably not in this level of detail this early. Hidden at the end of this chapter is an introduction to the layout a fundamental idea in creating the Android UI
Part III is an introduction to the UI. It first deals with the core UI framework. Chapter 7 is all about the view and controls. Chapter 8 goes into detail about layout panels and chapter 9 introduces fragments. Chapter 10 is about dialog creation using the old and the new fragment based approach.
Part IV singles out the various aspects of the API and covers them in great detail - preferences, data storage, content providers and writing compatible applications.
Part V looks a deployment and there is a fair amount of off-topic material here - unless you don't already know it in which case you might find it useful. Topics covered include debugging, testing, selling and so on. Given the number of core topics not covered this could have been cut with very little loss. There is no word on graphics, sensors and so on, which are covered in the accompanying Volume 2 of the previous edition. In short this is an incomplete introduction to Android.
The book finishes with some useful appendices.
Overall this is not a book I would recommend to the complete beginner. You need to program in Java and be able to understand fairly high level explanations of the overall architecture.
It also isn't a step-by-step book and it doesn't walk you through the construction of a complete Android application. It does have code snippets that show you how to do most of the standard tasks you need to master. However, most of them are not explained in great detail so you will need to check the official documentation if you want to modify or extend them. In most cases the explanation rarely get beyond what is obvious from reading the first part of the documentation on any given topic - i.e. it lacks depth. The book also tends to focus on the fine detail before it has managed to establish the bigger picture, which is fine if you are already familiar with the Android programming model.
There are better and more complete Android books on the market so I can't recommend this book to the beginner or intermediate programmer and the advanced programmer already knows more about Android than explained in this book.