Dynamic Island: τι είναι, διαδραστικές ειδοποιήσεις iPhone

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-02-16 Χρόνος ανάγνωσης: 9 λεπ

Dynamic Island — μια διαδραστική περιοχή στο πάνω μέρος του iPhone 14 Pro και νεότερων, που συνδυάζει την υλική εγκοπή της κάμερας με ειδοποιήσεις λογισμικού σε ένα ενιαίο στοιχείο διεπαφής. Το Dynamic Island προσαρμόζει το σχήμα και το μέγεθός του ανάλογα με τον τύπο περιεχομένου: κλήση, χρονόμετρο, μουσική, Live Activity, σύνδεση AirPods. Οι προγραμματιστές αλληλεπιδρούν μέσω του Dynamic Island API που βασίζεται σε ActivityKit και WidgetKit. Περισσότερα στο Dynamic Island HIG.

Κύρια σημεία

  • Dynamic Island — στοιχείο UI λογισμικού-υλικού σε iPhone 14 Pro και νεότερα
  • Τρεις λειτουργίες — συμπαγής, ελάχιστη και εκτεταμένη με διαφορετικά μεγέθη περιεχομένου
  • Live Activities — ο κύριος τρόπος προσαρμοσμένου περιεχομένου στο Dynamic Island
  • Κινούμενα σχέδια — το σύστημα διαχειρίζεται αυτόματα τις μεταβάσεις μεταξύ καταστάσεων Island
  • Συμβάντα συστήματος — κλήσεις, AirPods, Face ID, φόρτιση ενσωματωμένα στο Dynamic Island

Τι είναι το Dynamic Island στο iPhone;

Dynamic Island — ένα στοιχείο διεπαφής του iPhone 14 Pro, 15 Pro και νεότερων, που χρησιμοποιεί την περιοχή γύρω από την μπροστινή κάμερα και τους αισθητήρες Face ID για εμφάνιση ειδοποιήσεων και Live Activity. Σε αντίθεση με την παλιά εγκοπή notch, που ήταν ένα στατικό μαύρο στοιχείο, το Dynamic Island αλλάζει δυναμικά σχήμα και μέγεθος: επεκτείνεται για εμφάνιση χρονομέτρου, συρρικνώνεται για εικονίδιο συνδεδεμένων AirPods, μετατρέπεται σε ορθογώνιο για αθλητικά αποτελέσματα.

Τεχνική υλοποίηση Το Dynamic Island βασίζεται στην υλική εγκοπή (pill-shaped cutout) της οθόνης OLED και στην επεξεργασία λογισμικού των εικονοστοιχείων γύρω της. Το σύστημα αυξάνει τον ρυθμό ανανέωσης των εικονοστοιχείων στα 120 Hz στην περιοχή Island και χρησιμοποιεί εξομάλυνση για ομαλή μετάβαση μεταξύ περιεχομένου και μαύρης περιοχής της κάμερας. Ο προγραμματιστής δεν προγραμματίζει απευθείας το Island — δημιουργεί περιεχόμενο μέσω ActivityKit και το σύστημα το τοποθετεί αυτόματα γύρω από την εγκοπή.

Αντίληψη χρήστη Το Dynamic Island μετατρέπει ένα υλικό ελάττωμα σε λειτουργικό στοιχείο. Σύμφωνα με έρευνες της Apple, οι χρήστες αντιλαμβάνονται το Island ως φυσικό μέρος της οθόνης μετά από λίγες ημέρες χρήσης. Ο οπίσθιος φωτισμός και τα κινούμενα σχέδια προσελκύουν την προσοχή — για παράδειγμα, η άφιξη μιας ειδοποίησης μετατοπίζει το Island και εμφανίζει περιεχόμενο με εφέ επέκτασης στα 120 καρέ ανά δευτερόλεπτο.

Λειτουργίες εμφάνισης Dynamic Island

Dynamic Island υποστηρίζει τρεις λειτουργίες εμφάνισης περιεχομένου, τις οποίες το σύστημα επιλέγει αυτόματα βάσει του τύπου και του αριθμού δραστηριοτήτων. Ο προγραμματιστής ορίζει UI για κάθε λειτουργία στο WidgetBundle, αλλά δεν διαχειρίζεται ποια λειτουργία είναι ενεργή τη δεδομένη στιγμή. Το σύστημα μπορεί επίσης να εμφανίζει δύο δραστηριότητες ταυτόχρονα: μία αριστερά της εγκοπής, μία δεξιά.

ΛειτουργίαΜέγεθοςΠεριεχόμενοΠαράδειγμα
Συμπαγής~50pt πλάτοςΕικονίδιο + σύντομο κείμενοΧρονόμετρο: εικονίδιο ρολογιού + «05:00»
Ελάχιστη~22pt κυκλικήΜόνο εικονίδιο εφαρμογήςΕιδοποίηση στιγμιότυπου οθόνης
Εκτεταμένη~300pt x 80ptΠροσαρμοσμένη SwiftUI ViewΑθλητικό σκορ με λογότυπα

Μετάβαση μεταξύ λειτουργιών γίνεται με κινούμενο σχέδιο συστήματος διάρκειας 0.4–0.6 δευτερολέπτου με καμπύλη ease-in-out. Όταν εμφανίζεται μια νέα Activity, το Island επεκτείνεται από συμπαγή σε εκτεταμένη λειτουργία. Όταν ολοκληρώνεται — συρρικνώνεται ξανά. Ο χρήστης μπορεί να αναγκάσει τη σύμπτυξη της εκτεταμένης λειτουργίας με σάρωση προς τα αριστερά — το Island μεταβαίνει σε συμπαγή ή ελάχιστη λειτουργία. Το σύστημα επίσης συμπτύσσει την εκτεταμένη λειτουργία μετά από 5 δευτερόλεπτα αδράνειας, εάν δεν αναμένονται ενημερώσεις.

Δύο δραστηριότητες — εάν δύο εφαρμογές έχουν ενεργές Live Activity, το Dynamic Island τις εμφανίζει και στις δύο πλευρές της εγκοπής. Αριστερή πλευρά — πρώτη Activity που ξεκίνησε, δεξιά πλευρά — δεύτερη. Εάν υπάρχει μία δραστηριότητα, καταλαμβάνει την αριστερή πλευρά, η δεξιά παραμένει κενή. Πατώντας οποιαδήποτε πλευρά, το Island επεκτείνεται και εμφανίζει το περιεχόμενο αυτής της Activity. Το σύστημα αποφασίζει μόνο του ποια Activity έχει προτεραιότητα σε περίπτωση σύγκρουσης.

Δημιουργία περιεχομένου για το Dynamic Island

Περιεχόμενο Dynamic Island δημιουργείται αποκλειστικά μέσω Live Activity με το πλαίσιο ActivityKit. Ο προγραμματιστής ορίζει τέσσερις περιοχές στον κώδικα: συμπαγής αριστερά (compactLeading), συμπαγής δεξιά (compactTrailing), ελάχιστη (minimal) και εκτεταμένη (expanded). Κάθε περιοχή είναι μια SwiftUI View που λαμβάνει την τρέχουσα κατάσταση της Activity μέσω context. Εάν μια περιοχή δεν ορίζεται, το Island δεν εμφανίζει αυτή την Activity στην αντίστοιχη λειτουργία.

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 στο Dynamic Island — διαθέσιμα στοιχεία: Text, Image, HStack, VStack, ZStack, Spacer, ProgressView, Button (μόνο μέσω Link), Gauge. Απαγορευμένα: ScrollView, List, TabView, κινούμενα σχέδια, gesture recognizers. Παλέτα χρωμάτων — μόνο System Colors (label, secondaryLabel, tint). Γραμματοσειρές — μεγέθη συστήματος από .caption έως .title3. Οι προσαρμοσμένες γραμματοσειρές και τα SF Symbols λειτουργούν σωστά.

Δοκιμή Dynamic Island — το Xcode παρέχει προσομοιωτή με υποστήριξη Dynamic Island. Επιλέξτε iPhone 14 Pro ή 15 Pro ως συσκευή-στόχο. Το ActivityKit προσομοιώνει διαφορετικές λειτουργίες Island: το κουμπί Dynamic Island Mode στο μενού Debug του Xcode εναλλάσσεται μεταξύ συμπαγούς, ελάχιστης και εκτεταμένης. Για δοκιμή πολλών Activity ταυτόχρονα, χρησιμοποιήστε σχήματα με διαφορετικά ActivityID ή εκτελέστε δύο στιγμιότυπα της εφαρμογής.

Συμβάντα συστήματος στο Dynamic Island

Συμβάντα συστήματος — κλήσεις, AirPods, Face ID, φόρτιση και άλλα — έχουν προτεραιότητα έναντι των προσαρμοσμένων Live Activity. Όταν συμβαίνει ένα συμβάν συστήματος, το Island διακόπτει την εμφάνιση προσαρμοσμένου περιεχομένου και εμφανίζει περιεχόμενο συστήματος. Μετά την ολοκλήρωση του συμβάντος συστήματος, το Island επιστρέφει στο προσαρμοσμένο περιεχόμενο με κινούμενο σχέδιο. Ο προγραμματιστής δεν μπορεί να ακυρώσει ή να αλλάξει τα συμβάντα συστήματος — διαχειρίζονται σε επίπεδο λειτουργικού συστήματος iOS.

Συμβάν συστήματοςΜορφή εμφάνισηςΠροτεραιότητα
Εισερχόμενη κλήσηΕλάχιστη κάρτα με όνομα επαφήςΥψηλή
AirPodsΚινούμενο σχέδιο + φόρτιση μπαταρίαςΜεσαία
Face IDΕικονίδιο λουκέτουΜεσαία
ΦόρτισηΕικονίδιο κεραυνού + ποσοστόΧαμηλή
AirDropΠρόοδος μεταφοράςΜεσαία
Στιγμιότυπο οθόνηςΚινούμενο σχέδιο κλείστρουΧαμηλή

Εισερχόμενη κλήση — το πιο σημαντικό συμβάν συστήματος. Το Dynamic Island εμφανίζει το όνομα του καλούντος αριστερά της εγκοπής και τη διάρκεια/κατάσταση δεξιά. Κατά τη διάρκεια μιας ενεργής κλήσης, το Island δεν εμφανίζει καμία προσαρμοσμένη Live Activity. Ο χρήστης μπορεί να επεκτείνει το Island για να ανοίξει την οθόνη κλήσης ή να το συμπτύξει για να συνεχίσει την εργασία στην εφαρμογή με ενεργή κλήση στο παρασκήνιο.

Σύνδεση AirPods — όταν ανοίγει η θήκη δίπλα στο iPhone, το Dynamic Island κινεί τη σύνδεση και εμφανίζει τη φόρτιση κάθε ακουστικού και της θήκης. Το κινούμενο σχέδιο διαρκεί 2–3 δευτερόλεπτα, μετά το οποίο το Island επιστρέφει στην προηγούμενη κατάσταση. Εάν ο χρήστης δεν είχε ενεργές Live Activity, το Island παραμένει κενό. Τα AirPods Pro 2 εμφανίζουν επίσης την ένταση και τη λειτουργία ακύρωσης θορύβου κατά το πάτημα του στελέχους.

Βέλτιστες πρακτικές ανάπτυξης για Dynamic Island

Βέλτιστες πρακτικές Dynamic Island από την Apple συνιστώνται για διασφάλιση ποιοτικής εμπειρίας χρήστη. Η συμπαγής λειτουργία πρέπει να εμφανίζει μόνο τις πιο σημαντικές πληροφορίες — ένα εικονίδιο και έναν αριθμό ή σύντομη ετικέτα. Η εκτεταμένη λειτουργία — μόνο βασικές πληροφορίες χωρίς περιττά στοιχεία. Αποφύγετε την τοποθέτηση κειμένου σε συμπαγή λειτουργία εάν υπερβαίνει τους 20 χαρακτήρες — το σύστημα κόβει το κείμενο με αποσιωπητικά.

Ενημερώσεις Push για Dynamic Island — χρησιμοποιήστε ActivityKit push για σπάνιες ενημερώσεις (κατάσταση παραγγελίας, αθλητικά αποτελέσματα) και τοπικές ενημερώσεις για συχνά χρονόμετρα ή χρονομέτρη. Οι ειδοποιήσεις push περνούν μέσω APNs και χρειάζονται 0.5–2 δευτερόλεπτα για να εμφανιστούν στο Island. StaleDate — ορίστε ημερομηνία λήξης περιεχομένου: εάν η ενημέρωση δεν φτάσει εγκαίρως, το σύστημα εμφανίζει γκρι φόντο αντί για περιεχόμενο, ειδοποιώντας τον χρήστη για παρωχημένα δεδομένα.

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 σε 2 δευτερόλεπτα
        try? await Task.sleep(nanoseconds: 2_000_000_000)
        await activity.end(newContent)
    }
}

Κατανάλωση ενέργειας — το Dynamic Island και οι Live Activities έχουν ελάχιστη επίδραση στην μπαταρία χάρη στη βελτιστοποίηση υλικού της οθόνης OLED. Τα μαύρα εικονοστοιχεία γύρω από την εγκοπή είναι απενεργοποιημένα και το περιεχόμενο αποδίδεται σε έναν αποκλειστικό συνεπεξεργαστή. Μέση κατανάλωση Live Activity — λιγότερο από 1% μπαταρίας ανά ώρα χρήσης με ενημέρωση κάθε 5 λεπτά. Το σύστημα διακόπτει αυτόματα το Island σε χαμηλή μπαταρία (κάτω από 20%) ή σε λειτουργία εξοικονόμησης ενέργειας.

Σχεδιασμός για Dynamic Island δεν απαιτεί προσαρμογή του κύριου UI της εφαρμογής — το Island λειτουργεί ανεξάρτητα από την ενεργή οθόνη. Τα χρώματα των Live Activity πρέπει να αντιστοιχούν στο θέμα συστήματος (ανοιχτό/σκοτεινό) μέσω System Color Assets. SF Symbols είναι προτιμότερα από προσαρμοσμένα εικονίδια — εγγυώνται σωστή εμφάνιση σε οποιαδήποτε λειτουργία Island και έχουν ενσωματωμένη υποστήριξη για Dynamic Type.

Συχνές Ερωτήσεις

Πώς φαίνεται το Dynamic Island σε παλαιότερα iPhone;

Το Dynamic Island είναι διαθέσιμο μόνο σε iPhone 14 Pro, 14 Pro Max, 15 Pro, 15 Pro Max και νεότερα με iOS 16.1+. Σε παλαιότερα iPhone με «φρύδι» το Dynamic Island δεν εμφανίζεται — το Live Activity εμφανίζεται ως κανονικό banner στην οθόνη κλειδώματος. Ο προγραμματιστής δεν χρειάζεται να γράψει διαφορετικό κώδικα: το σύστημα προσαρμόζει μόνο του τη διεπαφή στις δυνατότητες της συσκευής.

Μπορούν να τοποθετηθούν δύο Live Activity στο Dynamic Island;

Το Dynamic Island υποστηρίζει την ταυτόχρονη εμφάνιση δύο δραστηριοτήτων — βρίσκονται αριστερά και δεξιά της εγκοπής της κάμερας. Εάν υπάρχει μία δραστηριότητα, καταλαμβάνει την αριστερή πλευρά, η δεξιά παραμένει σε συμπαγή κατάσταση. Πατώντας οποιαδήποτε πλευρά, το Island επεκτείνεται και εμφανίζει το περιεχόμενο της αντίστοιχης Activity.

Ποια συμβάντα συστήματος χρησιμοποιούν το Dynamic Island;

Συμβάντα συστήματος στο Dynamic Island: εισερχόμενη κλήση με ελάχιστη κάρτα και όνομα επαφής, σύνδεση AirPods με κινούμενο σχέδιο και φόρτιση μπαταρίας, Face ID με εικονίδιο λουκέτου, φόρτιση συσκευής με ποσοστό, λειτουργία μόντεμ, αλλαγή έντασης, ενεργοποίηση Silent Mode, AirDrop με πρόοδο μεταφοράς και στιγμιότυπο οθόνης με κινούμενο σχέδιο κλείστρου.

Πώς προστίθεται υποστήριξη Dynamic Island σε εφαρμογή;

Το Dynamic Island δεν απαιτεί ξεχωριστό API — εμφανίζει Live Activity που δημιουργείται μέσω ActivityKit μαζί με WidgetKit. Η εφαρμογή καταχωρεί μια Activity με διαμόρφωση DynamicIsland, ορίζει συμπαγή, ελάχιστη και εκτεταμένη SwiftUI View. Το σύστημα την εμφανίζει αυτόματα στο Dynamic Island σε υποστηριζόμενες συσκευές.

Υπάρχουν περιορισμοί περιεχομένου στο Dynamic Island;

Το Dynamic Island περιορίζεται σε τρεις οπτικές καταστάσεις με διαφορετικά μεγέθη: συμπαγής έως 50pt, ελάχιστη έως 22pt, εκτεταμένη έως 300pt. Σε συμπαγή λειτουργία δεν συνιστάται η τοποθέτηση κειμένου άνω των 20 χαρακτήρων. Διατίθενται μόνο στοιχεία SwiftUI συστήματος — Text, Image, ProgressView, Gauge. Οι προσαρμοσμένες γραμματοσειρές και χρώματα περιορίζονται στην παλέτα συστήματος.

Σύνοψη

  • Dynamic Island — διαδραστική περιοχή γύρω από την εγκοπή κάμερας σε iPhone 14 Pro και νεότερα
  • Τρεις λειτουργίες — συμπαγής, ελάχιστη και εκτεταμένη με διαχείριση μεταβάσεων από το σύστημα
  • Live Activity — ο μόνος τρόπος προσαρμοσμένου περιεχομένου μέσω ActivityKit και WidgetKit
  • Συμβάντα συστήματος — κλήσεις, AirPods, Face ID, φόρτιση έχουν προτεραιότητα έναντι προσαρμοσμένου περιεχομένου
  • Περιορισμοί SwiftUI — μόνο Text, Image, ProgressView, HStack, VStack, ZStack, Gauge
  • Κατανάλωση ενέργειας — λιγότερο από 1% μπαταρίας ανά ώρα χρήσης με ενημέρωση κάθε 5 λεπτά
  • Δύο δραστηριότητες — το Island εμφανίζει έως δύο δραστηριότητες ταυτόχρονα και στις δύο πλευρές της εγκοπής

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης