Google's App Inventor is a visual programming language for creating mobile phone applications on
Android devices. It provides both a great way to learn how to program and, arguably, the fastest method for creating mobile apps in the world. App Inventor is going to change not only how apps are created, but who creates them.
If you have never programmed a computer, the App Inventor tool, and the materials provided on this site, provide a great way to learn. No programming knowledge is assumed and you can begin building apps within minutes. The notes on this site were used for my course on App Inventor at the University of San Francisco

App Inventor at USF

Though App Inventor is designed to allow non-programmers to program, it is also a valuable tool for programmers-- the tool's visual nature and high-level components significantly increase the speed by which you can develop apps and prototypes.

App Inventor is a block-editing tool similar to the programming environment scratch developed at MIT. Here's a snapshot of App Inventor in action-- the blocks shown are from a "No Text While Driving" app written by a USF Political Science student Daniel Finnegan: