Author: Murat Yener and Onur Dundar
Audience: Intermediate Android programmers
Reviewer: Mike James
A book on the finer points of Android Studio is a great idea given how little documentation there is.
I use Android Studio a lot, but it is such a deep tool that I would hesitate to say that I am an expert. So I looked forward to reading this book and filling in all of the things I didn't know or at the very least consolidating what I did know.
Chapter 1 is the usual getting started, setting up Android Studio on various systems. Not very expert, but the book has to start somewhere. This feeling of the book having to start with very simple things persisted as I worked my way though Chapter 2 - different SDKs, HAXM, ADB, a new virtual device. Not exactly Android Studio in depth as the coverage was shallow and of topics that you have to master right at the start of creating Android apps. Chapter 3 didn't help much as it is just an overview of creating an Android project. It tells you about apps, a tiny amount about services, something about assets, manifests and modules. Again mostly things you have to learn right at the start of using Android Studio.
So far this is looking like a beginner's Android Studio book rather than an expert one.
Chapter 4 has a more promising title - Android Studio In Depth. This sounds as if it might be getting onto more advanced material. It does go over each and every menu item. The problem is that it really does it without adding anything. What you get are lists of options and brief descriptions of what they do. It would be unfair to say that there is nothing added to the mix, but the chapter is at the level of an introduction to any IDE for the complete beginner. At best it serves to make you aware of some of the facilities that are available, but the majority of useful ones you are going to find out about anyway as you explore the menu structure.
Chapter 5 moves on to creating layout with the designer. Unfortunately Android Studio has already changed quite a bit since this was published. It doesn't for example cover the Constraint Layout or the new look of the Designer. This makes many of the descriptions and comments not as relevant as they might be, but to be honest they aren't particularly helpful if you are anything beyond the Android complete beginner. If you are more than a beginner do you really need to be told about resource files? There is also a discussion of Fragments that is completely inadequate apart from to give you an idea of what a Fragment might be. This is just one of the points in the book where you think that there has to be so much more to learn about Android Studio why are we going off on a detour?
Reaching Chapter 6 gave me hope because it is on the build system and I have to admit that I don't know Gradle as well as I should. Basically my approach to all things Gradle is to wait until something goes wrong and then find out enough to fix it. This was my chance to get on top of Gradle. Only I didn't. The chapter goes over all of the things that are obvious and can be picked up without really understanding. It basically lists the contents of the standard Gradle files and what they do along the lines of, "This part declares dependencies for this and this one supports that one". You really don't get any more information than you would get from reading the Gradle files. There is no hint about how to debug, troubleshoot or modify the configuration, just a broad description of what it is by default and some words about how you might extend it. At the end of reading the chapter I knew hardly anything more about Gradle than when I started.
The next chapter is on multi-module projects and this again goes over all the obvious things that you could pretty much work out for yourself as a beginner simply by looking at what Android Studio has to offer. Chapter 8 is on debugging and testing and goes over the use of all the debugging tools, including the very basic things that you will have been using since Eclipse, like logcat.
Chapter 9 is about using Git with Android Studio and here your biggest problem is getting to grips with Git rather than Android Studio. The same is true of the topic of Chapter 10, continuous integration.
Chapter 11 explains how to use the NDK, but really adds nothing much over and above the instructions for installing the NDK on the web. Something about debugging Java and NDK projects would have been helpful.
Chapter 12 explains how to write your own IntelliJ plugin. Of course IntelliJ is what Android Studio is based on. It is a short introduction that might just get you started, but why no information on creating project templates? The final chapter goes over third-party tools that you can use with Android Studio, It is a nice catalog, but no real help in picking what might be useful.
Overall I was very disappointed in this book. In no way is it an expert's book and it has a lot of its space dedicated to screen dumps and walkthroughs of using Android Studio's wizards and templates. It looks and feels like the first couple of chapters that you will find in almost any programming book where you are introduced to the IDE you will use, only spread throughout the entire book. It basically spends far too much time describing what you see when you use Android Studio.
I'm sure that if you read it carefully you will find some things that are helpful, but it never really gets much beyond making you aware that something exists and you might want to use it. On the other hand there are features in Android Studio that it ignores, such as the string editor that helps you create translations of your App or the menu editor, which at the moment is a bit incomplete.
This is not the exploration that Android Studio deserves and it isn't for the aspiring expert.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.