# App Inventor

App Inventor ist eine ursprünglich vom US-amerikanischen Unternehmen Google Inc. entwickelte Integrierte Entwicklungsumgebung, um Anwendungen für Android zu programmieren. Die verwendete grafische Schnittstelle ermöglicht es Anwendern, per Drag and Drop grafische Blöcke (grafische Programmiersprache) zu einer Anwendung für Mobiltelefone mit dem Android-System zu erstellen.

## Geschichte

Der App Inventor wurde erstmals am 12. Juli 2010 als closed Beta für registrierte Benutzer zur Verfügung gestellt. Seit dem 15. Dezember 2010 ist die Anwendung öffentlich zugänglich.
Bei der Erstellung des App Inventors nutzte das Unternehmen Forschungsarbeiten im Bereich der Bildungsinformatik und innerhalb der Google Online-Entwicklungsumgebungen.
Der Block-Editor verwendet die Open-Blocks Java-Bibliothek zur Erstellung von grafisch-basierten Programmiersprachen. Open-Blocks wird durch das Massachusetts Institute of Technology's Scheller Teacher Education Program (STEP) bereitgestellt und leitet sich aus der Masterarbeit von Ricarose Roque ab. Eric Klopfer und Daniel Wendel vom Scheller-Programm unterstützen die Verbreitung von Open-Blocks unter der MIT License. Die visuelle Programmierung von Open-Blocks ist eng mit StarLogo TNG verbunden, einem Projekt von Klopfers STEP und Scratch und der MIT Media Laboratory's Lifelong Kindergarten Group. Diese Projekte selbst sind vom konstruktivistischen Lernansatz geprägt, welcher die kreative Entfaltung von Schülern wie Lehrern im Rahmen des Unterrichts befördern soll. Als solche sind sie Teil einer laufenden Weiterentwicklung des Wissensstands der Bildungsinformatik, die mit der Arbeit von Seymour Papert und der MIT Logo Gruppe in den 1960er Jahren begann und durch die Arbeiten von Mitchel Resnick an Lego Mindstorms und StarLogo weiter fortgeführt wurde.
Der Compiler übersetzt die grafischen Blöcke für die Implementierung auf Android. Genutzt wird die Entwicklungsumgebung Kawa und eine Kawa spezifische Abwandlung der Programmiersprache Scheme. Diese wurde von Per Bothner entwickelt und unter der GNU General Public License verbreitet.
Am 31. Dezember 2011 wurde der Support für App Inventor im Rahmen der Auflösung der Google Labs seitens Google beendet. Nachdem das MIT den App Inventor zunächst als geschlossene Beta für ausgewählte Nutzer betrieben hat, ist die Anwendung seit dem 4. März 2012 wieder für die Öffentlichkeit verfügbar. Im Dezember 2013, mit dem Start der Hour of Code, veröffentlichte MIT den App Inventor 2 und benannte die originale Version um in „App Inventor Classic“.
Der MIT App Inventor hatte 2015 fast 3 Millionen Benutzer aus 195 Ländern, und über 100.000 Benutzer pro Woche bauten insgesamt mehr als 7 Millionen Android-Apps.

## Aufbau

Der App Inventor teilt sich in zwei Ebenen auf: der Design Editor und der Blocks Editor.

### Design Editor

Mit dem Design Editor wird das Layout der App gestaltet. Hierfür steht eine Auswahl verschiedener Kategorien zur Verfügung. Es können einfache Eingabefelder ebenso wie vorkonfigurierte Social Media Komponenten ausgewählt werden. Außerdem können über den Design Editor verschiedene, im Smartphone verbaute Hardware-Komponenten (z. B. Lautsprecher, Gyroskop-Sensor) ausgewählt werden, um diese später in die App einzubinden.

### Blocks Editor

Im Blocks Editor wird die Programmierung der im Design Editor selektieren Komponenten vorgenommen. Die einzelnen Komponenten werden dabei zueinander in Beziehung gesetzt und durch Parameter und Kontrollstrukturen einer logischen Ordnung zugeführt. Jede Komponente besitzt eine Auswahl verschiedener Blöcke. Zusätzlich zu den jeweiligen Funktionen der Blöcke stehen Kontrollstrukturen, wie while- und for-Schleifen, sowie logische und mathematische Funktionen als Programmblöcke zur Auswahl. Der Blocks Editor stellt auch einen Emulator zur Verfügung, unter dem die in Entwicklung befindliche Anwendung auch ohne ein real vorhandenes Android-Gerät getestet werden kann.

## Hintergrund

Die Anwendung soll den Einstieg in die Programmierung von Applikationen für Smartphones erleichtern. Durch einen leichteren Zugang zur Programmierung eigener Applikationen soll die Bindung vor allem junger Menschen an Mobiltelefone mit dem Android-Betriebssystem erhöht werden.
Für die Nutzung des App Inventors ist neben einer bestehenden Internetverbindung ein Google-Konto erforderlich.
Eine Offline-Version (32- oder 64-bit, auch als Portable) ist zu erhalten als Freeware, letztes Update Vers. 4.6 am 6. Juni 2018.
Der App Inventor wird von der Roberta-Initiative dazu genutzt, Kinder und insbesondere Mädchen für die sogenannten MINT-Fächer Mathematik, Informatik, Naturwissenschaften und Technik zu begeistern und sie darin zu fördern.

## Kritik

Im April 2018 wurden Vorwürfe bekannt, dass in App Inventor „standardmäßig private Krypto-Schlüssel fest in den Quellcode verbaut“ würden.