Why Android?
When Android first arrived in 2008, it was almost seen as a poor relation to the much more stylish iOS on Apple iPhone. But, quite quickly, through diverse handset offers that struck a chord with both the practical price-conscious as well as the fashion-conscious and tech-hungry consumers, Android user numbers exploded. Now, after seven major releases, the annual sales of Android devices is increasing almost every year.
For many, myself included, developing Android apps is the most rewarding thing (apart from our friends and family) in the world.
Quickly putting together a prototype of an idea, refining it, and then deciding to run with it as well wiring it up into a fully-fledged app is an exciting and rewarding process. Any programming can be fun, and I have been programming all my life, but creating for Android is somehow extraordinarily rewarding.
Defining exactly why this is so is quite difficult. Perhaps it is the fact that the platform is free and open. You can distribute your apps without requiring the permission of a big controlling corporation—nobody can stop you. And at the same time, you have the well-established, corporate-controlled mass markets such as Amazon App Store, Google Play, Samsung Galaxy Apps, as well as other smaller marketplaces.
More likely, the reason developing for Android gives such a buzz is the nature of the devices. They are deeply personal. You can create apps that actually interact with people's lives. You can educate, entertain, organize, and so on. But it is there in their pocket ready to serve them in the home, workplace, or on holiday. Everyone uses them, from infants to seniors.
This is no longer considered geeky, nerdy, or reclusive; developing Android apps is considered highly skillful and really successful developers are hugely admired, even revered.
If all this fluffy kind of spiritual stuff doesn't mean anything to you, then that's fine too; developing for Android can make you a good living or even make you wealthy. With the continued growth of device ownership, the ongoing increase in CPU and GPU power and the non-stop evolution of the Android operating system (OS) itself, the need for professional app developers is only going to grow.
In short, the best Android developers—and perhaps more importantly, Android developers with the best ideas—are in greater demand than ever. Nobody knows who these future Android coding heroes are and they might not even have written their first line of Java yet.
But is this book for me?
So why isn't everybody an Android developer? Obviously, not everybody will share my enthusiasm for the thrill of creating software that can help people make their lives better, but I'm guessing that because you are reading this, you might.
Unfortunately, for those who do, there is a kind of glass wall on the path of progress that frustrates many aspiring Android developers.
Android uses Java to make its apps respond, think, and communicate with users. Every Android book, even those aimed at so-called beginners, assumes at least an intermediate level of Java and most (if not all), a fairly advanced level. So, good to excellent Java knowledge is a prerequisite for learning Android.
Unfortunately, learning Java in a completely different context to Android can sometimes be a little dull, and some of what you learn is not directly transferable into the world of Android either.
I think it makes more sense, is vastly more enjoyable, and is significantly quicker and more rewarding, to teach Java in a purely Android environment—to teach Java with the single overriding goal of learning to develop professional standard Android apps. And that's what this book is about.