Google App Inventor is a visual programming language initiated by Google and taken over by MIT in 2012. It is designed for ordinary users without special programming knowledge and allows the creation of applications for the Android operating system.
In order to interact with the user in the simplest way, the program has been visually designed: to create an application, and the user visually draws how the application will look and uses blocks to specify the behavior of its application.
App Inventor uses a graphical interface, much like the user interface of Scratch and StarLogo TNG, which allows users to place visual objects to create an application that can run on the Android or other systems.
The reasoning is that if young people develop the application, they will do it to meet their needs with the help of the mobile phone.
With the creation of App Inventor for Android, Google has done significant prior research in educational programming.
The block editor uses the Java Open Blocks library to create visual blocks programming languages.
Open Blocks is distributed by the Massachusetts Institute of Technology Scheller Teacher Education Program (STEP) and comes from Ricarose Roque’s master’s dissertation. Professor Eric Klopfer and Daniel Wendel of the Scheller Program supported the distribution of Open Blocks under the MIT license.
The visual programming blocks are closely linked to TNG Star-Logo, Klopfer’s STEP project, and Scratch, a project from MIT Media Laboratory Lifelong Kindergarten Group.
A compiler that translates the visual language of blocks for implementation on the Android system uses the Scheme programming language and Kawa dialect, developed by Per Bothner and distributed as part of the GNU Free Software Foundation operating system.
App Inventor allows, like any visual environment, to create Android applications without writing program code, by creating the application and specifying its behavior by configuring blocks.
The App Inventor team has created blocks for almost anything that can be done with an Android phone, as well as blocks to make “close” programming: variables for storage, blocks “for” and “while” for repeating operations and conditions ( blocks, “if”), so that the application can ask questions and guide answers.
There are even blocks to store information in a database and connection to online services, such as Twitter.
You can build almost any application imaginable with App Inventor: games, informational applications with user-generated data, personal apps, apps to help people communicate, apps that use phone sensors, and even apps that connect to social networks.
Thus, in addition to applications on your personal phone or Android Market, custom applications can be created.
One way to start programming with App Inventor is to make games. You can even use the phone’s orientation sensor to build, for example, a game in which a ball moves through a maze while the player is tilting the phone. But App Inventor is not just for building games.
It can also be used to build educational software: questionnaires and other applications that allow a user to move through a sequence of information. You can create test applications for various studies. All the desired sounds can be added to these questionnaires, using the Music Player component, or the video component to create a test that shows clips from your favorite movies.
Built-in applications do not necessarily have to be based on fixed data but can store, instead of fixed data, user-generated data in a database.