Dynamic Island: vad är det, interaktiva aviseringar på iPhone

Författare: IT Sectr Publicerad: 2026-02-16 Lästid: 9 min

Dynamic Island — ett interaktivt område överst på iPhone 14 Pro och nyare, som kombinerar det hårdvarumässiga kamerautskärningen med programvarumässiga aviseringar till ett enda gränssnittselement. Dynamic Island anpassar form och storlek efter innehållstyp: samtal, timer, musik, Live Activity, anslutning av AirPods. Utvecklare interagerar via Dynamic Island API baserat på ActivityKit och WidgetKit. Mer på Dynamic Island HIG.

Huvudpunkter

  • Dynamic Island — programvara-hårdvara UI-element på iPhone 14 Pro och nyare
  • Tre lägen — kompakt, minimal och utökad med olika innehållsstorlekar
  • Live Activities — det främsta sättet för anpassat innehåll i Dynamic Island
  • Animationer — systemet hanterar automatiskt övergångar mellan Island-tillstånd
  • Systemhändelser — samtal, AirPods, Face ID, laddning inbyggda i Dynamic Island

Vad är Dynamic Island på iPhone?

Dynamic Island — ett gränssnittselement på iPhone 14 Pro, 15 Pro och nyare, som använder området runt frontkameran och Face ID-sensorerna för att visa aviseringar och Live Activity. Till skillnad från den gamla notch-utskärningen, som var ett statiskt svart element, ändrar Dynamic Island dynamiskt form och storlek: expanderar för att visa en timer, krymper för en ikon för anslutna AirPods, förvandlas till en rektangel för sportresultat.

Teknisk implementering av Dynamic Island baseras på den hårdvarumässiga utskärningen (pill-shaped cutout) av OLED-skärmen och programvarubearbetning av pixlarna runt den. Systemet ökar pixeluppdateringsfrekvensen till 120 Hz i Island-området och använder utjämning för en mjuk övergång mellan innehåll och det svarta kameraområdet. Utvecklaren programmerar inte Island direkt — han skapar innehåll via ActivityKit och systemet placerar det automatiskt runt utskärningen.

Användaruppfattning Dynamic Island förvandlar en hårdvarubrist till ett funktionellt element. Enligt Apples forskning uppfattar användare Island som en naturlig del av skärmen efter några dagars användning. Bakgrundsbelysning och animationer drar till sig uppmärksamhet — till exempel flyttar en avisering Island och visar innehåll med en expansionseffekt på 120 bilder per sekund.

Dynamic Island visningslägen

Dynamic Island stöder tre visningslägen för innehåll, som systemet väljer automatiskt baserat på typ och antal aktiviteter. Utvecklaren definierar UI för varje läge i WidgetBundle, men hanterar inte vilket läge som är aktivt för tillfället. Systemet kan också visa två aktiviteter samtidigt: en till vänster om utskärningen, en till höger.

LägeStorlekInnehållExempel
Kompakt~50pt breddIkon + kort textTimer: klockikon + «05:00»
Minimal~22pt rundEndast appikonAvisering om skärmdump
Utökad~300pt x 80ptAnpassad SwiftUI ViewSportresultat med logotyper

Övergång mellan lägen sker med en systemanimation på 0.4–0.6 sekunder med ease-in-out-kurva. När en ny Activity visas expanderar Island från kompakt till utökat läge. När den är klar — krymper den tillbaka. Användaren kan tvinga ihop det utökade läget genom att svepa åt vänster — Island växlar till kompakt eller minimalt läge. Systemet fäller också ihop det utökade läget efter 5 sekunders inaktivitet om inga uppdateringar förväntas.

Två aktiviteter — om två appar har aktiva Live Activity visar Dynamic Island dem på båda sidor av utskärningen. Vänster sida — första startade Activity, höger sida — andra. Om det bara finns en aktivitet upptar den vänster sida, höger sida förblir tom. När man trycker på någon sida expanderar Island och visar innehållet för den Activity. Systemet beslutar själv vilken Activity som får prioritet vid konflikt.

Skapa innehåll för Dynamic Island

Dynamic Island-innehåll skapas uteslutande via Live Activity med ActivityKit-ramverket. Utvecklaren definierar fyra områden i koden: kompakt vänster (compactLeading), kompakt höger (compactTrailing), minimal (minimal) och utökad (expanded). Varje område är en SwiftUI View som tar emot Activitys aktuella tillstånd via context. Om ett område inte är definierat visar Island inte denna Activity i motsvarande läge.

swift
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-begränsningar i Dynamic Island — tillgängliga komponenter: Text, Image, HStack, VStack, ZStack, Spacer, ProgressView, Button (endast via Link), Gauge. Förbjudna: ScrollView, List, TabView, animationer, gesture recognizers. Färgpalett — endast System Colors (label, secondaryLabel, tint). Teckensnitt — systemstorlekar från .caption till .title3. Anpassade teckensnitt och SF Symbols fungerar korrekt.

Testa Dynamic Island — Xcode tillhandahåller en simulator med stöd för Dynamic Island. Välj iPhone 14 Pro eller 15 Pro som målenhet. ActivityKit simulerar olika Island-lägen: Dynamic Island Mode-knappen i Xcodes Debug-meny växlar mellan kompakt, minimal och utökad. För att testa flera Activity samtidigt, använd scheman med olika ActivityID eller kör två instanser av appen.

Systemhändelser i Dynamic Island

Systemhändelser — samtal, AirPods, Face ID, laddning och andra — har prioritet framför anpassade Live Activity. När en systemhändelse inträffar pausar Island visningen av anpassat innehåll och visar systeminnehåll. Efter systemhändelsen återgår Island till anpassat innehåll med en animation. Utvecklaren kan inte avbryta eller ändra systemhändelser — de hanteras på operativsystemsnivå iOS.

SystemhändelseVisningsformatPrioritet
Inkommande samtalMinimalt kort med kontaktnamnHög
AirPodsAnimation + batteriladdningMedel
Face IDLåsikonMedel
LaddningBlixtikon + procentLåg
AirDropÖverföringsstatusMedel
SkärmdumpSlutaranimationLåg

Inkommande samtal — den viktigaste systemhändelsen. Dynamic Island visar namnet på den som ringer till vänster om utskärningen och varaktighet/status till höger. Under ett aktivt samtal visar Island inga anpassade Live Activity. Användaren kan expandera Island för att öppna samtalsvyn eller fälla ihop det för att fortsätta arbeta i appen med aktivt samtal i bakgrunden.

Anslutning av AirPods — när fodralet öppnas bredvid iPhone animerar Dynamic Island anslutningen och visar laddningen för varje hörlur och fodralet. Animationen varar 2–3 sekunder, varefter Island återgår till föregående tillstånd. Om användaren inte hade några aktiva Live Activity förblir Island tomt. AirPods Pro 2 visar även volym och brusreduceringsläge när man trycker på skaftet.

Bästa utvecklingsmetoder för Dynamic Island

Bästa metoder för Dynamic Island från Apple rekommenderas för att säkerställa en kvalitativ användarupplevelse. Kompakt läge bör endast visa den viktigaste informationen — en ikon och en siffra eller kort etikett. Utökat läge — endast nyckelinformation utan överflödiga element. Undvik att placera text i kompakt läge om den överstiger 20 tecken — systemet trunkerar texten med ellips.

Push-uppdateringar för Dynamic Island — använd ActivityKit push för sällsynta uppdateringar (orderstatus, sportresultat) och lokala uppdateringar för frekventa timers eller stoppur. Push-aviseringar går via APNs och tar 0.5–2 sekunder att visas i Island. StaleDate — ställ in ett utgångsdatum för innehåll: om uppdateringen inte kommer i tid visar systemet en grå bakgrund istället för innehåll, vilket signalerar till användaren att data är inaktuell.

swift
func updateDelivery(activity: Activity<DeliveryAttributes>) {
    Task {
        let newContent = ActivityContent(
            state: DeliveryAttributes.ContentState(
                status: .delivered,
                estimatedMinutes: 0
            ),
            staleDate: Date().addingTimeInterval(300)
        )
        await activity.update(newContent)
        // Avslutar Activity om 2 sekunder
        try? await Task.sleep(nanoseconds: 2_000_000_000)
        await activity.end(newContent)
    }
}

Energiförbrukning — Dynamic Island och Live Activities har minimal påverkan på batteriet tack vare hårdvaruoptimering av OLED-skärmen. Svarta pixlar runt utskärningen är avstängda och innehållet renderas på en dedikerad koprocessor. Genomsnittlig förbrukning för Live Activity — mindre än 1 % batteri per timmes användning med uppdatering var 5:e minut. Systemet pausar automatiskt Island vid låg batterinivå (under 20 %) eller i energisparläge.

Design för Dynamic Island kräver ingen anpassning av appens huvud-UI — Island fungerar oberoende av den aktiva skärmen. Färgerna på Live Activity bör matcha systemtemat (ljust/mörkt) via systemets Color Assets. SF Symbols är att föredra framför anpassade ikoner — de garanterar korrekt visning i alla Island-lägen och har inbyggt stöd för Dynamic Type.

Vanliga frågor

Hur ser Dynamic Island ut på äldre iPhone?

Dynamic Island är endast tillgängligt på iPhone 14 Pro, 14 Pro Max, 15 Pro, 15 Pro Max och nyare med iOS 16.1+. På äldre iPhone med «lugg» visas inte Dynamic Island — Live Activity visas som en vanlig banner på låsskärmen. Utvecklaren behöver inte skriva annorlunda kod: systemet anpassar själv gränssnittet efter enhetens kapacitet.

Kan man placera två Live Activity i Dynamic Island?

Dynamic Island stöder visning av två aktiviteter samtidigt — de är placerade till vänster och höger om kamerautskärningen. Om det bara finns en aktivitet upptar den vänster sida, höger sida förblir i kompakt tillstånd. När man trycker på någon sida expanderar Island och visar innehållet för motsvarande Activity.

Vilka systemhändelser använder Dynamic Island?

Systemhändelser i Dynamic Island: inkommande samtal med minimalt kort och kontaktnamn, AirPods-anslutning med animation och batteriladdning, Face ID med låsikon, enhetsladdning med procent, modemläge, volymändring, aktivering av Silent Mode, AirDrop med överföringsstatus och skärmdump med slutaranimation.

Hur lägger man till Dynamic Island-stöd i en app?

Dynamic Island kräver inget separat API — det visar Live Activity som skapats via ActivityKit tillsammans med WidgetKit. Appen registrerar en Activity med DynamicIsland-konfiguration, definierar kompakt, minimal och utökad SwiftUI View. Systemet visar den automatiskt i Dynamic Island på enheter som stöds.

Finns det begränsningar för innehåll i Dynamic Island?

Dynamic Island är begränsat till tre visuella tillstånd med olika storlekar: kompakt upp till 50pt, minimal upp till 22pt, utökad upp till 300pt. I kompakt läge rekommenderas inte att placera text längre än 20 tecken. Endast systemets SwiftUI-komponenter är tillgängliga — Text, Image, ProgressView, Gauge. Anpassade teckensnitt och färger är begränsade till systempaletten.

Sammanfattning

  • Dynamic Island — interaktivt område runt kamerautskärningen på iPhone 14 Pro och nyare
  • Tre lägen — kompakt, minimal och utökad med systemhanterade övergångar
  • Live Activity — det enda sättet för anpassat innehåll via ActivityKit och WidgetKit
  • Systemhändelser — samtal, AirPods, Face ID, laddning har prioritet framför anpassat innehåll
  • SwiftUI-begränsningar — endast Text, Image, ProgressView, HStack, VStack, ZStack, Gauge
  • Energiförbrukning — mindre än 1 % batteri per timmes användning med uppdatering var 5:e minut
  • Två aktiviteter — Island visar upp till två aktiviteter samtidigt på båda sidor av utskärningen

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också