Google App Inventor is an application provided by Google that allows anyone to create software applications for the Android OS. It uses a graphical interface, very similar to Scratch and the StarLogo TNG user interface, that allows users to drag-and-drop visual objects to create an application that can run on the Android system, which runs on many mobile devices. The application was made available on July 12, 2010.
The application is aimed towards people who are not familiar with computer programming, such as elementary school students and hospital nurses. The reasoning is that if young people develop applications to fulfill their own needs and install them on their own phones, they will more likely use the phones more often, or switch to the Android OS if they are not already using a phone that runs the system. In creating App Inventor for Android, Google draw upon significant prior research in educational computing, and work done within Google on online development environments.
The blocks editor uses the Open Blocks Java library for creating visual blocks programming languages. Open Blocks is distributed by the Massachusetts Institute of Technology's Scheller Teacher Education Program (STEP) and derives from master's thesis research by Ricarose Roque. Professor Eric Klopfer and Daniel Wendel of the Scheller Program supported the distribution of Open Blocks under the MIT License.
Open Blocks visual programming is closely related to the StarLogo TNG, a project of the Klopfer's STEP, and Scratch, a project of the MIT Media Laboratory's Lifelong Kindergarten Group. These projects are themselves informed by constructionist theories of learning, which emphasizes that programming can be a vehicle for engaging powerful ideas through active learning. As such, it is part of an ongoing movement in computers and education that began with the work of Seymour Papert and the MIT Logo Group in the 1960s and has also manifested itself with Mitchel Resnick's work on Lego Mindstorms and StarLogo.
The compiler that translates the visual blocks language for implementation on Android uses the Kawa language framework 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.