Was kann der App Inventor?

Android-Apps aus dem Baukasten

Kay Glahn

Obwohl die Anzahl der Nutzer von Smartphones ständig steigt und immer mehr normale Nutzer auch Applikationen herunterladen, blieb die Anwendungsentwicklung bisher vor allem spezialisierten Softwareentwicklern und Experten vorbehalten. Google will dies mit dem App Inventor grundlegend ändern und die einfache Entwicklung von Anwendungen per Drag and Drop für jeden ermöglichen.

Bisher musste man zum Entwickeln einer Applikation für Android eine Reihe von Tools installieren, neben dem Android SDK vorzugsweise noch die Eclipse IDE. Vor allem aber war ein erhebliches Know-how im Bereich der Softwareentwicklung erforderlich. Neben Java musste man sich mit den APIs und dem Architekturkonzept von Android auskennen. Der App Inventor soll es jedem Nutzer ermöglichen, Ideen mit wenig Aufwand und ohne jegliche Programmierkenntnisse in eine fertige Applikation umzusetzen. Anstatt Code zu schreiben, kann man mit dem App Inventor das Aussehen der Applikation visuell gestalten und deren Verhalten mit so genannten Visual Blocks definieren. Google sieht als Zielgruppe für das Tool vor allem auch Schüler, die damit im Unterricht auf einfache Weise an die Anwendungsentwicklung herangeführt werden sollen. Der Projektleiter Harold Abelson erklärte gegenüber der New York Times: „Ziel ist es, den Menschen in dieser mobilen Welt die Möglichkeit zu geben, selbst etwas zu erschaffen und nicht nur Konsument zu sein“.

Entwickeln im Webbrowser

App Inventor, der sich zurzeit noch in der Betaphase befindet, ist eine Webapplikation, die im Browser ausgeführt wird und auf der Java-Web-Start-Technologie basiert. Um die Verbindung zu einem Android-Gerät per USB herzustellen und Anwendungen direkt auf einem echten Gerät zu testen, ist es allerdings zunächst erforderlich, die App-Inventor-Extras-Software zu installieren, die im Wesentlichen einen Treiber für die Anbindung des Android-Geräts breitstellt. Das Gerät muss außerdem konfiguriert werden, um Anwendungen per USB darauf auszuführen.

Um App Inventor nutzen zu können, muss man bei Google den Zugang zu der Webapplikation beantragen. Voraussetzung hierfür wiederum ist ein Google-Mail-Account, der dann auch gleichzeitig als Login dient. Dies muss zwar keine Gmail-Adresse sein, aber eine E-Mail-Adresse, die mit einer Google ID verknüpft ist, denn sowohl die Anmeldung zu der Webapplikation als auch die Speicherung von Projekten ist mit dem Google-Account verknüpft.

Da Google das System zurzeit Schritt für Schritt ausrollt und seine Kapazitäten erweitert, werden die Accounts auch nur schrittweise vergeben, um den Support sowie ausreichende Serverkapazitäten garantieren zu können. Laut Google kann es deshalb im Moment noch mehrere Wochen dauern, bis man seine Willkommens-E-Mail mit der Zugangsbestätigung erhält.

App Inventor beinhaltet auch einen Phone Emulator, der es ermöglicht, Anwendungen zu entwickeln, auch wenn man nicht über ein reales Android-Gerät verfügt. Obwohl die Funktionalität des Emulators im Gegensatz zum echten Gerät etwas eingeschränkt ist und die Integration in den App Inventor noch nicht optimal ist, so eignet er sich trotzdem sehr gut, um erste Gehversuche zu machen und das Ergebnis seiner Entwicklung anzusehen. Der bevorzugte Weg ist allerdings das direkte Testen der Applikation auf dem per USB angeschlossenen Android-Gerät. Hierbei kann man den Fortschritt der Anwendung direkt auf dem Endgerät beobachten, während man diese im Webbrowser entwickelt. Sobald man die Applikation fertig gestellt hat, kann man ein Application Package erstellen, das dann in Form einer apk-Datei weitergegeben und auf einem beliebigen Android-Gerät ausgeführt werden kann.

Abb. 1: Mit dem Designer des Googles App Inventor lässt sich der Screen der Applikation per Drag and Drop gestalten

Das App-Inventor-Tool besteht aus zwei wesentlichen Einheiten, die zum Erstellen einer Applikation von Bedeutung sind. Dies ist zum einen der Designer und zum anderen der Blocks-Editor. Mit dem Designer kann zum Beispiel ein Button auf dem Screen platziert werden und mit dem Blocks-Editor wird dann das Verhalten beim Betätigen des Buttons definiert. Google hat bei der Implementierung vor allem auf bestehende Open-Source-Projekte gesetzt. So verwendet der Blocks-Editor die Open Blocks Java Library zum Erstellen von Visual-Blocks-Programmiersprachen, die vom MIT (Massachusetts Institute of Technology) bereitgestellt wird und enge Verbindungen zu der Scratch-Programmiersprache hat. Der Compiler, der die Visual-Blocks-Sprache in den Bytecode für Android übersetzt, stammt aus dem Kawa Language Framework und Kawas Dialekt der Scheme Programming Language, die als Bestandteil des Gnu-Betriebssystems der Free Software Foundation bereitgestellt werden. Leider erlaubt es der App Inventor nicht, Java-Quellcode zu generieren, was sehr hilfreich wäre, um ein App-Inventor-Projekt in Eclipse oder in eine andere IDE zu importieren. Google denkt allerdings über ein Component Development Kit nach, mit dessen Hilfe sich neue Komponenten für App Inventor in Java entwickeln und sich somit in App Inventor Applikationen integrieren ließen.

App Inventor bietet zwar eine Möglichkeit, den Quellcode einer Anwendung herunterzuladen und in Form einer zip-Datei abzuspeichern, hierbei handelt es sich jedoch um ein App-Inventor-spezifisches Format, das keinen Java-Code enthält. Dieser Mechanismus kann allerdings zum Austausch von Code zwischen verschiedenen Entwicklern genutzt werden, da man die zip-Datei weitergeben kann und eine andere Person sie dann unter ihrem Account wieder in den App Inventor hochladen und somit die Applikation bearbeiten kann. Ein einfacherer Weg, um mit mehreren Entwicklern an einem Projekt zu arbeiten, besteht allerdings zum jetzigen Zeitpunkt noch nicht.

Nicht nur ein Spielzeug

Wer nun glaubt, dass es sich bei App Inventor lediglich um eine Spielzeugsprache handelt, der täuscht sich. Obwohl er einige Einschränkungen hat, kann man komplexe Anwendungen entwickeln, die auf viele der Android-Funktionalitäten Zugriff haben. Die Sprache stellt Konstrukte wie foreach, while und if-else in Form von Visual Blocks bereit und es existieren High-Level-Komponenten und Operationen in Form von Blocks für eine Vielzahl von Android-Funktionalitäten, jedoch nicht für alle.

Abb. 2: Ein Ausschnitt aus Googles Beispielanwendung „Quiz Me“ verdeutlicht den Aufbau der Anwendung mithilfe von Visual Blocks

So stellt App Inventor zum Beispiel Zugriff auf den GPS Location Sensor zur Verfügung, um Loaction-based Applikationen zu entwickeln, oder man kann auf Phone-Funktionalitäten zugreifen und darüber beispielsweise SMS-Nachrichten senden und empfangen. Außerdem stehen über die TinyWebDB-Komponenten Mechanismen zur Kommunikation mit Web Services und Datenbanken bereit. Auf diese Weise können zum Beispiel Anwendungen entwickelt werden, die mit Amazon, Twitter oder Yahoo Finance kommunizieren oder Daten der Anwendung in einer Datenbank im Netzwerk ablegen, um sie zu speichern oder mit anderen Nutzern auszutauschen. Mithilfe der Komponente ActivityStarter lassen sich auch beliebige andere Applikationen auf dem Android-Gerät starten. Hierbei können mithilfe einer DataUri Daten an die andere Applikation übergeben werden, die dann wiederum Daten zurückliefern kann. Hierdurch kann man zum Beispiel die Goolge-Maps-Applikation aufrufen und eine bestimmte Position auf der Karte anzeigen lassen. Eine wesentliche Einschränkung, die es zurzeit bei App Inventor gibt, ist, dass man keine Anwendungen mit mehreren Screens entwickeln kann, was vor allem für komplexere Anwendungen oft erforderlich ist. Als Workaround wird vorgeschlagen, durch Anpassen des Textes von Buttons oder Ändern von Bildern, den Screen zu modifizieren und ihn dadurch wie einen Neuen aussehen zu lassen oder für jeden Screen eine eigene Anwendung zu entwickeln, die sich dann gegenseitig aufrufen können, um von einem Screen zum nächsten zu wechseln. Bisher besteht noch keine Möglichkeit aus dem App Inventor heraus Applikationen direkt in den Android Market hochzuladen. Google arbeitet allerdings an einer Lösung für dieses Problem.

Fazit

Es existieren bereits Tools zur einfachen Generierung von Android-Applikationen auf dem Markt, doch diese sind wie beispielsweise Mobile Roadie meist kostenpflichtig und mit einer regelmäßigen Gebühr verbunden. Google geht, was die Flexibilität und Programmierbarkeit angeht, noch einen ganzen Schritt weiter und bietet das Ganze kostenlos an. Man hat hier wirklich ein Tool geschaffen, das die Applikationsentwicklung für jeden Interessierten zugänglich macht, indem das Entwickeln mit dem Zusammenstecken von Legosteinen vergleichbar wird.

Vermutlich wird dadurch die Anzahl der Applikationen in Googles Android Market ansteigen und könnte selbst die Menge an Apps in Apples AppStore übertreffen, wenn erst einmal der normale Nutzer anfängt, seine eigenen Applikationen in den Android Market hochzuladen. Google sollte dann auf jeden Fall seine Filterfunktionen optimieren, damit man Spam-Applikationen von sinnvollen Anwendungen unterscheiden kann. Auf jeden Fall wird der App Inventor die Popularität von Android-Apps weiter steigern, selbst dann, wenn er nur zu experimentellen Zwecken oder im Unterricht eingesetzt wird. Auf jeden Fall bietet er aber auch eine ausgezeichnete Möglichkeit, mal schnell einen Prototyp zu Demonstrationszwecken zu entwickeln oder mal eine kleine Anwendung für den Privatgebrauch zu „erfinden“.

Kay Glahn ist unabhängiger IT-Berater mit den Schwerpunkten Mobile Applications und Services. Er berät internationale Kunden bei der Umsetzung von Projekten im Mobile-Bereich.
Geschrieben von
Kay Glahn
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.