Dynamic Island: mi ez, interaktív iPhone értesítések

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

Dynamic Island — egy interaktív terület az iPhone 14 Pro és újabb készülékek felső részén, amely a kamera hardveres kivágását egyesíti a szoftveres értesítésekkel egyetlen interfész elemben. A Dynamic Island alakját és méretét a tartalom típusához igazítja: hívás, időzítő, zene, Live Activity, AirPods csatlakoztatás. A fejlesztők a Dynamic Island API-n keresztül kommunikálnak, amely ActivityKit-en és WidgetKit-en alapul. Bővebben a Dynamic Island HIG oldalon.

Főbb pontok

  • Dynamic Island — szoftver-hardver UI elem iPhone 14 Pro és újabb készülékeken
  • Három mód — kompakt, minimális és bővített, különböző tartalomméretekkel
  • Live Activities — az egyéni tartalom fő módja a Dynamic Island-ben
  • Animációk — a rendszer automatikusan kezeli az Island állapotok közötti átmeneteket
  • Rendszeresemények — hívások, AirPods, Face ID, töltés beépítve a Dynamic Island-be

Mi az a Dynamic Island iPhone-on?

Dynamic Island — egy interfész elem az iPhone 14 Pro, 15 Pro és újabb készülékeken, amely az előlapi kamera és Face ID érzékelők körüli területet használja értesítések és Live Activity megjelenítésére. Ellentétben a régi notch kivágással, amely egy statikus fekete elem volt, a Dynamic Island dinamikusan változtatja alakját és méretét: kitágul az időzítő megjelenítéséhez, összehúzódik a csatlakoztatott AirPods ikonjához, téglalappá alakul sporteredményekhez.

Technikai megvalósítás A Dynamic Island az OLED képernyő hardveres kivágásán (pill-shaped cutout) és a körülötte lévő pixelek szoftveres feldolgozásán alapul. A rendszer 120 Hz-re növeli a pixelek frissítési gyakoriságát az Island területén, és simítást használ a zökkenőmentes átmenethez a tartalom és a kamera fekete területe között. A fejlesztő nem programozza közvetlenül az Island-et — tartalmat hoz létre az ActivityKit-en keresztül, a rendszer pedig automatikusan helyezi el a kivágás körül.

Felhasználói észlelés A Dynamic Island egy hardveres hibát funkcionális elemmé változtat. Az Apple kutatásai szerint a felhasználók néhány nap használat után az Island-et a képernyő természetes részeként érzékelik. A háttérvilágítás és az animációk felkeltik a figyelmet — például egy értesítés érkezése elmozdítja az Island-et, és 120 képkocka/másodperc sebességgel tágulási effektussal jeleníti meg a tartalmat.

Dynamic Island megjelenítési módok

Dynamic Island támogat három tartalommegjelenítési módot, amelyeket a rendszer automatikusan választ ki a tevékenységek típusa és száma alapján. A fejlesztő minden módhoz UI-t határoz meg a WidgetBundle-ben, de nem kezeli, hogy melyik mód az aktuálisan aktív. A rendszer két tevékenységet is megjeleníthet egyszerre: egyet a kivágástól balra, egyet jobbra.

MódMéretTartalomPélda
Kompakt~50pt szélességIkon + rövid szövegIdőzítő: óra ikon + «05:00»
Minimális~22pt körCsak alkalmazás ikonKépernyőkép értesítés
Bővített~300pt x 80ptEgyéni SwiftUI ViewSport eredmény logókkal

Átmenet a módok között 0.4–0.6 másodpercig tartó rendszeranimációval történik ease-in-out görbével. Amikor egy új Activity megjelenik, az Island a kompakt módból a bővítettbe tágul. Befejezéskor — visszahúzódik. A felhasználó balra húzással kényszerítheti a bővített mód összecsukását — az Island kompakt vagy minimális módba vált. A rendszer 5 másodperc inaktivitás után is összecsukja a bővített módot, ha nem várható frissítés.

Két tevékenység — ha két alkalmazásnak van aktív Live Activity-je, a Dynamic Island a kivágás mindkét oldalán megjeleníti azokat. Bal oldal — az első elindított Activity, jobb oldal — a második. Ha csak egy tevékenység van, az a bal oldalt foglalja el, a jobb oldal üres marad. Bármelyik oldal megnyomására az Island kitágul és megjeleníti az adott Activity tartalmát. A rendszer maga dönti el, melyik Activity kap prioritást konfliktus esetén.

Tartalom létrehozása Dynamic Island-hez

Dynamic Island tartalom kizárólag Live Activity-n keresztül jön létre az ActivityKit keretrendszerrel. A fejlesztő négy területet határoz meg a kódban: kompakt bal (compactLeading), kompakt jobb (compactTrailing), minimális (minimal) és bővített (expanded). Minden terület egy SwiftUI View, amely a context-en keresztül kapja meg az Activity aktuális állapotát. Ha egy terület nincs meghatározva, az Island nem jeleníti meg ezt az Activity-t a megfelelő módban.

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 korlátozások Dynamic Island-ben — elérhető komponensek: Text, Image, HStack, VStack, ZStack, Spacer, ProgressView, Button (csak Link-en keresztül), Gauge. Tiltott: ScrollView, List, TabView, animációk, gesture recognizers. Színpaletta — csak System Colors (label, secondaryLabel, tint). Betűtípusok — rendszerméretek .caption-től .title3-ig. Az egyéni betűtípusok és SF Symbols helyesen működnek.

Dynamic Island tesztelése — az Xcode Dynamic Island támogatással rendelkező szimulátort biztosít. Válassza ki az iPhone 14 Pro vagy 15 Pro készüléket célként. Az ActivityKit szimulálja az Island különböző módjait: a Dynamic Island Mode gomb az Xcode Debug menüben vált a kompakt, minimális és bővített között. Több Activity egyidejű teszteléséhez használjon különböző ActivityID-jű sémákat, vagy indítson el két alkalmazáspéldányt.

Rendszeresemények a Dynamic Island-ben

Rendszeresemények — hívások, AirPods, Face ID, töltés és mások — elsőbbséget élveznek az egyéni Live Activity-kkel szemben. Amikor egy rendszeresemény történik, az Island szünetelteti az egyéni tartalom megjelenítését és rendszertartalmat mutat. A rendszeresemény befejezése után az Island animációval tér vissza az egyéni tartalomhoz. A fejlesztő nem törölheti vagy módosíthatja a rendszereseményeket — azok az iOS operációs rendszer szintjén kerülnek kezelésre.

RendszereseményMegjelenítési formátumPrioritás
Bejövő hívásMinimális kártya a kapcsolat nevévelMagas
AirPodsAnimáció + akkumulátor töltöttségKözepes
Face IDLakat ikonKözepes
TöltésVillám ikon + százalékAlacsony
AirDropÁtvitel előrehaladásaKözepes
KépernyőképZár animációAlacsony

Bejövő hívás — a legfontosabb rendszeresemény. A Dynamic Island a hívó nevét a kivágástól balra, az időtartamot/állapotot jobbra jeleníti meg. Aktív hívás alatt az Island nem jelenít meg egyéni Live Activity-t. A felhasználó kitágíthatja az Island-et a hívás képernyő megnyitásához, vagy összecsukhatja, hogy folytassa a munkát az alkalmazásban az aktív háttérhívással.

AirPods csatlakoztatása — a tok iPhone mellé nyitásakor a Dynamic Island animálja a csatlakozást és megjeleníti az egyes fülhallgatók és a tok töltöttségét. Az animáció 2–3 másodpercig tart, majd az Island visszatér az előző állapotba. Ha a felhasználónak nem volt aktív Live Activity-je, az Island üres marad. Az AirPods Pro 2 a szár megnyomásakor a hangerőt és a zajszűrési módot is megjeleníti.

Legjobb fejlesztési gyakorlatok Dynamic Island-hez

Dynamic Island legjobb gyakorlatok az Apple által ajánlva a minőségi felhasználói élmény biztosításához. A kompakt mód csak a legfontosabb információkat jelenítse meg — egy ikont és egy számot vagy rövid címkét. A bővített mód — csak a kulcsfontosságú információkat felesleges elemek nélkül. Kerülje a szöveg elhelyezését kompakt módban, ha az meghaladja a 20 karaktert — a rendszer három ponttal vágja le a szöveget.

Push frissítések Dynamic Island-hez — ritka frissítésekhez (rendelés állapota, sport eredmények) használjon ActivityKit push-t, gyakori időzítőkhöz vagy stopperórákhoz pedig helyi frissítéseket. A push értesítések az APNs-en haladnak át, és 0.5–2 másodpercet vesz igénybe megjelenésük az Island-ben. StaleDate — állítson be elévülési dátumot a tartalomhoz: ha a frissítés nem érkezik meg időben, a rendszer szürke hátteret jelenít meg tartalom helyett, jelezve a felhasználónak az elavult adatokat.

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)
        // Activity befejezése 2 másodperc múlva
        try? await Task.sleep(nanoseconds: 2_000_000_000)
        await activity.end(newContent)
    }
}

Energiafogyasztás — a Dynamic Island és a Live Activities minimális hatással van az akkumulátorra az OLED képernyő hardveres optimalizálásának köszönhetően. A kivágás körüli fekete pixelek ki vannak kapcsolva, a tartalom pedig egy dedikált koprocesszoron renderelődik. A Live Activity átlagos fogyasztása — kevesebb, mint 1% akkumulátor óránként, 5 percenkénti frissítés mellett. A rendszer automatikusan szünetelteti az Island-et alacsony akkumulátorszint (20% alatt) vagy energiatakarékos mód esetén.

Design Dynamic Island-hez nem igényli a fő alkalmazás UI-jának adaptálását — az Island az aktív képernyőtől függetlenül működik. A Live Activity színeinek meg kell felelniük a rendszer témájának (világos/sötét) a rendszer Color Assets-en keresztül. SF Symbols előnyösebbek az egyéni ikonokkal szemben — garantáltan helyesen jelennek meg az Island bármely módjában, és beépített támogatással rendelkeznek a Dynamic Type-hoz.

Gyakran Ismételt Kérdések

Hogyan néz ki a Dynamic Island régebbi iPhone-okon?

A Dynamic Island csak iPhone 14 Pro, 14 Pro Max, 15 Pro, 15 Pro Max és újabb készülékeken érhető el iOS 16.1+ rendszerrel. A régebbi, «hullámos» iPhone-okon a Dynamic Island nem jelenik meg — a Live Activity normál bannerként jelenik meg a zárolási képernyőn. A fejlesztőnek nem kell más kódot írnia: a rendszer maga igazítja az interfészt a készülék képességeihez.

Elhelyezhető két Live Activity a Dynamic Island-ben?

A Dynamic Island támogatja két tevékenység egyidejű megjelenítését — ezek a kamera kivágástól balra és jobbra helyezkednek el. Ha csak egy tevékenység van, az a bal oldalt foglalja el, a jobb oldal kompakt állapotban marad. Bármelyik oldal megnyomására az Island kitágul és megjeleníti a megfelelő Activity tartalmát.

Milyen rendszeresemények használják a Dynamic Island-et?

Rendszeresemények a Dynamic Island-ben: bejövő hívás minimális kártyával és kapcsolat nevével, AirPods csatlakoztatás animációval és akkumulátor töltöttséggel, Face ID lakat ikonnal, eszköz töltés százalékkal, modem mód, hangerő változás, Silent Mode bekapcsolása, AirDrop átviteli előrehaladással és képernyőkép zár animációval.

Hogyan adható hozzá Dynamic Island támogatás az alkalmazáshoz?

A Dynamic Island nem igényel külön API-t — a WidgetKit-tel együtt az ActivityKit-en keresztül létrehozott Live Activity-t jeleníti meg. Az alkalmazás regisztrál egy Activity-t DynamicIsland konfigurációval, meghatározza a kompakt, minimális és bővített SwiftUI View-t. A rendszer automatikusan megjeleníti azt Dynamic Island-ben a támogatott eszközökön.

Vannak korlátozások a tartalomra a Dynamic Island-ben?

A Dynamic Island három vizuális állapotra korlátozódik különböző méretekkel: kompakt 50pt-ig, minimális 22pt-ig, bővített 300pt-ig. Kompakt módban nem ajánlott 20 karakternél hosszabb szöveg elhelyezése. Csak rendszer SwiftUI komponensek érhetők el — Text, Image, ProgressView, Gauge. Az egyéni betűtípusok és színek a rendszerpalettára korlátozódnak.

Összefoglaló

  • Dynamic Island — interaktív terület a kamera kivágás körül iPhone 14 Pro és újabb készülékeken
  • Három mód — kompakt, minimális és bővített rendszer által kezelt átmenetekkel
  • Live Activity — az egyéni tartalom egyetlen módja ActivityKit-en és WidgetKit-en keresztül
  • Rendszeresemények — hívások, AirPods, Face ID, töltés elsőbbséget élveznek az egyéni tartalommal szemben
  • SwiftUI korlátozások — csak Text, Image, ProgressView, HStack, VStack, ZStack, Gauge
  • Energiafogyasztás — kevesebb, mint 1% akkumulátor óránként 5 percenkénti frissítés mellett
  • Két tevékenység — az Island legfeljebb két tevékenységet jelenít meg egyszerre a kivágás mindkét oldalán

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