---
title: "Multi-Window-Unterstützung in deiner iPad App"
date: 2019-10-07
language: de
topics: ["apple", "design", "iOS", "iPad", "programming", "tablet", "work"]
source_url: https://willem.com/de/2019-10-07_multi-window-unterstutzung-in-deiner-ipad-app/
---
# Multi-Window-Unterstützung in deiner iPad App

*Native Entwicklung für iPadOS*

> Letzten Monat hat Apple iPadOS veröffentlicht, das erste eigene Betriebssystem für das iPad. Im Unterschied zu iOS unterstützt es den größeren iPad-Bildschirm, einschließlich Fenstern im Multi- und Splitscreen. Ich entwickle Apps, und es war Zeit, die neuen Möglichkeiten von iPadOS zu nutzen.

Seit 2016 benutze ich das_iPad_als_meinen_Hauptcomputer (https://willem.com/en/inside-and-outside-apple-using-questioning-and-escaping-the-ecosystem/). Es ist ein großartiger mobiler Computer. Das Betriebssystem ist allerdings anders als das der meisten Computer. iPadOS basiert auf iOS, das auf Apples beliebtem Mobiltelefon läuft, dem iPhone. Deshalb fühlt sich das iPad im Alltag ein bisschen anders an, vor allem dadurch, wie es Apps ausführt.

![iPad Pro als mein Hauptcomputer, über Blink mit einem Terminal verbunden](https://willem.com/global/images/590ada94c4e1.webp)

Wegen seiner Smartphone-Wurzeln behandelt iPadOS Apps wie ein iPhone: Sie laufen im Vollbild und konzentrieren sich auf eine einzige Aufgabe. Dafür lieben die Leute das iPad, denn so bleibt man gedanklich bei einer Sache.

## Mehrere Fenster auf dem iPad

Es gibt Situationen, in denen mehrere Fenster gleichzeitig sehr nützlich sind. Genau hier hat Apple iPadOS verbessert und die Möglichkeit eingeführt, Apps nebeneinander laufen zu lassen.

![Mehrere Fenster auf dem iPad: zwei Instanzen derselben App laufen gleichzeitig](https://willem.com/global/images/d4097d9a5811.webp)

Selbst bei einer einzigen Aufgabe sind mehrere Fenster hilfreich, denn du kannst mehrere Instanzen derselben App gleichzeitig öffnen. So kannst du Inhalte aus verschiedenen Blickwinkeln ansehen und bearbeiten. Zum Beispiel zwei verschiedene Monate in deinem Kalender vergleichen, ein langes Dokument bearbeiten oder dieselbe Karte in verschiedenen Maßstäben betrachten.

![Verschiedene Monate in der Kalender-App vergleichen](https://willem.com/global/images/b0fd605efa8d.webp)

![Dieselbe Karte gleichzeitig in verschiedenen Maßstäben ansehen](https://willem.com/global/images/62fc3c1ace78.webp)

## Die Idee hinter dem Design

Als Apple_die_Unterstützung_für_mehrere_Fenster_auf_dem_iPad_einführte (https://developer.apple.com/videos/play/wwdc2019/212), hat man dabei die mobilen Wurzeln von iPadOS im Blick behalten. Bei klassischen PC-Apps kann komplexe Software standardmäßig über mehrere *verschiedene* Fenster (und Bereiche) laufen. iPadOS hält dagegen an der Anforderung fest, dass eine App alles aus einem einzigen Fenster heraus können muss.

Auf dem iPad gilt als Designvorgabe: Alle Fenster einer App sind gleichartig, und jedes kann alles, was die App kann. Wer will, kann alles in einem Fenster erledigen. Mehrere Fenster soll man nur dann öffnen können, wenn man es für sinnvoll hält, aber die App darf es nie voraussetzen. Das hält die Art, wie Apps unter iPadOS laufen, einfach: Du kannst Apps weiterhin im Vollbild nutzen wie auf einem Smartphone.

![Ken Ferry erklärt auf der WWDC 2019 das Design der Mehrfensterunterstützung für iOS](https://willem.com/global/images/64d2bc5a822d.webp)

## App-Lebenszyklus (und Codeänderungen)

Aus technischer_Sicht_hat_Apple (https://developer.apple.com/documentation/uikit/app_and_environment/scenes/supporting_multiple_windows_on_ipad) UIWindowScene mit einer passenden UISceneSession-Abstraktion in die UI-Struktur eingeführt. Sie liegt zwischen UIScreen und UIWindow.

![Überblick über die UI-Struktur von iPadOS, erklärt von Steve Holt auf der WWDC 2019](https://willem.com/global/images/7b7e0e6a8f2a.webp)

![Konzeptioneller Überblick über UISceneSession, die den Oberflächenzustand zwischen den Darstellungen einer App bewahrt (WWDC 2019, Steve Holt, Apple)](https://willem.com/global/images/3d8992b418c8.webp)

Wenn iPadOS (und iOS) mehrere Apps ausführen, kann das Betriebssystem eine App im Hintergrund beenden, um Speicher und Energie zu sparen. Das ist Absicht: So bleibt das System schnell und schont den Akku.

Für den App-Lebenszyklus heißt das: Beim Start deiner App musst du prüfen, ob sie vorher schon lief. Gibt es eine UISceneSession, sollte sich die App wieder mit ihr verbinden, damit der Nutzer seinen Oberflächenzustand behält. Wenn das gut gemacht ist, merkt der Nutzer gar nicht, dass die App im Hintergrund unterbrochen wurde.

![Funktionale Rollen im Lebenszyklus einer iPadOS-App (WWDC 2019, Steve Holt, Apple)](https://willem.com/global/images/0cc957f952fe.webp)

Wenn du die neuen Konzepte UIWindowScene (und UISceneSession) in deiner App übernimmst, kannst du die neuen Multi-Window-Fähigkeiten des iPad nutzen. Und es kommt noch etwas dazu: Apple will iOS- und iPadOS-Apps auf den Mac bringen. Mit den neuen UI-Konzepten läuft deine App dann auch unter macOS prima!

![Dieselbe App auf iOS/iPadOS und macOS](https://willem.com/global/images/8a48b3cb9b2d.webp)

## In der Praxis

Als Entwickler hatte ich kaum Probleme, die neuen UI-Konzepte in meinen Apps umzusetzen. Mit relativ wenig Aufwand ermöglichst du viele verschiedene Anwendungsfälle, in denen dieselbe App dem Nutzer mehr Möglichkeiten bietet.

![Mit meiner App "Lemmid (Content) Manager" einen Blogbeitrag bearbeiten und dabei das Ergebnis daneben sehen](https://willem.com/global/images/5d22d4b5df00.webp)

![Einen DNS-Eintrag mit meiner App "Lemmid Domain" bearbeiten und dabei die ganze DNS-Zone im Blick behalten](https://willem.com/global/images/a825ee524dfd.webp)

![Mit meiner App "Lemmid Count" Aufrufe und Traffic eines Artikels auf willem.com analysieren](https://willem.com/global/images/7f6a0e735536.webp)

![Webentwicklung auf dem iPad mit Inspect und Blink nebeneinander](https://willem.com/global/images/be682d70074e.webp)

## Fazit

Apple hat die Unterstützung für mehrere Fenster auf dem iPad nicht überstürzt, sondern sich Zeit genommen, sie gut zu entwerfen. Wenn du die neuen Konzepte übernimmst, wird deine App für die Nutzer leistungsfähiger.

Es ist immer eine gute Idee, sich Zeit zu nehmen, um die zugrunde liegenden Interface-Konzepte zu verstehen, bevor man mit dem Entwickeln anfängt. Mach es richtig (und gut) statt schnell (und dumm)!
