Author: Paula Beer and Carl Simmons
Audience: Kids and other beginners
Reviewer: Mike James
Over the festive season IProgrammer reviewers take a well-deserved break having picked a selection of best books of the year. The final choice is a great way to learn to program and is written for all ages.
App Inventor is a much overlooked graphical language for creating Android apps. It is free and is easy to use but not so easy that you wouldn't learn quickly more with the help of a book.
There isn't much about this book to dislike. It is well written, colorful and fun. Its only problem is that you might not know what App Inventor is or why it is a great way to learn to program and a great way to make Android apps without the years of learning.
App Inventor makes use of a drag-and-drop graphical language which is a good way to program if you are just starting or if using a keyboard slows you down. It can be used to create real apps that can be run on an Android device very easily. The good thing about it is that you can create your first app in a few minutes and it can be fairly impressive. From this basic starting point you can progress to producing apps that are really useful or, at the very least, fun.
The first chapter gives some background and explains how to set up App Inventor 2. This isn't difficult because it is a web based development system. What can be more difficult is setting up a phone to run the resulting app and this chapter explains the options. By the end of the chapter you have a working app and you can make use of App Inventor.
Chapters 2 and 3 move on to consider the user interface and the details of how to use the editor. A simple example app is used to show how to build up a UI and the use of the canvas to draw general graphics is explained. Chapter 4 introduces events which are, of course, essential to making the UI do something. Here we learn about sprites and animation.
Chapters 5 and 6 are a painless introduction to some of the fundamental ideas of programming - variables, conditionals, loops and lists. All of these ideas are introduced as part of examples and you hardly notice that you are being introduced to difficult ideas because you are made to see that they are necessary ideas to get the job done.
Chapter 7 builds on events with clocks and timers and the example is "splat the rat". Chapter 8 uses timers to create animations and there are more fun examples - creepy spider, cheeky hamster and so on.
From this point on the book turns to aspects of Android programming that are unique to the mobile platform. Chapter 9 show how to make use of the compass and position sensors. Chapter 10 deals with barcodes and scanning. Chapter 11 is about speech and storing data. Chapter 12 moves to the web with the use of the the WebViewer component. Chapter 13, explains how to use location data
The final two chapters are on general ideas such as how to go about creating an app, publishing and app and where App Inventor might be going in the future.
The book is well written and has lots of colorful illustrations. However, it isn't a picture book and there is a lot of reading if you want to get the goodness out of it. It is logically presented and there isn't too much forward referencing.
About the only problem is the way that the code has to be presented as diagrams of blocks put together in what look like complicated ways. If you pick up this book and look at something in the middle you might be put off because it looks difficult. If you start at the beginning, however, and work your way to the "difficult" diagram it should all make sense and you should be able to create the diagram for yourself. You really do need to start at the beginning and work through.
The really good thing is that there are lots of projects that look exciting and aren't to difficult. This is a great book to motivate a beginner, but as you might guess from the project titles most of them are aimed at small children - adults will just have to pretend to like Hungry Spider and the rest.
A great introduction to programming for the smaller person (perhaps with the help of a larger person).
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.