Dynamic Island: What It Is, Interacting with Dynamic Island

Author: IT Sectr Published: 2026-02-28 Reading time: 9 min

Dynamic Island is an interactive area at the top of iPhone 14 Pro and all iPhone 15/16 models that combines notifications, background activities, and system indicators into a single dynamic zone. Unlike the traditional notch, Dynamic Island changes its shape and size depending on the current context. According to Apple (WWDC 2024), users interact with Dynamic Island an average of 12 times a day — through taps, long presses, and Live Activities with ActivityKit. Learn more about animations in iOS in the article about Corner Radius.

Key Takeaways

  • Dynamic Island is Apple's software-hardware solution that replaces the notch with an interactive zone of variable geometry.
  • Live Activities are widgets on Dynamic Island that work through the ActivityKit framework (iOS 16.1+).
  • Three states: compact (icon), minimal (pill), expanded (panel with content).
  • ActivityKit is a Swift framework for publishing Live Activities on Dynamic Island and Lock Screen.
  • Dynamic Island supports gestures: tap to open the app, long press to expand the panel.

What Is Dynamic Island?

Dynamic Island is an interactive area based on Apple's software-hardware solution, introduced in September 2022 alongside the iPhone 14 Pro. Physically, it is a pill-shaped cutout surrounded by OLED pixels that dynamically change color and shape. Apple uses a combination of a hardware cutout for the camera and Face ID with software rendering of black areas around it, creating the illusion of a "living" island.

The main goal of Dynamic Island is to bridge the gap between system notifications and active content. Instead of notifications appearing in the center of the screen (as on Android) or as banners from the top (as on older iOS versions), Dynamic Island integrates them directly into the hardware zone. This reduces distraction and creates a sense of unified space.

According to Apple data (iOS 17 Adoption Statistics, 2024), Dynamic Island is available on 38% of active iPhones. Starting with iPhone 15 (2023), all models in the lineup received Dynamic Island, including base models. In iOS 18, Apple expanded the Live Activities API, adding support for countdown timers and sports scores directly on Dynamic Island.

Which Models Support Dynamic Island

Dynamic Island is available on 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. Dynamic Island is not available on iPad. Development for Dynamic Island requires Xcode 14.1+ and iOS 16.1+.

How Dynamic Island Works: Three States

Dynamic Island supports three display states: compact, minimal, and expanded. Transitions between states are animated using UIKit animations and Core Animation. The system itself manages activity priority: if multiple apps try to display content simultaneously, iOS uses a queue based on the start time of the last activity.

StateSizeContentExample
Compact49×18 ptApp icon + system iconTimer, music, call
MinimalUp to 66×18 ptIcon + short textNavigation directions, steps
ExpandedUp to 364×160 ptFull widget with contentSports score, taxi status

Compact state is the standard view of Dynamic Island when one background task is active. It appears as a rounded pill with the app icon on the left and a system icon on the right. By default, all Live Activities start in the compact state.

Minimal state occurs when two or more tasks are active simultaneously. Dynamic Island "splits" into two separate elements on the left and right of the camera. The minimal state allows displaying two independent sources of information, such as time until taxi arrival and the current track.

Expanded state is activated by a long press on Dynamic Island. In this mode, a full widget with customizable content is displayed: titles, descriptions, progress bars, buttons. The expanded state supports scrolling and interactive elements.

ActivityKit and Live Activities: Swift API

ActivityKit is a Swift framework introduced in iOS 16.1 that allows apps to publish Live Activities on Dynamic Island and Lock Screen. ActivityKit uses an architecture based on ActivityView and ActivityAttributes: the former defines the content type, the latter defines mutable data. The framework works in conjunction with WidgetKit, but unlike widgets, Live Activities can update in real-time without opening the app.

swift
import ActivityKit
import SwiftUI

// Define activity attributes
struct DeliveryAttributes: ActivityAttributes {
    public struct ContentState: Codable, Hashable {
        var driverName: String
        var distanceToArrival: Double
        var estimatedMinutes: Int
    }
    var orderNumber: String
}

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

Live Activities update through ActivityView, which renders SwiftUI content for Dynamic Island. The system itself determines which template to use (compact, minimal, or expanded) depending on the size of Dynamic Island and the number of activities. To update content, call activity.update(using: contentState). To end — activity.end(dismissalPolicy: .immediate).

Dynamic Notifications with Push Updates

ActivityKit supports push updates via APNs (Apple Push Notification Service). When starting a Live Activity, you can request a pushToken and send updates from the server without needing to launch the app on the device. Push updates work through activity.pushToken and Activity.pushToStartToken for remote Live Activity start.

swift
// Update Live Activity via Push
func updateActivity(activity: Activity<DeliveryAttributes>) {
    let updatedState = DeliveryAttributes.ContentState(
        driverName: "Alex",
        distanceToArrival: 1.2,
        estimatedMinutes: 4
    )
    let alertConfiguration = AlertConfiguration(
        title: "Courier nearby",
        body: "Alex will arrive in 4 minutes",
        sound: .default
    )
    await activity.update(
        using: updatedState,
        alertConfiguration: alertConfiguration
    )
}

AlertConfiguration is an optional parameter that shows a notification on top of Dynamic Island for important updates (e.g., "Courier has arrived"). Without AlertConfiguration, content updates silently, which is suitable for progress bars and timers.

Dynamic Island vs Notch: Comparison

Notch is the hardware cutout of iPhone X–13 that contains the front camera, Face ID sensor, and speaker. The notch is static: its size and shape do not change, and notifications are displayed below it as standard banners. Dynamic Island, on the other hand, uses pixels around the cutout to display content, making the hardware element part of the interface.

CriterionDynamic IslandNotch
InteractivitySupports taps, long presses, swipesNot interactive
Content adaptationChanges shape based on contextStatic, content below notch
Live ActivitiesBuilt-in support via ActivityKitNo — only standard notifications
MultitaskingTwo simultaneous activities (left and right)Only one activity
AvailabilityiOS 16.1+, iPhone 14 Pro and neweriOS 11+, iPhone X–13

According to Apple Human Interface Guidelines (2025), Dynamic Island should not be used for advertising or permanent display of static content. Live Activities are intended only for background tasks with a clear lifecycle: timers, delivery, sports, music, navigation. Violating these rules leads to app rejection in App Store Review.

Lifecycle and Gestures of Dynamic Island

Dynamic Island has a strict lifecycle: an activity begins with a request through Activity.request(), goes through active/paused/updated states, and ends with a call to activity.end(). The system can force-terminate an activity when memory is low (e.g., when the camera is launched). In this case, the app receives a notification via ActivityActivityState.finished.

Gestures on Dynamic Island are handled by SwiftUI content inside ActivityView. Standard gestures: tap on the compact state opens the app, long press expands the expanded state, swipe down closes the expanded state. Custom gestures are added via SwiftUI modifiers (onTapGesture, onLongPressGesture) inside the activity view.

Handling the finished State

When the system ends a Live Activity (or the user swipes to dismiss it), the app should handle the finished state to free resources. It is recommended to subscribe to Activity.activityStateUpdates and remove local references to the activity after completion.

swift
import ActivityKit

func observeActivityState(activity: Activity<DeliveryAttributes>) {
    Task {
        for await state in activity.activityStateUpdates {
            switch state {
            case .active:
                print("Activity active on Dynamic Island")
            case .dismissed:
                print("Activity dismissed by user")
                await activity.end(dismissalPolicy: .immediate)
            case .finished:
                print("Activity ended by system")
                cleanupResources()
            @unknown default:
                break
            }
        }
    }
}

Apple Recommendation (WWDC 2024, Session 10146): do not use Dynamic Island for displaying statuses that do not require user attention. Each Live Activity should have a clear start and end trigger. For background updates without UI, use Background Tasks instead of Live Activities.

Frequently Asked Questions

Which iPhones support Dynamic Island?

Dynamic Island is available on iPhone 14 Pro, 14 Pro Max, and all iPhone 15 and iPhone 16 models (including base versions). Development requires iOS 16.1+ and Xcode 14.1. On older models (iPhone X–13), a static notch is used, which does not support Live Activities.

How is Dynamic Island different from a regular notification?

Dynamic Island integrates the notification into the hardware zone of the screen without covering content. A regular notification appears as a banner at the top and disappears after a few seconds. Live Activities on Dynamic Island can remain active for hours and update in real-time (delivery status, timer, music).

How to update content on Dynamic Island without opening the app?

Use push updates via APNs. When starting a Live Activity, call activity.pushToken and send the token to your server. The server sends an update request via APNs with the new ContentState. An alternative is local updates via activity.update(using:) from within the app.

How to display two activities simultaneously on Dynamic Island?

iOS automatically splits Dynamic Island into two segments when two Live Activities are active. Each activity is displayed in minimal state on the left and right of the camera. A long press on one of the segments opens the expanded state for that app only.

Why is my Live Activity not appearing on Dynamic Island?

Check: (1) the app has NSSupportsLiveActivities = YES in Info.plist, (2) ActivityAttributes and ContentState implement Codable and Hashable, (3) iOS version is 16.1+, (4) the device supports Dynamic Island. For the simulator, use iPhone 14 Pro or newer in Xcode.

Summary

  • Dynamic Island is the interactive zone of iPhone 14 Pro+, replacing the static notch.
  • Supports three states: compact, minimal, and expanded with smooth transition animations.
  • ActivityKit is a Swift framework for publishing Live Activities on Dynamic Island and Lock Screen.
  • Live Activities update via local calls or push notifications through APNs.
  • Gestures: tap to go to the app, long press to expand the panel, swipe to close.
  • Dynamic Island supports up to two simultaneous activities with segment splitting.
  • Apple restricts Live Activities usage to background tasks with clear timeframes only.

We will develop a mobile application turnkey

IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.

Discuss the project

Read also