Die neuen SwiftUI-ArrangementView- und Document-APIs in appleOS 27 zu implementieren bedeutet, dass Entwickler mit ArrangementView einen neuen offiziellen Layout-Container nutzen können, der zwei Ansichten (primär und sekundär) für Geräte wie das iPhone Duo verwaltet. Parallel dazu bleibt DocumentGroup das zentrale Werkzeug für dokumentenbasierte Apps, das in appleOS 27 weiter verfeinert wurde. Beide APIs ergänzen sich und ermöglichen modernere, anpassungsfähigere App-Architekturen.
Key Takeaways
ArrangementViewist ein neuer offizieller SwiftUI-Layout-Container für genau zwei Ansichten, eingeführt mit iOS 27.1 und iPhone Duo.- Er unterstützt zwei Stile:
split(nebeneinander) undoverlay(überlagert), konfigurierbar perarrangementViewStyle. ArrangementViewgarantiert nicht, dass beide Ansichten gleichzeitig sichtbar sind; bei kleinen Bildschirmen kollabiert er auf eine Einzelansicht.- Er ist kein Navigations-Container und sollte keine
NavigationStack-Instanzen direkt enthalten. - Layout-Entscheidungen basieren auf Size Classes, Seitenverhältnis und Scharnier-/Teilungsbereichen des Geräts.
- Die Document API in SwiftUI bleibt auf
DocumentGroupaufgebaut; appleOS 27 bringt Verfeinerungen, keine vollständig neue API. - UIKit bietet mit
UIArrangementViewControllereine parallele Implementierung desselben Konzepts. - Rückwärtskompatibilität erfordert sorgfältige Prüfung:
ArrangementViewund neue Document-Verbesserungen sind an appleOS 27 gebunden. - Häufige Fehler:
ArrangementViewmit Navigation-Stacks mischen oder annehmen, beide Ansichten seien immer sichtbar. - Für einfache Layouts bleiben
HStackundVStackdie bessere Wahl;ArrangementViewist für adaptive Zwei-Fenster-Szenarien gedacht.
Was ist SwiftUI ArrangementView und wie funktioniert es?
ArrangementView ist ein neuer, offizieller SwiftUI-Layout-Container, der genau zwei Ansichten verwaltet: eine primäre und eine sekundäre. Er wurde mit iOS 27.1 eingeführt und ist speziell auf Geräte wie das iPhone Duo ausgerichtet, das physische Teilungs- und Scharnierbereiche besitzt.
Der Container positioniert sich strukturell zwischen Navigations-Containern und reinen Inhalts-Containern. Das bedeutet: Er übernimmt keine Navigation, sondern steuert ausschließlich die räumliche Anordnung zweier Ansichten. Layout-Entscheidungen trifft das System automatisch anhand von:
- Size Classes des aktuellen Geräts
- Seitenverhältnis des verfügbaren Bildschirmbereichs
- Teilungs- und Scharnierbereichen (Division/Hinge Regions) bei faltbaren Geräten
Wichtig: ArrangementView garantiert nicht, dass beide Ansichten gleichzeitig angezeigt werden. Auf kleineren Bildschirmen oder in bestimmten Orientierungen kollabiert der Container auf eine Einzelansicht. Apps müssen diesen Zustand explizit berücksichtigen.

ArrangementView vs. HStack und VStack: Die wichtigsten Unterschiede
ArrangementView ist kein Ersatz für HStack oder VStack. Für statische, einfache Layouts sind Stack-Views nach wie vor die richtige Wahl. ArrangementView löst ein anderes Problem: adaptive Zwei-Fenster-Layouts auf Geräten mit physischen Teilungsbereichen.
| Merkmal | HStack / VStack | ArrangementView |
|---|---|---|
| Anzahl der Ansichten | Beliebig viele | Genau zwei |
| Layout-Steuerung | Manuell per Modifier | Systemgesteuert (Size Class, Hinge) |
| Kollabierung möglich | Nein | Ja, auf Einzelansicht |
| Navigation enthalten | Möglich | Nicht empfohlen |
| Geräteoptimierung | Allgemein | iPhone Duo / faltbare Geräte |
Entscheidungsregel: Verwende ArrangementView nur dann, wenn die App explizit zwei inhaltlich gleichwertige Ansichten auf einem Gerät mit Scharnier oder Teilungsbereich zeigen soll. Für alles andere bleiben Stack-Views effizienter und einfacher zu warten.
ArrangementView-Tutorial: Erste Schritte für Einsteiger
Der Einstieg in ArrangementView erfordert wenige, aber präzise Schritte. Der Container nimmt zwei View-Builder-Parameter entgegen und einen optionalen Stil-Modifier.
Ein minimales Beispiel sieht so aus:
<code class="language-swift">ArrangementView {
PrimaryContentView()
} secondary: {
SecondaryContentView()
}
.arrangementViewStyle(.split)
</code>
Schritt für Schritt vorgehen:
- Projekt auf iOS 27.1 Deployment Target setzen, da
ArrangementViewnicht rückwärtskompatibel ist. - Zwei separate View-Structs erstellen für primären und sekundären Inhalt.
ArrangementViewals Container in der Haupt-View-Hierarchie platzieren, nicht innerhalb einesNavigationStack.- Stil wählen:
.splitfür nebeneinander,.overlayfür überlagerte Darstellung. - Kollabierungs-Zustand testen im Simulator mit verschiedenen Gerätegrößen und Orientierungen.
Häufiger Anfängerfehler: Den ArrangementView direkt als Root-View einer NavigationStack-Hierarchie einzubetten. Das führt zu undefinierten Layout-Konflikten, weil ArrangementView selbst keine Navigationslogik verwaltet.
Wann sollte ArrangementView statt Stack-Views verwendet werden?
ArrangementView ist sinnvoll, sobald eine App zwei inhaltlich gleichrangige Bereiche auf einem Gerät mit physischer Teilung darstellen soll. Stack-Views bleiben für alle anderen Fälle die bessere Wahl.
Verwende ArrangementView, wenn:
- Die Zielgeräte iPhone Duo oder ähnliche faltbare Hardware umfassen.
- Beide Ansichten inhaltlich gleichwertig sind (z. B. E-Mail-Liste und E-Mail-Inhalt).
- Das System die Sichtbarkeit beider Bereiche adaptiv steuern soll.
Bleibe bei Stack-Views, wenn:
- Die App auf Standard-iPhones ohne Scharnier läuft.
- Mehr als zwei Inhaltsbereiche gleichzeitig angezeigt werden sollen.
- Die Reihenfolge der Ansichten fix und nicht systemgesteuert sein soll.
Wie werden die Document APIs in appleOS 27 implementiert?
Die Document API in SwiftUI bleibt in appleOS 27 auf DocumentGroup aufgebaut. Es gibt keine vollständig neue API, sondern gezielte Verfeinerungen des bestehenden Systems, das bereits in früheren OS-Versionen eingeführt wurde.

Ein typischer DocumentGroup-Aufbau:
<code class="language-swift">@main
struct MyDocumentApp: App {
var body: some Scene {
DocumentGroup(newDocument: MyDocument()) { file in
ContentView(document: file.$document)
}
}
}
</code>
Wichtige Schritte für die Implementierung:
- Dokument-Modell definieren als
structoderclass, dasFileDocumentoderReferenceFileDocumentkonformiert. - UTType registrieren in der
Info.plistder App, damit das System den Dateityp erkennt. DocumentGroupals Scene in der App-Struktur verwenden, nicht als View.- Lese- und Schreiboperationen über die Protokollmethoden
readConfigurationundfileWrapperimplementieren. - Zustand über Binding an die Content-View weitergeben.
Document API Best Practices und Zustandsverwaltung
Gute Zustandsverwaltung mit der Document API verhindert Datenverlust und sorgt für konsistentes Verhalten beim Öffnen, Bearbeiten und Speichern von Dokumenten.
Best Practices:
ReferenceFileDocumentbevorzugen, wenn das Dokument-Modell komplex ist oder beobachtbare Zustände enthält, da es Referenzsemantik bietet.- Automatisches Speichern nicht deaktivieren. Das System verwaltet den Speicherzyklus; manuelle Eingriffe führen häufig zu Race Conditions.
- Undo-Manager nutzen:
DocumentGroupintegriert automatisch einenUndoManager, der über die Environment zugänglich ist. - Fehlerbehandlung in
readConfigurationexplizit implementieren, um korrupte Dateien sauber abzufangen. - Keine globalen Singletons für Dokumentzustand verwenden; der Zustand gehört in das Dokument-Modell selbst.
Häufiger Fehler: Den Dokumentzustand in einem @StateObject außerhalb des DocumentGroup-Closures zu halten. Das führt dazu, dass beim Öffnen mehrerer Dokumente gleichzeitig Zustände überschrieben werden.
Rückwärtskompatibilität: Was gilt für appleOS 27?
ArrangementView und die neuesten Document-API-Verfeinerungen sind an appleOS 27 gebunden und nicht rückwärtskompatibel. Apps, die ältere OS-Versionen unterstützen müssen, brauchen eine Fallback-Strategie.
Empfohlene Vorgehensweise:
#available(iOS 27.1, *)Guards konsequent einsetzen, um neue APIs nur auf unterstützten Geräten zu aktivieren.- Für ältere OS-Versionen
HStack/VStack-basierte Layouts als Fallback bereitstellen. - Das Deployment Target bewusst wählen: Wer breite Kompatibilität benötigt, sollte
ArrangementViewals progressive Enhancement behandeln, nicht als Kernarchitektur.
Häufige Fehler und Troubleshooting bei ArrangementView
Die häufigsten Probleme bei ArrangementView entstehen durch falsche Erwartungen an das Layout-Verhalten.
Problem: Beide Ansichten werden nicht angezeigt
Ursache: Das Gerät oder die aktuelle Orientierung unterstützt keine Zwei-Ansichten-Darstellung. ArrangementView kollabiert dann auf die primäre Ansicht. Lösung: Den Kollabierungszustand mit einem geeigneten Modifier abfangen und der sekundären Ansicht eine Fallback-Darstellung geben.
Problem: Layout-Konflikte mit NavigationStack
Ursache: ArrangementView ist kein Navigations-Container. Wird ein NavigationStack direkt eingebettet, entstehen konkurrierende Layout-Anforderungen. Lösung: NavigationStack außerhalb von ArrangementView platzieren oder die Navigation in die einzelnen Ansichten verlagern.
Problem: Stil-Änderungen zeigen keine Wirkung
Ursache: arrangementViewStyle muss direkt am ArrangementView-Container gesetzt werden, nicht an einer inneren Ansicht. Lösung: Den Modifier auf die oberste Ebene des Containers verschieben.
Performance-Optimierung für ArrangementView
ArrangementView erzeugt keinen signifikanten Performance-Overhead gegenüber Stack-Views, solange die enthaltenen Ansichten selbst effizient sind.
Konkrete Maßnahmen:
- Lazy Loading für die sekundäre Ansicht einsetzen, wenn deren Inhalt ressourcenintensiv ist und sie möglicherweise nicht angezeigt wird.
- Vermeidung von tiefen View-Hierarchien innerhalb beider Ansichten, da der Kollabierungsmechanismus bei jedem Layout-Pass evaluiert wird.
equatable-Modifier auf stabile Unter-Views anwenden, um unnötige Re-Renders zu verhindern.- Instruments verwenden (SwiftUI-Template), um zu prüfen, ob der Kollabierungszustand unerwartete Layout-Zyklen auslöst.
FAQ
Was ist der Unterschied zwischen ArrangementView und SplitView?
ArrangementView ist ein neuer, systemgesteuerter Container für genau zwei Ansichten auf Geräten mit Scharnier oder Teilungsbereich. SplitView (bzw. NavigationSplitView) ist ein Navigations-Container mit eigener Logik für Master-Detail-Muster. Beide lösen unterschiedliche Probleme und sollten nicht gemischt werden.
Kann ArrangementView auf einem Standard-iPhone ohne Scharnier verwendet werden? Ja, aber der Container kollabiert dann auf die primäre Ansicht. System-provided Arrangements sind speziell für iPhone Duo und vergleichbare Hardware optimiert.
Ist ArrangementView auch in UIKit verfügbar?
Ja. UIKit bietet UIArrangementViewController als parallele Implementierung, die dasselbe konzeptuelle Modell spiegelt.
Muss ich DocumentGroup neu implementieren, wenn ich auf appleOS 27 aktualisiere?
Nein. Bestehende DocumentGroup-Implementierungen bleiben kompatibel. appleOS 27 bringt Verfeinerungen, keine Breaking Changes an der Kern-API.
Wie teste ich ArrangementView im Simulator? Den iPhone Duo Simulator auswählen und verschiedene Orientierungen sowie Faltpositionen testen. Xcode 27 enthält entsprechende Simulator-Konfigurationen.
Kann ArrangementView drei oder mehr Ansichten enthalten?
Nein. ArrangementView ist explizit auf genau zwei Ansichten ausgelegt. Für mehr Bereiche sind andere Container wie HStack, VStack oder NavigationSplitView zu verwenden.
Was passiert, wenn die sekundäre Ansicht kollabiert? Das System blendet die sekundäre Ansicht aus und zeigt nur die primäre. Die App sollte diesen Zustand über Umgebungsvariablen oder geeignete Modifier erkennen und die UI entsprechend anpassen.
Welche arrangementViewStyle-Optionen gibt es?
Aktuell sind .split (nebeneinander) und .overlay (überlagert) die beiden systemdefinierten Stile. Weitere Stile können durch systemseitige Updates hinzukommen.
Ist ArrangementView für iPad-Apps geeignet?
Die primäre Zielplattform ist iPhone Duo. Für iPad-Layouts mit Zwei-Spalten-Ansichten bleibt NavigationSplitView die empfohlene Lösung.
Wie gehe ich mit dem Undo-Manager in DocumentGroup um?
Der UndoManager ist automatisch über @Environment(.undoManager) in jeder View zugänglich, die innerhalb eines DocumentGroup-Closures gerendert wird.
Fazit
Die neuen SwiftUI-ArrangementView- und Document-APIs in appleOS 27 zu implementieren eröffnet Entwicklern konkrete Möglichkeiten, Apps für neue Hardware-Formfaktoren wie das iPhone Duo zu optimieren. ArrangementView löst ein spezifisches Problem: adaptive Zwei-Ansichten-Layouts auf Geräten mit physischen Teilungsbereichen. Es ist kein universeller Stack-Ersatz, sondern ein gezieltes Werkzeug für einen definierten Anwendungsfall.
Empfohlene nächste Schritte:
- Das Deployment Target auf iOS 27.1 anheben und
#available-Guards für ältere Versionen einrichten. - Eine Test-App mit
ArrangementViewund beiden Stilen (.split,.overlay) im iPhone Duo Simulator aufbauen. - Bestehende
DocumentGroup-Implementierungen auf Kompatibilität mit den appleOS 27-Verfeinerungen prüfen. - Instruments nutzen, um Layout-Performance bei Kollabierungsübergängen zu messen.
UIArrangementViewControllerevaluieren, wenn Teile der App noch in UIKit implementiert sind.
Wer diese Schritte konsequent umsetzt, legt eine solide Grundlage für moderne, zukunftsfähige Apps auf der appleOS-27-Plattform.

Hinterlasse jetzt einen Kommentar