App Inventor is a tool from Google Labs that is intended to make it easy for anyone -- programmers and non-programmers, professionals and students -- to create mobile applications for Android-powered devices.
To use App Inventor, Google says you do not need to be a developer. App Inventor does not require programming knowledge. Instead of writing code, you visually design the way the app looks and use "blocks" to specify the app's behavior. Blocks are available for storing information, repeating actions, and performing actions under certain conditions. Even blocks to talk to services like Twitter.
The blocks editor uses the Open Blocks Java library for creating visual blocks programming languages. Open Blocks is distributed by the MIT and derives from thesis research by Ricarose Roque. Eric Klopfer and Daniel Wendel have made Open Blocks available and for their help in working with it. Open Blocks visual programming is closely related to the Scratch programming language, another MIT Media Lab project.
The compiler that translates the visual blocks language for implementation on Android uses the Kawa Language Framework, a framework written in Java for implementing high-level and dynamic languages and compiling them into Java bytecodes, and Kawa's dialect of the Scheme programming language, developed by Per Bothner and distributed as part of the Gnu Operating System by the Free Software Foundation.