Anzeige
Anzeige
UX & Design

Technische Grundlagen und wichtige Design-Patterns: UI-Design für iOS

Gutes App-Design fällt nicht vom Himmel – auch unter iOS nicht. Denn auch hier spielt die Fragmentierung der Geräte eine Rolle. Und auch hier hängt der Erfolg einer App ganz wesentlich vom Interface-Design und der Einhaltung wichtiger Design-Prinzipien ab. Die wichtigsten Grundlagen und Tipps im Überblick.

8 Min.
Artikel merken
Anzeige
Anzeige

Nach wie vor hält sich hartnäckig das Gerücht, dass die Entwicklung visuell ansprechender und ergonomisch sinnvoller iOS-Anwendungen trivial sei. Tolle Devices, tolle Tools und keinerlei Probleme mit der Geräte-Fragmentierung, mit der man sich bei anderen mobilen Betriebssystemen herumschlagen muss. Und doch erscheinen immer wieder iOS-Apps, die einfache Probleme mit unglaublich komplexen (wenn auch gut gemeinten) UI-Ansätzen lösen möchten. Immer wieder findet man funktional überladene Anwendungen mit unklarer und viel zu tief geschachtelter Navigation, die darüber hinaus nicht selten auch noch undurchsichtige, eigene UI-Konzepte mit sich bringen.

Anzeige
Anzeige

Dabei lautet die Zauberformel erfolgreicher Apps: Erfülle die Erwartungen des Nutzers. Nicht mehr, aber auch nicht
weniger. Dazu hat Apple von Anfang an klar gemacht, dass ein iPhone- oder iPad-User eine bestimmte, von der Plattform vorgegebene Ergonomie (a.k.a. „Platform Characteristics“) erwartet und genau dies in den „iOS Human Interface Design Guidelines“ [1] manifestiert. In dem Dokument finden sich neben vielen anderen nützlichen Informationen unter anderem auch die „Human Interface Principles“.

  • Asthetic Integrety: Funktionalität und Visualisierung einer App sollten bestmöglich integriert sein. Hier gilt häufig der Leitsatz „weniger (fancy UI) ist mehr.“
  • Consistency: Bereits von der Plattform oder anderen Apps bekannte und gelernte Ergonomiekonzepte sollte der Nutzer in einer App wiederfinden.
  • Direct Manipulation: Direkte Manipulation, wie das Bewegen einer Figur innerhalb eines Spiels durch Wischen mit dem Finger oder das Zoomen des Screens durch Muli-Touch-Gesten ist intuitiver als die Verwendung zusätzlicher, spezifischer UI Controlls (siehe Seite 38).
  • Feedback: Der Nutzer erwartet direktes Feedback für eine Aktion, wie zum Beispiel die Auswahl eines Listenelements.
  • Metaphors: User verstehen eine Anwendung leichter, wenn sie Elemente aus dem realen Leben wiedererkennen und entsprechend nutzen können. Ein Beispiel ist ein Fotoalbum, durch das der Nutzer blättern kann.
  • User Control: Der App-User steuert die Anwendung und initiiert Aktionen – nicht umgekehrt. Eine App sollte Nutzer im aktuellen Kontext lediglich auf sinnvolle Aktionen hinweisen.

Wer sich an diese Punkte hält, ist schon einmal auf einem guten Weg zu einer ergonomisch ansprechenden App. Doch leider liefern diese Prinzipien lediglich die Grundlage für eine gute mobile App. Auf dem Weg zum Ziel sind noch einige Stolpersteine versteckt, die es zu vermeiden gilt.

Anzeige
Anzeige

Aller Anfang ist einfach

Wer nicht bereits aus der Mac-OS-Entwicklerecke kommt, sollte für den Einstieg in die Wunderwelt der iPhone- sowie iPad-Programmierung ausreichend Zeit mitbringen. Die ersten Schritte sind zwar dank sehr guter Tutorials schnell gemacht. Die grundlegenden Konzepte dürften aber für viele – insbesondere Web- und Java-Entwickler – so stark von dem bisher Bekannten abweichen, dass eine gewisse Einarbeitungsphase unabdingbar ist. Denn, wie so oft, liegt auch hier der Teufel im Detail.

Anzeige
Anzeige

Die gute Nachricht: Apple bietet sehr gute Dokumentationen, Video-Tutorials, Code-Beispiele und Guidelines. Jeder, der ausreichend Zeit und einen iOS-Developer-Account für 99 US-Dollar mitbringt, ist theoretisch in der Lage, qualitativ hochwertige iOS-Apps zu realisieren. Startpunkt für jeden Newbie ist der „iOS App Programming Guide“ [2]. Dieser erläutert die grundlegenden Komponenten einer iOS-Anwendung sowie deren Zusammenspiel und erklärt das Vorgehensmodell, mit dem man Schritt für Schritt zu immer besseren Anwendungen kommt. Im Fokus des Guides stehen die vier wesentlichen Design-Patterns sowie deren korrekte Anwendung: Model-View-Controller, Delegation, Target-Action und Block-Objects.

Apple setzt in seinen APIs konsequent auf die oben beschriebenen Patterns. Wer sie einmal im Detail verstanden hat, versteht auch die iOS-SDK-APIs leichter. Gleiches gilt allerdings auch umgekehrt. Wie im weiteren Verlauf des Artikels noch zu sehen ist, ermöglicht insbesondere die konsequente Umsetzung des Model-View-Controller-Patterns eine (fast) losgelöste Entwicklung von UI und zugehöriger Business-Logik.

Anzeige
Anzeige
Die View Controller verlinken App-spezifische Daten mit deren Visualisierung. Das iOS-SDK stellt etliche vorgefertigte View Controller bereit.
Die View Controller verlinken App-spezifische Daten mit deren Visualisierung. Das iOS-SDK stellt etliche vorgefertigte View Controller bereit.

View Controller

Model, View und Controller bilden die Basis jeder iOS-Anwendung. Dabei spielen die Controller und View Controller eine ganz besondere Rolle. View Controller sind eine Art virtueller Link zwischen den Daten der Anwendung (Model) und ihrer Visualisierung (View). Immer dann, wenn wir in einer iOS-Anwendung ein User-Interface sehen, wird der dargestellte Inhalt durch einen oder mehrere View Controller verwaltet. Damit man das Rad nicht immer wieder neu erfinden muss, stellt das iOS-SDK etliche vorgefertigte View Controller zur Verfügung. Darunter solche für einfache UI-Elemente (wie Navigation oder Tab Bar), aber auch für komplexere UI-Konstrukte, wie Listen und Tabellen.

App-Entwickler müssen in der Regel also nur noch die View Controller implementieren, die für die Verwaltung der App-spezifischen Daten zuständig sind. Die Abbildung oben verdeutlicht das Zusammenspiel am Beispiel mehrerer Views inklusive zugehöriger View Controller.

Fragmentierung, (k)ein Thema

Bei anderen mobilen Plattformen häufig überbewertet, scheint das leidige Thema „Fragmentierung“ bei iOS leider gar keine Beachtung zu finden. Natürlich halten sich die Unterschiede im iOS-Umfeld – insbesondere im Vergleich zu Android – in Grenzen. Aber auch für die Apple-Produkte gilt, dass ein Smartphone eben kein Tablet ist und sich die unterschiedlichen Device-Generationen zum Teil deutlich in ihren Eigenschaften unterscheiden, wie Display-Auflösungen, Kameras und vieles mehr.

Anzeige
Anzeige
xCode: Das automatisch erzeugte Storyboard für iPhone und iPad eines Master-Detail-Templates vereinfacht die Entwicklung und hält den Code schlank.
xCode: Das automatisch erzeugte Storyboard für iPhone und iPad eines Master-Detail-Templates vereinfacht die Entwicklung und hält den Code schlank.

Dies ist insofern von nicht zu unterschätzender Bedeutung, da Apple seit jeher großen Wert darauf legt, dass Icons, Bildmaterial und vieles mehr optimal auf die Ziel-Devices angepasst sind – und einer App bei Verstoß durchaus auch mal den Einzug in den App Store verweigert. Auch die Mär, dass man eine Anwendung für das kleinste Device (320 x 480 Pixel) konzipieren sollte und die Auflösungen dann für die anderen Devices einfach nur verdoppeln muss, gilt spätestens seit dem iPhone 5 und den damit eingeführten neuen Seitenverhältnissen von 16:9 nicht mehr. Eine gute Übersicht über die möglichen Auflösungen, Display-Eigenschaften, Icon-Standards und anderen UI-Elemente liefert das „iOS Design Cheat Sheet Vol. 2“ des UI-Designers Ivo Mynttinen [3].

Bei dem Thema Fragmentierung kommt einem wieder die oben schon erwähnte Trennung zwischen Model, View und Controller zugute. Sie erlaubt uns für verschiedene Devices oder Device-Gruppen optimierte Interfaces, die alle den selben View Controller und somit einen einheitlichen Objective-C-Code verwenden können. Wie genau geht das? Extrem einfach, dank xCode.

xCode

Beim Start eines iOS-Projekts via xCode stehen zunächst eine Reihe von Entscheidungen an: Auf welchem Template soll die App basieren? Welche Device-Family (iPhone, iPad oder Universal) soll die App unterstützten? Und will man das seit iOS 5 integrierte Tool Storyboard nutzten? Ohne Storyboard müssen Entwickler die Views einer Anwendung einzeln anlegen und mit ihren View Controllern per Drag-and-drop verbinden. Storyboard geht einen Schritt weiter und ermöglicht die Angabe so genannter Segues (Übergänge). Mit ihnen definiert man, wie und mit welchen Daten der User von einer View in die nächste springen kann. Das spart dem Entwickler eine Menge Boilerplate-Code.

Anzeige
Anzeige

Dabei ist es durchaus möglich und üblich, für die iPhone-Familie andere Views und Segues zu definieren als für die iPad-Familie. Die im Hintergrund genutzten View Controller sind dagegen in der Regel identisch. Als positives Nebenprodukt erhält der Entwickler eine visuelle Site-Map (oder eben ein Storyboard) seiner Anwendung. Wie bereits erwähnt, lassen sich visuelle Oberfläche und Business-Logik fast unabhängig voneinander implementieren. Dennoch müssen App-Entwickler manchmal auch innerhalb des Controllers feststellen können, auf welchem Device und mit welcher iOS-Version die App gerade läuft, um so gegebenenfalls spezifische Code-Blöcke aufrufen zu können. Das lässt sich jedoch schon mit wenigen Zeilen Code realisieren:

Abfrage Device-Typ
if (UI_USER_INTERFACE_IDIOM() ==
  UIUserInterfaceIdiomPad) {
 // iPad running iOS 3.2 or later
 ...
} else {
 // iPhone or iPod Touch
 ...
}

Listing 1

Gilt es herausfinden, ob ein bestimmtes Feature auf einem Device vorhanden ist, lässt sich ab iOS SDK 4.2 mit folgendem Code direkt die gewünschte Klasse testen:

Abfrage eines Features
if ([UIPrintInteractionController class]) {
 // Create instance of class and use it
 ...
} else {
 // Do something useful
 ...
}

Listing 2

Übrigens sollten iOS-Entwickler lieber direkt das Vorhandensein eines gewünschten Features testen, da ein sinnvoller Test der iOS-Version inklusive Minor-Version nur über einen String-Vergleich möglich ist. Eine Ausnahme sollte man nur bei Klassen machen, die in einer alten Version noch „private“ waren und dies in neueren Versionen nicht mehr sind – oder aber bei bekannten Bugs einer bestimmten iOS-Version.

Anzeige
Anzeige

Auto Layout

Wie bereits gezeigt, lassen sich mit xCode in einer App unterschiedliche Interfaces für die verschiedenen Device-Familien hinterlegen. Doch sicher ist es nicht sinnvoll, für jedes Device eine eigene Benutzerschnittstelle zu entwerfen. Auch dann nicht, wenn sich – wie beim iPhone 5 – die Aspect Ratio des Bildschirms ändert. Das hat auch Apple erkannt und entsprechend reagiert. Mit iOS 6 hat ein neues UI-Design-Feature namens „Auto Layout“ Einzug in das SDK gehalten. Es soll das Erstellen von User-Interfaces für unterschiedliche Device-Typen (iPad/iPhone), Ausrichtungen (Landscape/Portrait) und Locales (Sprachen) erleichtern.

Vor iOS 6 mussten Entwickler die verschiedenen UI-Elemente innerhalb einer View mit Hilfe des Autosizing-Layout-Modells anordnen. Dabei bekommt ein UI-Element entweder eine feste Größe oder einen festen Ankerpunkt, von dem aus es sich ausdehnt. So lässt sich zum Beispiel – mehr oder weniger erfolgreich – ein und dieselbe Oberfläche sowohl für den Portrait- als auch für den Landscape-Modus verwenden. Der neue Ansatz erlaubt deutlich mehr Flexibilität. Mit vordefinierten und/oder selbst gebauten Constraints kann man Regeln für einzelne UI-Elemente und Element-Gruppen definieren. Diese legen fest, wie die Elemente oder Gruppen in einer View platziert sein sollen. Das Interessante daran ist, dass sich die Regeln nicht nur auf die View beziehen können, sondern auch auf einzelne UI-Elemente innerhalb der View. So kann man zum Beispiel definieren, dass sich zwei UI-Elemente beim Drehen des Devices immer gleich stark ausdehnen.

Das neue Auto-Layout-Feature trennt damit noch strikter zwischen View und Controller. Der bisher für die dynamische Layout-Anpassung notwendige Code in den View Controllern entfällt. Bleibt noch die Frage, wie sich die Constraints angeben lassen. Zum einen kann dies per visuellem Editor innerhalb der xCode-Inspector-Sektion geschehen. Alternativ lassen sich Constraints aber auch programmieren und an eine View oder ein UI-Element binden.

Anzeige
Anzeige
Die Auswahl von Constraints im xCode-Inspector: Mit vordefinierten oder selbstgebauten Constraints lassen sich Regeln für einzelne UI-Elemente definieren.
Die Auswahl von Constraints im xCode-Inspector: Mit vordefinierten oder selbstgebauten Constraints lassen sich Regeln für einzelne UI-Elemente definieren.

Fazit

Dank klarer Vorgaben durch Apples „iOS Human Interface Design Guidelines“ und dem wirklich gutem Tooling (xCode und Co.), ist das Gestalten und Entwickeln visuell ansprechender und gleichzeitig ergonomisch sinnvoller iOS-Apps gar nicht so schwer. Und dies gilt auch dann noch, wenn die Anwendungen sowohl auf dem iPhone als auch auf dem iPad Spaß machen sollen.

UI-Designer sollten das Rad nicht neu erfinden wollen, sondern sich auf das Wesentliche konzentrieren – und dabei die iOS-Platform-Characteristics und Design-Patterns berücksichtigen. Genau das fällt aber leider nach wie vor vielen App-Designern und -Entwicklern schwer. Doch schaut man sich die erfolgreichsten Apps der letzen Zeit an, zeigt sich schnell: Gute Ideen alleine reichen nicht aus. Gutes iOS-Design ist von entscheidender Bedeutung.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige