FOREWORD

“A bad workman always blames his tools.”

When my brother and I were growing up in leafy, suburban England, my father relied on that old proverb. My brother and I often found excuses to avoid the admittedly small number of chores we were asked to do, and we placed the blame for not completing the task at hand on an inanimate object that couldn't answer back. This proverb was my father's standard response to our excuses, and it immediately negated our protestations.

As I've gotten older, I have learned that there is far more wisdom in this old proverb than merely getting young boys to complete their chores. It is not just about ensuring that you have the right tools for the task at hand, but it is also about having the knowledge of how to use them effectively that is key to being productive. If you think about the standard tools in a handyman's toolkit, it is pretty clear to most people that a hammer is not the most appropriate tool to remove a screw from a piece of wood, but as tools become more complex and refined, these distinctions become less clear.

In the Android development world, the de-facto standard development tool is Android Studio, not least because it is under extremely active development by Google—the same organization responsible for Android itself. Since the early preview versions arrived in May 2013, the feature set has grown quite considerably and continues to do so at an impressive rate. If we also consider that Android Studio is built on the foundations of IntelliJ IDEA—which is already an extremely feature-rich development environment—then it should be pretty clear that any analogies with hammers or screwdrivers are going to break down rather quickly. Rather than comparing Android Studio with individual tools, it is, perhaps, better to consider it as the entire toolbox, which contains lots of individual tools that can sometimes be used individually, sometimes be used together, but, when used effectively, can simplify and speed up many of our everyday development tasks—including the really mundane or repetitive ones that we all hate!

Modern software development is so much more than simply writing code, and this is especially true on Android. The main logic of your app may be written in Java. You also have resources (which are largely XML-based) such as vector drawables (which incorporate SVG path data into that XML), build files (which are groovy/grade files), and test source code (which is Java with test domain–specific dialects such as Espresso, Fest, or Hamcrest). This is before you start considering frameworks that change the syntax and flow of your code, such as Rx, and even alternate languages that are gaining traction, such as Kotlin. Mastery of all of this can be hard. The ability to “context switch” between different components, languages, frameworks, and dialects is made much easier by basic features such as code highlighting and pre-compilation, which show errors inline as you code. But we are so used to these that we hardly notice them, and because they have become second nature to us, context switching itself becomes second nature.

While using the tools available until they become second nature is important, a prerequisite for that is actually knowing what tools there are and how to use them effectively. That is where this book comes in. Murat and Onur have provided a guide to Android Studio and its many facets that will be of great value to both the novice and the seasoned Android Studio user alike.

Mark Allison
June 2016

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset