Dynamic Island iPhone 14 Pro और सभी iPhone 15/16 के ऊपरी हिस्से में एक इंटरैक्टिव क्षेत्र है, जो सूचनाओं, पृष्ठभूमि गतिविधियों और सिस्टम संकेतकों को एक गतिशील क्षेत्र में जोड़ता है। पारंपरिक notch के विपरीत, Dynamic Island वर्तमान संदर्भ के अनुसार अपना आकार और रूप बदलता है। Apple (WWDC 2024) के अनुसार, उपयोगकर्ता Dynamic Island के साथ औसतन दिन में 12 बार इंटरैक्ट करते हैं — टैप, लॉन्ग प्रेस और ActivityKit के साथ Live Activities के माध्यम से। iOS में एनिमेशन के बारे में अधिक जानने के लिए Corner Radius लेख पढ़ें।
मुख्य बातें
Dynamic Island Apple के सॉफ़्टवेयर-हार्डवेयर समाधान पर आधारित एक इंटरैक्टिव क्षेत्र है, जिसे सितंबर 2022 में iPhone 14 Pro के साथ पेश किया गया था। भौतिक रूप से, यह गोली के आकार का एक कटआउट है जो OLED पिक्सल से घिरा होता है जो गतिशील रूप से रंग और आकार बदलते हैं। Apple कैमरा और Face ID के लिए हार्डवेयर कटआउट के साथ उसके चारों ओर काले क्षेत्रों के सॉफ़्टवेयर रेंडरिंग के संयोजन का उपयोग करता है, जो एक «जीवित» द्वीप का भ्रम पैदा करता है।
Dynamic Island का मुख्य उद्देश्य सिस्टम सूचनाओं और सक्रिय सामग्री के बीच की दूरी को समाप्त करना है। सूचनाओं को स्क्रीन के केंद्र में (जैसे Android में) या ऊपर बैनर के रूप में (जैसे पुराने iOS में) दिखाने के बजाय, Dynamic Island उन्हें सीधे हार्डवेयर क्षेत्र में एकीकृत करता है। यह ध्यान भटकना कम करता है और एकीकृत स्थान की भावना पैदा करता है।
Apple डेटा (iOS 17 अपनाने के आँकड़े, 2024) के अनुसार, Dynamic Island 38% सक्रिय iPhone पर उपलब्ध है। iPhone 15 (2023) से शुरू होकर, लाइनअप के सभी मॉडलों को Dynamic Island मिला, जिसमें बेस मॉडल भी शामिल हैं। iOS 18 में, Apple ने Live Activities API का विस्तार किया, जिसमें सीधे Dynamic Island पर काउंटडाउन टाइमर और खेल परिणामों के लिए समर्थन जोड़ा गया।
Dynamic Island 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 पर उपलब्ध है। iPad पर Dynamic Island उपलब्ध नहीं है। Dynamic Island के लिए डेवलपमेंट के लिए Xcode 14.1+ और iOS 16.1+ आवश्यक है।
Dynamic Island तीन प्रदर्शन अवस्थाओं का समर्थन करता है: कॉम्पैक्ट, न्यूनतम और विस्तारित। अवस्थाओं के बीच संक्रमण UIKit एनिमेशन और Core Animation का उपयोग करके एनिमेटेड होता है। सिस्टम स्वयं गतिविधि प्राथमिकता का प्रबंधन करता है: यदि कई ऐप एक साथ सामग्री प्रदर्शित करने का प्रयास करते हैं, तो iOS अंतिम गतिविधि के प्रारंभ समय के आधार पर कतार का उपयोग करता है।
| अवस्था | आकार | सामग्री | उदाहरण |
|---|---|---|---|
| कॉम्पैक्ट | 49×18 pt | ऐप आइकन + सिस्टम आइकन | टाइमर, संगीत, कॉल |
| न्यूनतम | 66×18 pt तक | आइकन + छोटा टेक्स्ट | नेविगेशन दिशाएँ, कदम |
| विस्तारित | 364×160 pt तक | सामग्री के साथ पूर्ण विजेट | खेल स्कोर, टैक्सी स्थिति |
कॉम्पैक्ट अवस्था Dynamic Island का मानक दृश्य है जब एक पृष्ठभूमि कार्य सक्रिय होता है। यह बाईं ओर ऐप आइकन और दाईं ओर सिस्टम आइकन के साथ एक गोल गोली के रूप में दिखाई देता है। डिफ़ॉल्ट रूप से, सभी Live Activities कॉम्पैक्ट अवस्था में शुरू होती हैं।
न्यूनतम अवस्था तब उत्पन्न होती है जब दो या अधिक कार्य एक साथ सक्रिय होते हैं। Dynamic Island कैमरे के बाईं और दाईं ओर दो अलग-अलग तत्वों में «विभाजित» हो जाता है। न्यूनतम अवस्था सूचना के दो स्वतंत्र स्रोतों को प्रदर्शित करने की अनुमति देती है, जैसे टैक्सी आगमन तक का समय और वर्तमान ट्रैक।
विस्तारित अवस्था Dynamic Island पर लॉन्ग प्रेस द्वारा सक्रिय होती है। इस मोड में, अनुकूलन योग्य सामग्री के साथ एक पूर्ण विजेट प्रदर्शित होता है: शीर्षक, विवरण, प्रगति पट्टियाँ, बटन। विस्तारित अवस्था स्क्रॉलिंग और इंटरैक्टिव तत्वों का समर्थन करती है।
ActivityKit iOS 16.1 में पेश किया गया एक Swift फ्रेमवर्क है, जो ऐप्स को Dynamic Island और Lock Screen पर Live Activities प्रकाशित करने की अनुमति देता है। ActivityKit ActivityView और ActivityAttributes पर आधारित आर्किटेक्चर का उपयोग करता है: पहला सामग्री प्रकार को परिभाषित करता है, दूसरा परिवर्तनीय डेटा को परिभाषित करता है। फ्रेमवर्क WidgetKit के साथ मिलकर काम करता है, लेकिन विजेट के विपरीत, Live Activities ऐप खोले बिना वास्तविक समय में अपडेट हो सकती हैं।
import ActivityKit
import SwiftUI
// गतिविधि विशेषताएँ परिभाषित करें
struct DeliveryAttributes: ActivityAttributes {
public struct ContentState: Codable, Hashable {
var driverName: String
var distanceToArrival: Double
var estimatedMinutes: Int
}
var orderNumber: String
}
// Live Activity शुरू करें
func startDeliveryActivity() {
let initialState = DeliveryAttributes.ContentState(
driverName: "एलेक्सी",
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 ActivityView के माध्यम से अपडेट होती हैं, जो Dynamic Island के लिए SwiftUI सामग्री रेंडर करता है। सिस्टम स्वयं तय करता है कि कौन सा टेम्पलेट उपयोग करना है (कॉम्पैक्ट, न्यूनतम या विस्तारित), Dynamic Island के आकार और गतिविधियों की संख्या के आधार पर। सामग्री अपडेट करने के लिए, activity.update(using: contentState) कॉल करें। समाप्त करने के लिए — activity.end(dismissalPolicy: .immediate).
ActivityKit APNs (Apple Push Notification Service) के माध्यम से push अपडेट का समर्थन करता है। Live Activity शुरू करते समय, आप pushToken का अनुरोध कर सकते हैं और डिवाइस पर ऐप लॉन्च किए बिना सर्वर से अपडेट भेज सकते हैं। Push अपडेट activity.pushToken और दूरस्थ Live Activity प्रारंभ के लिए Activity.pushToStartToken के माध्यम से काम करते हैं।
// Push के माध्यम से Live Activity अपडेट करें
func updateActivity(activity: Activity<DeliveryAttributes>) {
let updatedState = DeliveryAttributes.ContentState(
driverName: "एलेक्सी",
distanceToArrival: 1.2,
estimatedMinutes: 4
)
let alertConfiguration = AlertConfiguration(
title: "कूरियर पास में है",
body: "एलेक्सी 4 मिनट में आएगा",
sound: .default
)
await activity.update(
using: updatedState,
alertConfiguration: alertConfiguration
)
}
AlertConfiguration एक वैकल्पिक पैरामीटर है जो महत्वपूर्ण अपडेट (जैसे, «कूरियर आ गया है») पर Dynamic Island के ऊपर एक सूचना दिखाता है। AlertConfiguration के बिना, सामग्री चुपचाप अपडेट होती है, जो प्रगति पट्टियों और टाइमर के लिए उपयुक्त है।
Notch (कटआउट) iPhone X–13 का हार्डवेयर क्षेत्र है जिसमें फ्रंट कैमरा, Face ID सेंसर और स्पीकर होता है। Notch स्थिर है: इसका आकार और रूप नहीं बदलता, और सूचनाएँ इसके नीचे मानक बैनर के रूप में प्रदर्शित होती हैं। Dynamic Island, इसके विपरीत, सामग्री प्रदर्शित करने के लिए कटआउट के आसपास के पिक्सल का उपयोग करता है, हार्डवेयर तत्व को इंटरफ़ेस का हिस्सा बनाता है।
| मानदंड | Dynamic Island | Notch |
|---|---|---|
| इंटरैक्टिविटी | टैप, लॉन्ग प्रेस, स्वाइप का समर्थन करता है | इंटरैक्टिव नहीं |
| सामग्री अनुकूलन | संदर्भ के अनुसार आकार बदलता है | स्थिर, सामग्री notch के नीचे |
| Live Activities | ActivityKit के माध्यम से अंतर्निहित समर्थन | नहीं — केवल सामान्य सूचनाएँ |
| मल्टीटास्किंग | दो एक साथ गतिविधियाँ (बाएँ और दाएँ) | केवल एक गतिविधि |
| उपलब्धता | iOS 16.1+, iPhone 14 Pro और नए | iOS 11+, iPhone X–13 |
Apple Human Interface Guidelines (2025) के अनुसार, Dynamic Island का उपयोग विज्ञापन या स्थिर सामग्री के स्थायी प्रदर्शन के लिए नहीं किया जाना चाहिए। Live Activities केवल स्पष्ट जीवनचक्र वाले पृष्ठभूमि कार्यों के लिए अभिप्रेत हैं: टाइमर, डिलीवरी, खेल, संगीत, नेविगेशन। इन नियमों का उल्लंघन App Store समीक्षा में ऐप अस्वीकृति की ओर ले जाता है।
Dynamic Island का एक सख्त जीवनचक्र है: गतिविधि Activity.request() के माध्यम से एक अनुरोध से शुरू होती है, सक्रिय/रुकी/अपडेटेड अवस्थाओं से गुज़रती है और activity.end() कॉल के साथ समाप्त होती है। सिस्टम कम मेमोरी होने पर गतिविधि को जबरदस्ती समाप्त कर सकता है (जैसे, कैमरा लॉन्च होने पर)। इस मामले में, ऐप को ActivityActivityState.finished के माध्यम से एक सूचना मिलती है।
जेस्चर Dynamic Island पर ActivityView के अंदर SwiftUI सामग्री द्वारा संभाले जाते हैं। मानक जेस्चर: कॉम्पैक्ट अवस्था पर टैप ऐप खोलता है, लॉन्ग प्रेस विस्तारित अवस्था को खोलता है, नीचे स्वाइप विस्तारित अवस्था को बंद करता है। कस्टम जेस्चर गतिविधि दृश्य के अंदर SwiftUI मॉडिफ़ायर (onTapGesture, onLongPressGesture) के माध्यम से जोड़े जाते हैं।
जब सिस्टम Live Activity समाप्त करता है (या उपयोगकर्ता स्वाइप करके हटा देता है), तो ऐप को संसाधन मुक्त करने के लिए finished अवस्था को संभालना चाहिए। Activity.activityStateUpdates की सदस्यता लेने और समाप्ति के बाद गतिविधि के स्थानीय संदर्भों को हटाने की अनुशंसा की जाती है।
import ActivityKit
func observeActivityState(activity: Activity<DeliveryAttributes>) {
Task {
for await state in activity.activityStateUpdates {
switch state {
case .active:
print("गतिविधि Dynamic Island पर सक्रिय है")
case .dismissed:
print("गतिविधि उपयोगकर्ता द्वारा छिपाई गई")
await activity.end(dismissalPolicy: .immediate)
case .finished:
print("गतिविधि सिस्टम द्वारा समाप्त की गई")
cleanupResources()
@unknown default:
break
}
}
}
}
Apple अनुशंसा (WWDC 2024, सत्र 10146): Dynamic Island का उपयोग उन स्थितियों को प्रदर्शित करने के लिए न करें जिनमें उपयोगकर्ता के ध्यान की आवश्यकता नहीं है। प्रत्येक Live Activity का एक स्पष्ट प्रारंभ और समाप्ति ट्रिगर होना चाहिए। बिना UI के पृष्ठभूमि अपडेट के लिए, Live Activities के बजाय Background Tasks का उपयोग करें।
अक्सर पूछे जाने वाले प्रश्न
Dynamic Island iPhone 14 Pro, 14 Pro Max और सभी iPhone 15 और iPhone 16 मॉडल (बेस वर्जन सहित) पर उपलब्ध है। डेवलपमेंट के लिए iOS 16.1+ और Xcode 14.1 आवश्यक है। पुराने मॉडल (iPhone X–13) पर स्थिर notch का उपयोग किया जाता है, जो Live Activities का समर्थन नहीं करता।
Dynamic Island सूचना को स्क्रीन के हार्डवेयर क्षेत्र में एकीकृत करता है, सामग्री को कवर किए बिना। सामान्य सूचना ऊपर एक बैनर के रूप में दिखाई देती है और कुछ सेकंड के बाद गायब हो जाती है। Dynamic Island पर Live Activities घंटों तक सक्रिय रह सकती हैं और वास्तविक समय में अपडेट हो सकती हैं (डिलीवरी स्थिति, टाइमर, संगीत)।
APNs के माध्यम से push अपडेट का उपयोग करें। Live Activity शुरू करते समय, activity.pushToken कॉल करें और अपने सर्वर को टोकन भेजें। सर्वर नए ContentState के साथ APNs के माध्यम से अपडेट अनुरोध भेजता है। वैकल्पिक रूप से, ऐप के भीतर से activity.update(using:) के माध्यम से स्थानीय अपडेट करें।
जब दो Live Activities सक्रिय होती हैं, तो iOS स्वचालित रूप से Dynamic Island को दो खंडों में विभाजित करता है। प्रत्येक गतिविधि कैमरे के बाईं और दाईं ओर न्यूनतम अवस्था में प्रदर्शित होती है। किसी एक खंड पर लॉन्ग प्रेस केवल उस ऐप के लिए विस्तारित अवस्था खोलता है।
जाँच करें: (1) ऐप में Info.plist में NSSupportsLiveActivities = YES है, (2) ActivityAttributes और ContentState Codable और Hashable को लागू करते हैं, (3) iOS संस्करण 16.1+ है, (4) डिवाइस Dynamic Island का समर्थन करता है। सिम्युलेटर के लिए, Xcode में iPhone 14 Pro या नए का उपयोग करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें