Dynamic Island ist ein interaktiver Bereich oben auf dem iPhone 14 Pro und neuer, der den Hardware-Kameraausschnitt mit Software-Benachrichtigungen zu einem einzigen Schnittstellenelement vereint. Dynamic Island passt Form und Größe an den Inhaltstyp an: Anruf, Timer, Musik, Live Activity, AirPods-Verbindung. Entwickler interagieren über die Dynamic Island API basierend auf ActivityKit und WidgetKit. Weitere Informationen unter Dynamic Island HIG.
Wichtige Punkte
Dynamic Island ist ein Schnittstellenelement des iPhone 14 Pro, 15 Pro und neuer, das den Bereich um die Frontkamera und die Face ID-Sensoren nutzt, um Benachrichtigungen und Live Activity anzuzeigen. Im Gegensatz zur alten Notch, die ein statisches schwarzes Element war, ändert Dynamic Island dynamisch Form und Größe: es erweitert sich, um einen Timer anzuzeigen, schrumpft für ein Symbol verbundener AirPods, verwandelt sich in ein Rechteck für Sportergebnisse.
Technische Umsetzung von Dynamic Island basiert auf dem Hardware-Pillenförmigen Ausschnitt des OLED-Displays und der Software-Pixelverarbeitung darum herum. Das System erhöht die Pixelaktualisierungsrate auf 120 Hz im Island-Bereich und verwendet Anti-Aliasing für sanfte Übergänge zwischen Inhalt und dem schwarzen Kamerabereich. Der Entwickler programmiert Island nicht direkt — er erstellt Inhalte über ActivityKit, und das System platziert sie automatisch um den Ausschnitt herum.
Wahrnehmung durch den Benutzer — Dynamic Island verwandelt einen Hardware-Nachteil in ein funktionales Element. Laut Apple-Forschung nehmen Benutzer Island nach nur wenigen Tagen Nutzung als natürlichen Teil des Bildschirms wahr. Hervorhebungs- und Aufmerksamkeitswechsel-Animationen — zum Beispiel verschiebt eine eingehende Benachrichtigung Island und zeigt Inhalt mit einem Expansionseffekt bei 120 Bildern pro Sekunde.
Dynamic Island unterstützt drei Inhaltsanzeigemodi, die das System automatisch basierend auf Art und Anzahl der Aktivitäten auswählt. Der Entwickler definiert die UI für jeden Modus in WidgetBundle, steuert aber nicht, welcher Modus gerade aktiv ist. Das System kann auch zwei Aktivitäten gleichzeitig anzeigen: eine links vom Ausschnitt, die andere rechts.
| Modus | Größe | Inhalt | Beispiel |
|---|---|---|---|
| Kompakt | ~50pt Breite | Symbol + kurzer Text | Timer: Uhrensymbol + 05:00 |
| Minimal | ~22pt rund | Nur App-Symbol | Screenshot-Benachrichtigung |
| Erweitert | ~300pt x 80pt | Benutzerdefinierte SwiftUI View | Sportergebnis mit Logos |
Übergang zwischen Modi wird mit einer Systemanimation von 0,4–0,6 Sekunden mit einer Ease-in-out-Kurve durchgeführt. Wenn eine neue Activity erscheint, erweitert sich Island vom kompakten in den erweiterten Modus. Beim Ende schrumpft es zurück. Der Benutzer kann den erweiterten Modus durch Wischen nach links zwangsweise einklappen — Island wechselt in den kompakten oder minimalen Modus. Das System klappt den erweiterten Modus auch nach 5 Sekunden Inaktivität ein, wenn keine Aktualisierungen erwartet werden.
Zwei Aktivitäten — wenn zwei Apps aktive Live Activities haben, zeigt Dynamic Island sie auf beiden Seiten des Ausschnitts an. Die linke Seite ist die zuerst gestartete Activity, die rechte die zweite. Wenn es nur eine Aktivität gibt, belegt sie die linke Seite, die rechte bleibt leer. Durch Tippen auf eine beliebige Seite erweitert sich Island und zeigt den Inhalt dieser Activity. Das System entscheidet selbst, welche Activity bei Konflikten priorisiert wird.
Dynamic Island-Inhalte werden ausschließlich über Live Activity mit dem ActivityKit-Framework erstellt. Der Entwickler definiert vier Bereiche im Code: kompakt links (compactLeading), kompakt rechts (compactTrailing), minimal (minimal) und erweitert (expanded). Jeder Bereich ist eine SwiftUI View, die den aktuellen Activity-Status über context erhält. Wenn ein Bereich nicht definiert ist, zeigt Island diese Activity im entsprechenden Modus nicht an.
struct DeliveryIsland: DynamicIsland {
var body: some DynamicIslandContent {
DynamicIslandExpandedContent {
VStack(alignment: .leading) {
Text(context.state.status)
.font(.headline)
ProgressView(
value: context.state.progress
)
Text("ETA: \(context.state.minutes) min")
.font(.caption)
}
} compactLeading: {
Image(systemName: "box.truck")
} compactTrailing: {
Text("\(context.state.minutes) min")
.monospacedDigit()
} minimal: {
Image(systemName: "box.truck")
}
}
}
SwiftUI-Einschränkungen in Dynamic Island — verfügbare Komponenten: Text, Image, HStack, VStack, ZStack, Spacer, ProgressView, Button (nur über Link), Gauge. Verboten: ScrollView, List, TabView, Animationen, Gestenerkennung. Farbpalette — nur System Colors (label, secondaryLabel, tint). Schriftarten — Systemgrößen von .caption bis .title3. Benutzerdefinierte Schriftarten und SF Symbols funktionieren korrekt.
Dynamic Island testen — Xcode bietet einen Simulator mit Dynamic Island-Unterstützung. Wählen Sie iPhone 14 Pro oder 15 Pro als Zielgerät. ActivityKit simuliert verschiedene Island-Modi: die Schaltfläche Dynamic Island Mode im Xcode Debug-Menü wechselt zwischen kompakt, minimal und erweitert. Um mehrere Activities gleichzeitig zu testen, verwenden Sie Schemata mit unterschiedlichen ActivityIDs oder starten Sie zwei Instanzen der App.
Systemereignisse — Anrufe, AirPods, Face ID, Laden und andere — haben Vorrang vor benutzerdefinierten Live Activities. Wenn ein Systemereignis auftritt, pausiert Island die Anzeige benutzerdefinierter Inhalte und zeigt den Systeminhalt an. Nach Abschluss des Systemereignisses kehrt Island mit einer Animation zum benutzerdefinierten Inhalt zurück. Der Entwickler kann Systemereignisse nicht abbrechen oder ändern — sie werden auf Betriebssystemebene von iOS verwaltet.
| Systemereignis | Anzeigeformat | Priorität |
|---|---|---|
| Eingehender Anruf | Minimale Karte mit Kontaktnamen | Hoch |
| AirPods | Animation + Akkuladung | Mittel |
| Face ID | Schlosssymbol | Mittel |
| Laden | Blitzsymbol + Prozent | Niedrig |
| AirDrop | Übertragungsfortschritt | Mittel |
| Screenshot | Verschluss-Animation | Niedrig |
Eingehender Anruf — das wichtigste Systemereignis. Dynamic Island zeigt den Namen des Anrufers links vom Ausschnitt und die Dauer/den Status rechts an. Während eines aktiven Anrufs zeigt Island keine benutzerdefinierten Live Activities an. Der Benutzer kann Island erweitern, um den Anrufbildschirm zu öffnen, oder einklappen, um die Arbeit in der App mit dem aktiven Anruf im Hintergrund fortzusetzen.
AirPods-Verbindung — beim Öffnen des Cases in der Nähe des iPhones animiert Dynamic Island die Verbindung und zeigt den Ladestand jedes Ohrhörers und des Cases an. Die Animation dauert 2–3 Sekunden, danach kehrt Island in seinen vorherigen Zustand zurück. Wenn der Benutzer keine aktiven Live Activities hatte, bleibt Island leer. AirPods Pro 2 zeigen auch die Lautstärke und den Geräuschunterdrückungsmodus beim Drücken des Stiels an.
Dynamic Island-Best Practices von Apple sollten befolgt werden, um eine qualitativ hochwertige Benutzererfahrung zu gewährleisten. Der kompakte Modus sollte nur die wichtigsten Informationen anzeigen — ein Symbol und eine einzelne Zahl oder ein kurzes Etikett. Der erweiterte Modus — nur Schlüsselinformationen ohne redundante Elemente. Vermeiden Sie Text im kompakten Modus, wenn er 20 Zeichen überschreitet — das System kürzt den Text mit Auslassungspunkten.
Push-Updates für Dynamic Island — verwenden Sie ActivityKit Push für seltene Updates (Bestellstatus, Sportergebnisse) und lokale Updates für häufige Timer oder Stoppuhren. Push-Benachrichtigungen durchlaufen APNs und benötigen 0,5–2 Sekunden, um in Island angezeigt zu werden. StaleDate — legen Sie ein Ablaufdatum für Inhalte fest: wenn ein Update nicht rechtzeitig eintrifft, zeigt das System einen grauen Hintergrund anstelle des Inhalts, der den Benutzer auf veraltete Daten hinweist.
func updateDelivery(activity: Activity<DeliveryAttributes>) {
Task {
let newContent = ActivityContent(
state: DeliveryAttributes.ContentState(
status: .delivered,
estimatedMinutes: 0
),
staleDate: Date().addingTimeInterval(300)
)
await activity.update(newContent)
// Activity wird in 2 Sekunden beendet
try? await Task.sleep(nanoseconds: 2_000_000_000)
await activity.end(newContent)
}
}
Energieverbrauch — Dynamic Island und Live Activities haben dank der Hardware-Optimierung des OLED-Displays nur minimale Auswirkungen auf den Akku. Schwarze Pixel um den Ausschnitt sind ausgeschaltet, und der Inhalt wird auf einem dedizierten Coprozessor gerendert. Der durchschnittliche Live Activity-Verbrauch liegt bei weniger als 1% Akku pro Stunde Nutzung bei Aktualisierung alle 5 Minuten. Das System pausiert Island automatisch bei niedrigem Akkustand (unter 20%) oder im Energiesparmodus.
Design für Dynamic Island erfordert keine Anpassung der Haupt-App-UI — Island arbeitet unabhängig vom aktiven Bildschirm. Die Farben der Live Activity sollten über System-Color-Assets mit dem Systemthema (hell/dunkel) übereinstimmen. SF Symbols werden benutzerdefinierten Symbolen vorgezogen — sie werden garantiert in jedem Island-Modus korrekt angezeigt und bieten integrierte Dynamic Type-Unterstützung.
Häufig gestellte Fragen
Dynamic Island ist nur auf iPhone 14 Pro, 14 Pro Max, 15 Pro, 15 Pro Max und neuer mit iOS 16.1+ verfügbar. Auf älteren iPhones mit Notch wird Dynamic Island nicht angezeigt — Live Activity erscheint als normales Banner auf dem Sperrbildschirm. Der Entwickler muss keinen unterschiedlichen Code schreiben: das System passt die Schnittstelle selbst an die Fähigkeiten des Geräts an.
Dynamic Island unterstützt die gleichzeitige Anzeige von zwei Aktivitäten — sie werden links und rechts vom Kameraausschnitt positioniert. Wenn es nur eine Aktivität gibt, belegt sie die linke Seite, und die rechte Seite bleibt im kompakten Zustand. Durch Tippen auf eine beliebige Seite erweitert sich Island und zeigt den Inhalt der entsprechenden Activity.
Systemereignisse in Dynamic Island: eingehender Anruf mit minimaler Karte und Kontaktnamen, AirPods-Verbindung mit Animation und Akkuladung, Face ID mit Schlosssymbol, Geräteladen mit Prozentangabe, Modemmodus, Lautstärkeänderung, Aktivierung des Silent-Modus, AirDrop mit Übertragungsfortschritt und Screenshot mit Verschluss-Animation.
Dynamic Island benötigt keine separate API — es zeigt Live Activities an, die über ActivityKit zusammen mit WidgetKit erstellt wurden. Die App registriert eine Activity mit DynamicIsland-Konfiguration, definiert kompakte, minimale und erweiterte SwiftUI Views. Das System zeigt sie automatisch in Dynamic Island auf unterstützten Geräten an.
Dynamic Island ist auf drei visuelle Zustände mit unterschiedlichen Größen beschränkt: kompakt bis 50pt, minimal bis 22pt, erweitert bis 300pt. Im kompakten Modus wird empfohlen, keinen Text länger als 20 Zeichen zu platzieren. Nur System-SwiftUI-Komponenten sind verfügbar — Text, Image, ProgressView, Gauge. Benutzerdefinierte Schriftarten und Farben sind auf die Systempalette beschränkt.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch