Next: , Previous: , Up: Top   [Contents]

4 Preface

Android can be a lot of things depending on your point of view.

For Google, Android is a vehicle to expand their business into new areas where they were absent a few years ago. Google has evolved from a web search engine into a company with many product lines and businesses—from mobile phones, music, and books to video-on-demand. With the release of Android Lollipop, you can also add TV and wearables to that list.

For mobile manufacturers—such as Samsung, LG and HTC—Android is an Open Source mobile operating system (OS) they can tweak and use without paying royalties.1

For users, the Android OS is less visible but is nevertheless a critical piece of their daily activities. They depend on Android to send and receive emails, chat, take pictures, entertain, and much more. Average users are not power users, and as such they will want quality apps that will run without crashing.

For us as developers, Android is a way to express our creativity (outside of our 9–5 routine), learn mobile software development, and make some money on the side. Regardless of the reason that brings you to Android software development, you are (or will be) faced with the same problems that fellow Android developers encounter every day. These include: fragmentation, legacy code, bad code, ineffective monetization, and so forth. Most of these burdens can be avoided or mitigated by using the right tools and techniques combined with an agile mindset. These effective techniques and tools can help you enjoy Android programming even more by freeing up your time, so you can really develop—instead of just fixing problems, looking for answers on StackOverflow, avoiding pitfalls, or rewriting the same boiler plate code over and over again.2

By the end of this book, you should be a more productive and, therefore, happier Android software developer. You would be surprised what a happy developer can accomplish!



If you omit the fact that Microsoft collected Android patent royalties from Android smartphone manufacturers. (


My definition of boiler plate code is this: Any code that doesn’t add value to the final product. In our case, the product is an Android app. In Lean Startup terms, it’s synonymous to waste (waste of time, resources, money).

Next: , Previous: , Up: Top   [Contents]