This is a review of Oreilly’s Android Cookbook. A few notes of disclosure:
1. I only read (and therefore review) books that I’m almost certain that I’m going to love.
2. I have every Ian Darwin book and think the guy is a technology God.
Yes, I like the book.
But the problems get started right away, with Recipe 1.2 “Learning the Java Language”. This recipe should not be in this book because if you are trying to do Android development and bring flimsy Java to the table, you are not going to have any fun at all. Java is hard to learn and takes years. CompSci departments think Java is 3 or 6 credits. Their graduates demonstrate that this is not so. The iPhone programming books do this too. They tell you to brush up on Objective-C and Cocoa. But they fail to say that “brushing up” is going to take years for someone with no C to start with. Except for “Learning Java”, I think all of the books recommended are good ones, especially Head First Java, 2nd Edition. Thinking in Java, 4th edition is also a great book. I would add “The Java Programming Language” even though it gets very difficult during the second half of the book. There are a few other bits of context that would-be Android developers should think about:
0. Repeat, Java is hard…be sure to bring a strong Java capability to Android development.
1. Java and Oracle and open source do not add up to a clear future.
2. Android adopts the new layout-driven programming paradigm. Its everywhere–HTML5, Rails, iOS development. Its the kind of programming where tons of things are wired into proprietary XML formats. Yes, you will need to squint at XML formatting. XML-wired layouts and XML-wired everything is good-we don’t have to write tricky display code to deal with rendering 8,000 different display possibilities. But its not fun to figure out whether a <LinearLayout> goes inside of a <resources>. No fun! Hold your nose and don’t make the display with programming–make it with XML. You’ll save time and boost quality.
I loved the Tipster program in Recipe 1.15. It follows in the long tradition (started, possibly, by 1978’s “The C Programming Language”) of tossing the reader into the deep end with a real program.
I have been able to make several Android applications run because of this book and a few others that I liked, including Ed Burnette’s Hello Android, 3rd Edition, Reto Meier’s Professional Android 4 Application Development, 3rd Edition, Wei-Meng Lee’s Beginning Android 4 Application Development, and Ian F. Darwin’s Android Cookbook.
A few notes on real programming:
1. You have to use the Google-supplied Eclipse. Apparently Google got sick of waiting for Eclipse.org to fix bugs. The Google-supplied Eclipse works better.
2. Eclipse Run Configuration and Adroid AVDs constantly need to be deleted and recreated. Some of these problems have been repaired. But even circa Fall 2013, I find myself repeatedly deleting and recreating the AVD and the Run Configuration in order to get the old AVD to forget.
3. Creating AVDs to use the Intel and to use Snapshots definitely speeds up development. These settings should be the default. Even on the biggest machine available, modest apps take forever in the ARM/no-snapshot default setup.
4. Be persistent. Android development is getting easier, but there are hiccups that are not your fault. Keep working and have good books on hand, including Android Cookbook.