© Spirit Boom Cat/Shutterstock.com
Teil 2: Das User Interface entwerfen

Von der Idee bis zum Store


In Teil zwei unserer Serie geht es um Design und Gestaltung der Benutzerschnittstelle. Neben der technischen Umsetzung sind die gestalterischen Elemente entscheidend. Designrichtlinien sind dabei eine wichtige Hilfe. Zuvor muss man sich mit dem technischen Know-how vertraut machen. Ausgangspunkt ist der Lebenszyklus einer Activity.

Ziel dieser Artikelserie ist das Durchlaufen des kompletten Entwicklungszyklus einer Android-App anhand eines konkreten Beispiels. Das zeitliche Szenario ist realistisch, auch in der Praxis hat man selten mehr Zeit als drei bis vier Monate. Dauert es zu lange, ändern sich die Anforderungen aus Sicht der Nutzer, und auch die technischen Voraussetzungen sind wenig stabil. Neue API-Versionen und Designrichtlinien führen zu einer hohen Dynamik, das gilt insbesondere für die Android-Plattform.

Am Ende dieses Entwicklungsschritts müssen die wesentlichen Facetten des User Interface stehen. Klar, im Lauf der weiteren Entwicklung werden wir an der einen oder anderen Stelle noch Anpassungen vornehmen. Es sollte sich dann aber eher um Feinheiten oder gestalterische Elemente handeln. Das User Interface ist entscheidend für den Erfolg einer App. Es stellt die Schnittstelle zwischen dem Smartphone oder Tablet und seinen Nutzern dar. Ein ansprechendes Design, eine zeitgemäße Gestaltung und eine durchdachte Benutzerführung sind wichtige Erfolgsfaktoren.

Activity und Lebenszyklus

Die Basis für die Benutzeroberfläche einer Android-App sind Activities [1]. Es handelt sich dabei um in sich geschlossene Komponenten, die eigene Aktionen des User Interface (UI) repräsentieren. Beispiele für eine Activity sind Screens für die Terminbearbeitung, das Senden einer SMS oder einen Anruf. Apps in Android bestehen meist aus mehreren Activities. Eine Activity ist eine Kombination aus einer Bildschirmseite und dem zugehörigen Quellcode. Die eigentliche Oberfläche wird dabei deklarativ in XML erstellt. Dabei kann man mit Hilfe des integrierten Designers arbeiten oder den XML-Code vollständig manuell erstellen. In der Praxis geht man in der Regel kombiniert vor. Jede Activity sollte genau für eine exakt formulierte Aufgabe verantwortlich sein. Alle Activities leiten von der Klasse android.app.Activity ab. Die Gestaltung des UI umfasst zum einen das Design der Bildschirmseiten – etwa Auswahl und Anordnung der Elemente – und zum anderen die Navigation zwischen den Seiten. Navigiert ein Benutzer durch die App, verlässt sie und kehrt wieder zurück, durchlaufen die Instanzen der Activities verschiedene Zustände. Die Gesamtheit aller Zustände einer Activity lassen sich anhand eines Lebenszyklus abbilden (Abb. 1).

krypczyk_bochkor_android_2_1.tif_fmt1.jpgAbb. 1: Lebenszyklus einer Activity im Android-System [2]

Die Klasse Activity bietet eine Reihe von Callback-Methoden, mit denen die Activity erkennen kann, dass sich der Status geändert hat. Statusänderungen treten z. B. ein, wenn das System eine Activity erstellt, sie stoppt, aktiviert oder wenn der Prozess beendet wurde, in dem sich die Activity befindet. Innerhalb der Callback-Methoden kann man angeben, wie sich die Activity verhält, wenn der Benutzer sie verlässt und gegebenenfalls zu ihr zurückkehrt. Die Callback-Methoden sind also dafür zuständig, die richtigen Aktionen der App beim Eintreten bestimmter Ereignisse festzulegen. Sehen wir uns diese Methoden etwas genauer an:

onCreate: Sie müssen diesen Rückruf implementieren. Er löst aus, wenn das System die Activity zum ersten Mal erstellt. Hier führen Sie die grundlegende Logik aus, wenn die Activity gestartet wird. Die onCreate-Methode wird nur einmal für die gesamte Lebensdauer der Activity ausgeführt. Beispielsweise können Daten an Elemente des UI gebunden werden. In dieser Methode wird beispielsweise auch die Layoutdatei angegeben, in der das UI mittels XML definiert wird.

onStart: Die Activity wird für den Nutzer sichtbar. Die App tritt in den Vordergrund und wird interaktiv. Bei dieser Methode initialisiert die App z. B. den Code, der die Benutzeroberfläche verwaltet. Die Methode onStart wird sehr schnell abgeschlossen, das System ruft danach die Methode onResume auf.

onResume: Der Status, in dem die App mit dem Benutzer interagiert. Die App bleibt in diesem Zustand, bis der Fokus zu einer anderen App wechselt, z. B. einem eingehenden Telefonanruf. Tritt ein unterbrechendes Ereignis auf, wechselt die Activity den Status und ruft die Methode onPause auf. Kehrt die App danach wieder in diesen Status zurück, wird erneut die Methode onResume aufgerufen.

onPause: Das System registriert diese Methode als erstes Anzeichen dafür, dass der Benutzer die Activity verlässt. Es zeigt an, dass die Activity nicht mehr im Vordergrund steht. Sie kann jedoch noch sichtbar sein, wenn der Multi-Window-Modus aktiv ist. Verwenden Sie die onPause-Methode zum Anhalten oder Anpassen von Vorgängen, die nicht im Hintergrund fortgesetzt, jedoch bald wieder aufgenommen werden. Man kann die onPause-Methode auch verwenden, um Systemressourcen freizugeben, während die Activity pausiert.

onStop: Ist die Activity für den Benutzer nicht mehr sichtbar, hat sie diesen Status erreicht, z. B., wenn eine neu gestartete Activity den gesamten Bildschirm ausfüllt. Das System kann auch onStop aufrufen, wenn die Activity beendet wird. In der onStop-Methode sollten nicht mehr benötigte Ressourcen freigegeben werden, während die App für den Benutzer nicht mehr sichtbar ist.

onDestroy: Wird aufgerufen, bevor die Activity durch den Nutzer oder das System zerstört wird. Wird die Activity beendet, ist onDestroy deren letzte aufgerufene Methode. Hier sollten endgültig alle noch benutzten Ressourcen freigegeben werden.

Activities sind gewissermaßen die Fenster einer Android-App. Sie benötigen mindestens eine Activity, um das UI Ihrer App zu gestalten. Die konkrete Gestaltung umfasst das Layout, die Komponenten des Layouts und die Navigation. Das Layout und die Komponenten betrachten wir jetzt genauer. Die Navigation betrifft die Intera...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang