I've been a PHP developer for last 7 years now and I decided that I wanted to bring something new to my world of programming. I thought, why not build mobile apps as they are very popular nowadays and I decided to give it a try.
In past I had experience with Flash and ActionScript 3.0 and had built couple of games just for fun, RSS feed application and Augmented Reality application. Flash/ActionScript is great because you can write cross platform applications for both Android and iOS but knowing that it’s not a native application, you need Adobe Air to be installed at users device didn’t make me feel comfortable. Emerging of HTML5 based games, drop of support of Flash by operating systems and browsers made everything worse.
So I decided to play around with Java. I did some researches and found that Java has been #1 most popular and requested programing language for years now and looking at forecasts the future is bright for Java and the developers themselves.
There are quite a lot of books, tutorials and tons of articles about Java programming. I started from “Java: A Beginner's Guide”. But soon I got bored with it. There’s too much theory and knowing the process of learning by yourself (like I had with PHP/HTML/CSS/jQuery) you need to develop some application that you can test, play around, maybe dig a little bit more on the web and add some cool features on your own. And that makes you feel the level of accomplishment.
“Java: A Beginner's Guide” is a great book but it’s more like a dictionary, something that stays on your shelf and you need it when you need to find definitions and explanations of something very “Java” specific. It’s more like official documentation of Java.
After digging though tons of books and their contents I discovered “Learning Java by Building Android Games”. It was a great “Discovery”, yeah I mean it. The title is self-explanatory, clear and very intriguing.
How can you build an application and a game without knowing the programing language itself? The Key is - the book is very well organized.
First it starts with giving and overall look at the Java and Android worlds. Then you setup the environment where you’ll be working and the author, John Horton uses Android Studio and this is one more plus to this book. Android studio is cross platform, neat design and enhanced with all tools and UI elements that you need for your android application, the way like Xcode is organized for iOS development.
When you are building an application it is crucial to have the visual and design parts to be ready for the use so you can directly start thinking of your project and not – how to make a table view item? How to make a button? In addition Android studio has built in SDK of Android and Android emulator so you don’t have to install in manually as if in case you would work with NetBeans or Eclipse.
Personally I love NetBeans and I use it on daily basis when working with PHP/HTML/CSS/JS, but I wouldn’t use it if I was building Android apps.
Next – you meet Java itself and learn to Speak Java. Everything is very well organized, and when reading more and more you get more involved into this book. The apps you build will feature sound FX, graphics, and animations. You will learn everything from using the standard Android User Interface (UI) designer. After each chapter you feel that your knowledge is not just theory but it is a practical stuff that you know about Java language and real programing.
When you reach the end of the book you’ll be able to say that you have finished products/applications/games (call them whatever you want) and you can now build your own apps based on examples for the book, or just go and publish them. When I finished reading this book I had the feeling of achievement. Now I know a lot about Java programming and can build applications and games for Android with ease. Learning Java by Building Android Games by John Horton should be a discovery for everyone, novice or experienced developer to dive into the Android world with Java.
This book falls into my Top 10 list of books, for sure.