Dynamic Island: mi ez, interakció a Dynamic Islanddel

Szerző: IT Sectr Megjelenés: 2026-02-28 Olvasási idő: 9 perc

Dynamic Island — egy interaktív terület az iPhone 14 Pro és az összes iPhone 15/16 felső részén, amely egyesíti az értesítéseket, háttértevékenységeket és rendszerjelzőket egyetlen dinamikus zónában. A hagyományos kivágással (notch) ellentétben a Dynamic Island alakját és méretét az aktuális kontextusnak megfelelően változtatja. Az Apple adatai szerint (WWDC 2024) a felhasználók átlagosan napi 12-szer lépnek kapcsolatba a Dynamic Islanddel — érintéssel, hosszú lenyomással és Live Activities segítségével az ActivityKit-en keresztül. Az iOS animációiról bővebben a Corner Radius cikkben olvashat.

Főbb pontok

  • Dynamic Island — az Apple szoftver-hardver megoldása, amely a kivágást egy változó geometriájú interaktív zónával helyettesíti.
  • Live Activities — widgetek a Dynamic Islanden, amelyek az ActivityKit keretrendszeren (iOS 16.1+) keresztül működnek.
  • Három állapot: kompakt (ikon), minimális (tabletta), kibővített (tartalommal rendelkező panel).
  • ActivityKit — Swift keretrendszer a Live Activities közzétételéhez a Dynamic Islanden és a Lock Screenen.
  • A Dynamic Island támogatja a gesztusokat: érintés az alkalmazás megnyitásához, hosszú lenyomás a panel kibontásához.

Mi az a Dynamic Island?

Dynamic Island — egy interaktív terület az Apple szoftver-hardver megoldása alapján, amelyet 2022 szeptemberében mutattak be az iPhone 14 Pro-val együtt. Fizikailag egy tabletta alakú kivágás, amelyet OLED pixelek vesznek körül, amelyek dinamikusan változtatják a színüket és alakjukat. Az Apple a kamera és a Face ID hardver rekeszének kombinációját használja a körülötte lévő fekete területek szoftveres renderelésével, létrehozva egy «élő» sziget illúzióját.

A Dynamic Island fő célja a rendszerértesítések és az aktív tartalom közötti szakadék áthidalása. Ahelyett, hogy az értesítések a képernyő közepén (mint Androidon) vagy bannerként felül (mint régebbi iOS-eken) jelennének meg, a Dynamic Island közvetlenül a hardver zónába integrálja azokat. Ez csökkenti a figyelemelterelést és egységes tér érzetét kelti.

Az Apple adatai szerint (iOS 17 Adoption Statistics, 2024) a Dynamic Island az aktív iPhone-ok 38%-án elérhető. Az iPhone 15-től (2023) kezdve a sorozat összes modellje megkapta a Dynamic Islandet, beleértve az alapmodelleket is. Az iOS 18-ban az Apple kibővítette a Live Activities API-t, hozzáadva a visszaszámláló időzítők és sporteredmények támogatását közvetlenül a Dynamic Islanden.

Mely modellek támogatják a Dynamic Islandet

Dynamic Island elérhető iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15, iPhone 15 Plus, iPhone 15 Pro, iPhone 15 Pro Max, iPhone 16, iPhone 16 Plus, iPhone 16 Pro, iPhone 16 Pro Max készülékeken. iPaden a Dynamic Island nem érhető el. A Dynamic Islandhez való fejlesztéshez Xcode 14.1+ és iOS 16.1+ szükséges.

Hogyan működik a Dynamic Island: három állapot

A Dynamic Island három megjelenítési állapotot támogat: kompakt (compact), minimális (minimal) és kibővített (expanded). Az állapotok közötti átmenet UIKit-animációk és Core Animation segítségével animált. A rendszer maga kezeli a tevékenységek prioritását: ha több alkalmazás egyszerre próbál tartalmat megjeleníteni, az iOS az utolsó tevékenység kezdési idején alapuló sort használ.

ÁllapotMéretTartalomPélda
Compact49×18 ptAlkalmazás ikon + rendszer ikonIdőzítő, zene, hívás
Minimal66×18 pt-igIkon + rövid szövegNavigációs utasítások, lépések
Expanded364×160 pt-igTeljes widget tartalommalSport eredmény, taxi állapot

Kompakt állapot — a Dynamic Island alapértelmezett nézete, amikor egy háttérfeladat aktív. Lekerekített tablettaként jelenik meg az alkalmazás ikonjával balra és a rendszer ikonnal jobbra. Alapértelmezés szerint minden Live Activity kompakt állapotban indul.

Minimális állapot akkor fordul elő, ha két vagy több feladat egyszerre aktív. A Dynamic Island két külön elemre «oszlik» a kamera bal és jobb oldalán. A minimális állapot lehetővé teszi két független információforrás megjelenítését, például a taxi érkezési idejét és az aktuális számot.

Kibővített állapot a Dynamic Island hosszú lenyomásával aktiválódik. Ebben a módban egy teljes widget jelenik meg testreszabható tartalommal: címsorok, leírások, folyamatjelző sávok, gombok. A kibővített állapot támogatja a görgetést és az interaktív elemeket.

ActivityKit és Live Activities: Swift API

ActivityKit — egy Swift keretrendszer, amelyet az iOS 16.1-ben vezettek be, és lehetővé teszi az alkalmazások számára, hogy Live Activities-t tegyenek közzé a Dynamic Islanden és a Lock Screenen. Az ActivityKit az ActivityView és ActivityAttributes alapú architektúrát használja: az első a tartalom típusát, a második a változó adatokat határozza meg. A keretrendszer a WidgetKit-kel együttműködve működik, de a widgetekkel ellentétben a Live Activities valós időben frissülhet az alkalmazás megnyitása nélkül.

swift
import ActivityKit
import SwiftUI

// Meghatározzuk a tevékenység attribútumait
struct DeliveryAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        var driverName: String
        var distanceToArrival: Double
        var estimatedMinutes: Int
    }
    var orderNumber: String
}

// Elindítjuk a Live Activity-t
func startDeliveryActivity() {
    let initialState = DeliveryAttributes.ContentState(
        driverName: "Alekszej",
        distanceToArrival: 3.5,
        estimatedMinutes: 12
    )
    let attributes = DeliveryAttributes(orderNumber: "ORD-2024-8912")
    let activity = try? Activity.request(
        attributes: attributes,
        contentState: initialState,
        pushType: .token
    )
}

A Live Activities az ActivityView-n keresztül frissül, amely SwiftUI tartalmat renderel a Dynamic Island számára. A rendszer maga határozza meg, melyik sablont használja (kompakt, minimális vagy kibővített), a Dynamic Island méretétől és a tevékenységek számától függően. A tartalom frissítéséhez hívja meg a activity.update(using: contentState) parancsot. A befejezéshez — activity.end(dismissalPolicy: .immediate).

Dinamikus értesítések Push frissítésekkel

Az ActivityKit támogatja a push frissítéseket az APNs (Apple Push Notification Service) segítségével. A Live Activity indításakor pushToken-t kérhet, és frissítéseket küldhet a szerverről anélkül, hogy el kellene indítania az alkalmazást az eszközön. A push frissítések az activity.pushToken és a Live Activity távoli indításához az Activity.pushToStartToken segítségével működnek.

swift
// Live Activity frissítése Push segítségével
func updateActivity(activity: Activity<DeliveryAttributes>) {
    let updatedState = DeliveryAttributes.ContentState(
        driverName: "Alekszej",
        distanceToArrival: 1.2,
        estimatedMinutes: 4
    )
    let alertConfiguration = AlertConfiguration(
        title: "A futár közel van",
        body: "Alekszej 4 percen belül megérkezik",
        sound: .default
    )
    await activity.update(
        using: updatedState,
        alertConfiguration: alertConfiguration
    )
}

AlertConfiguration — egy további paraméter, amely értesítést jelenít meg a Dynamic Island felett fontos frissítésekkor (például «A futár megérkezett»). AlertConfiguration nélkül a tartalom csendesen frissül, ami a folyamatjelző sávokhoz és időzítőkhöz alkalmas.

Dynamic Island vs Notch: összehasonlítás

A Notch (kivágás) — az iPhone X–13 hardver zónája, amely az előlapi kamerát, Face ID érzékelőt és hangszórót tartalmazza. A notch statikus: mérete és alakja nem változik, az értesítések pedig alatta jelennek meg szabványos bannerként. A Dynamic Island ezzel szemben a kivágás körüli pixeleket használja a tartalom megjelenítéséhez, a hardver elemet a felület részévé téve.

SzempontDynamic IslandNotch
InteraktivitásTámogatja az érintést, hosszú lenyomást, húzástNem interaktív
Tartalom adaptációAlakot vált a kontextusnak megfelelőenStatikus, tartalom a kivágás alatt
Live ActivitiesBeépített támogatás az ActivityKit-en keresztülNem — csak szokásos értesítések
MultitaskingKét egyidejű tevékenység (bal és jobb)Csak egy tevékenység
ElérhetőségiOS 16.1+, iPhone 14 Pro és újabbiOS 11+, iPhone X–13

Az Apple Human Interface Guidelines (2025) szerint a Dynamic Island nem használható reklámokhoz vagy statikus tartalom folyamatos megjelenítéséhez. A Live Activities csak egyértelmű életciklusú háttérfeladatokhoz készült: időzítők, kiszállítás, sport, zene, navigáció. E szabályok megsértése az alkalmazás elutasításához vezet az App Store Review-ben.

A Dynamic Island életciklusa és gesztusai

A Dynamic Island szigorú életciklussal rendelkezik: a tevékenység az Activity.request() kéréssel kezdődik, áthalad az aktív/szüneteltetett/frissített állapotokon, és az activity.end() meghívásával ér véget. A rendszer kényszerítve befejezheti a tevékenységet memóriahiány esetén (például a kamera elindításakor). Ebben az esetben az alkalmazás értesítést kap az ActivityActivityState.finished segítségével.

A Dynamic Island gesztusait az ActivityView-n belüli SwiftUI tartalom dolgozza fel. Szabványos gesztusok: a kompakt állapot megérintése megnyitja az alkalmazást, a hosszú lenyomás megnyitja a kibővített állapotot, a lefelé húzás bezárja a kibővített állapotot. Egyéni gesztusok a SwiftUI módosítók (onTapGesture, onLongPressGesture) segítségével adhatók hozzá a tevékenység nézeten belül.

A finished állapot kezelése

Amikor a rendszer befejez egy Live Activity-t (vagy a felhasználó elhúzással törli), az alkalmazásnak kezelnie kell a finished állapotot az erőforrások felszabadításához. Javasolt feliratkozni az Activity.activityStateUpdates-ra, és eltávolítani a helyi hivatkozásokat a tevékenységre a befejezés után.

swift
import ActivityKit

func observeActivityState(activity: Activity<DeliveryAttributes>) {
    Task {
        for await state in activity.activityStateUpdates {
            switch state {
            case .active:
                print("Activity aktív a Dynamic Islanden")
            case .dismissed:
                print("Activity elrejtve a felhasználó által")
                await activity.end(dismissalPolicy: .immediate)
            case .finished:
                print("Activity befejezve a rendszer által")
                cleanupResources()
            @unknown default:
                break
            }
        }
    }
}

Apple ajánlása (WWDC 2024, Session 10146): ne használja a Dynamic Islandet olyan állapotok megjelenítésére, amelyek nem igényelnek felhasználói figyelmet. Minden Live Activity-nek világos kezdő és befejező triggerrel kell rendelkeznie. UI nélküli háttérfrissítésekhez használjon Background Tasks-t, ne Live Activities-t.

Gyakran Ismételt Kérdések

Mely iPhone-okon működik a Dynamic Island?

Dynamic Island elérhető iPhone 14 Pro, 14 Pro Max és az összes iPhone 15 és iPhone 16 modellen (beleértve az alap verziókat is). A fejlesztéshez iOS 16.1+ és Xcode 14.1 szükséges. Régebbi modelleken (iPhone X–13) a statikus notch kivágás használatos, amely nem támogatja a Live Activities-t.

Miben különbözik a Dynamic Island a szokásos értesítéstől?

Dynamic Island integrálja az értesítést a képernyő hardver zónájába anélkül, hogy eltakarná a tartalmat. A szokásos értesítés bannerként jelenik meg felül, és néhány másodperc múlva eltűnik. A Dynamic Islanden lévő Live Activities órákig aktív maradhat, és valós időben frissülhet (kiszállítás állapota, időzítő, zene).

Hogyan frissíthetem a tartalmat a Dynamic Islanden az alkalmazás megnyitása nélkül?

Használjon push frissítéseket az APNs segítségével. A Live Activity indításakor hívja meg az activity.pushToken-t, és küldje el a tokent a szerverének. A szerver egy frissítési kérést küld az APNs-en keresztül az új ContentState-tel. Alternatíva — helyi frissítés az activity.update(using:) segítségével magából az alkalmazásból.

Hogyan jeleníthetek meg két tevékenységet egyszerre a Dynamic Islanden?

Az iOS automatikusan két szegmensre osztja a Dynamic Islandet, ha két aktív Live Activity van. Minden tevékenység minimális állapotban jelenik meg a kamera bal és jobb oldalán. Az egyik szegmens hosszú lenyomásával csak annak az alkalmazásnak a kibővített állapota nyílik meg.

Miért nem jelenik meg a Live Activity-m a Dynamic Islanden?

Ellenőrizze: (1) az alkalmazás rendelkezik NSSupportsLiveActivities = YES értékkel az Info.plist-ben, (2) az ActivityAttributes és ContentState implementálja a Codable és Hashable protokollokat, (3) iOS verzió 16.1+, (4) a készülék támogatja a Dynamic Islandet. Szimulátorhoz használjon iPhone 14 Pro vagy újabbat az Xcode-ban.

Összefoglalás

  • Dynamic Island — az iPhone 14 Pro+ interaktív zónája, amely a statikus notch-ot helyettesíti.
  • Három állapotot támogat: kompakt, minimális és kibővített, sima átmeneti animációkkal.
  • ActivityKit — Swift keretrendszer a Live Activities közzétételéhez a Dynamic Islanden és a Lock Screenen.
  • A Live Activities helyi hívásokkal vagy push értesítésekkel frissül az APNs-en keresztül.
  • Gesztusok: érintés az alkalmazáshoz, hosszú lenyomás a panel kibontásához, húzás a bezáráshoz.
  • A Dynamic Island legfeljebb két egyidejű tevékenységet támogat szegmensekre osztással.
  • Az Apple a Live Activities használatát csak egyértelmű időkerettel rendelkező háttérfeladatokra korlátozza.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is