Dynamic Island iPhone 14 Pro اور نئے ماڈلز کے اوپری حصے میں ایک انٹرایکٹو علاقہ ہے، جو ہارڈویئر کیمرہ کٹ آؤٹ کو سافٹ ویئر اطلاعوں کے ساتھ ایک انٹرفیس عنصر میں یکجا کرتا ہے۔ Dynamic Island مواد کی قسم کے مطابق اپنی شکل اور سائز تبدیل کرتا ہے: کال، ٹائمر، موسیقی، Live Activity، AirPods کنکشن۔ ڈویلپر ActivityKit اور WidgetKit پر مبنی Dynamic Island API کے ذریعے تعامل کرتے ہیں۔ مزید معلومات کے لیے Dynamic Island HIG ملاحظہ کریں۔
اہم نکات
Dynamic Island iPhone 14 Pro، 15 Pro اور نئے ماڈلز کا ایک انٹرفیس عنصر ہے جو فرنٹ کیمرہ اور Face ID سینسرز کے ارد گرد کے علاقے کو اطلاعیں اور Live Activity دکھانے کے لیے استعمال کرتا ہے۔ پرانے notch کے برعکس، جو ایک جامد سیاہ عنصر تھا، Dynamic Island متحرک طور پر شکل اور سائز تبدیل کرتا ہے: ٹائمر دکھانے کے لیے پھیلتا ہے، منسلک AirPods کے آئیکن کے لیے سکڑتا ہے، کھیلوں کے اسکور کے لیے مستطیل میں بدل جاتا ہے۔
تکنیکی نفاذ Dynamic Island OLED اسکرین کے ہارڈویئر گولی نما کٹ آؤٹ اور اس کے ارد گرد سافٹ ویئر پکسل پروسیسنگ پر مبنی ہے۔ سسٹم Island علاقے میں پکسل ریفریش ریٹ کو 120 Hz تک بڑھاتا ہے اور مواد اور کیمرے کے سیاہ علاقے کے درمیان ہموار منتقلی کے لیے اینٹی الیاسنگ استعمال کرتا ہے۔ ڈویلپر Island کو براہ راست پروگرام نہیں کرتا — وہ ActivityKit کے ذریعے مواد تخلیق کرتا ہے اور سسٹم اسے کٹ آؤٹ کے ارد گرد خود بخود رکھتا ہے۔
صارف کا تاثر — Dynamic Island ہارڈویئر خرابی کو ایک فعال عنصر میں بدل دیتا ہے۔ Apple کی تحقیق کے مطابق، صارفین چند دنوں کے استعمال کے بعد Island کو اسکرین کا ایک فطری حصہ سمجھتے ہیں۔ ہائی لائٹنگ اور توجہ تبدیل کرنے والی اینیمیشنز — مثال کے طور پر، آنے والی اطلاع Island کو منتقل کرتی ہے اور 120 فریم فی سیکنڈ پر توسیعی اثر کے ساتھ مواد دکھاتی ہے۔
Dynamic Island مواد ڈسپلے کے تین موڈز کو سپورٹ کرتا ہے، جنہیں سسٹم سرگرمیوں کی قسم اور تعداد کی بنیاد پر خود بخود منتخب کرتا ہے۔ ڈویلپر WidgetBundle میں ہر موڈ کے لیے UI کی وضاحت کرتا ہے، لیکن یہ کنٹرول نہیں کرتا کہ اس وقت کون سا موڈ فعال ہے۔ سسٹم بیک وقت دو سرگرمیاں بھی دکھا سکتا ہے: ایک کٹ آؤٹ کے بائیں طرف، دوسری دائیں طرف۔
| موڈ | سائز | مواد | مثال |
|---|---|---|---|
| کمپیکٹ | ~50pt چوڑائی | آئیکن + مختصر متن | ٹائمر: گھڑی کا آئیکن + 05:00 |
| کم سے کم | ~22pt گول | صرف ایپ آئیکن | اسکرین شاٹ اطلاع |
| توسیع شدہ | ~300pt x 80pt | حسب ضرورت SwiftUI View | لوگو کے ساتھ کھیلوں کا اسکور |
موڈز کے درمیان منتقلی ease-in-out وکر کے ساتھ 0.4–0.6 سیکنڈ کے سسٹم اینیمیشن کے ساتھ انجام دی جاتی ہے۔ جب کوئی نئی Activity ظاہر ہوتی ہے، Island کمپیکٹ سے توسیع شدہ موڈ میں پھیلتا ہے۔ ختم ہونے پر، واپس سکڑ جاتا ہے۔ صارف بائیں سوائپ کرکے توسیع شدہ موڈ کو زبردستی بند کر سکتا ہے — Island کمپیکٹ یا کم سے کم موڈ میں چلا جاتا ہے۔ اگر تازہ کاری متوقع نہ ہو تو سسٹم 5 سیکنڈ کی غیرفعالیت کے بعد توسیع شدہ موڈ کو بھی بند کر دیتا ہے۔
دو سرگرمیاں — اگر دو ایپس میں فعال Live Activities ہیں، Dynamic Island انہیں کٹ آؤٹ کے دونوں اطراف دکھاتا ہے۔ بایاں حصہ پہلی شروع کردہ Activity ہے، دایاں حصہ دوسری ہے۔ اگر صرف ایک سرگرمی ہے، تو وہ بائیں جانب قبضہ کرتی ہے، دایاں خالی رہتا ہے۔ کسی بھی طرف تھپتھپانے سے Island پھیلتا ہے اور اس Activity کا مواد دکھاتا ہے۔ تصادم کی صورت میں سسٹم خود فیصلہ کرتا ہے کہ کس Activity کو ترجیح دینی ہے۔
Dynamic Island مواد خصوصی طور پر ActivityKit فریم ورک کے ساتھ Live Activity کے ذریعے تخلیق کیا جاتا ہے۔ ڈویلپر کوڈ میں چار علاقے متعین کرتا ہے: کمپیکٹ بائیں (compactLeading)، کمپیکٹ دائیں (compactTrailing)، کم سے کم (minimal) اور توسیع شدہ (expanded)۔ ہر علاقہ ایک SwiftUI View ہے جو context کے ذریعے Activity کی موجودہ حالت وصول کرتا ہے۔ اگر کوئی علاقہ متعین نہیں ہے، Island اس Activity کو متعلقہ موڈ میں نہیں دکھاتا۔
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")
}
}
}
Dynamic Island میں SwiftUI حدود — دستیاب اجزاء: Text، Image، HStack، VStack، ZStack، Spacer، ProgressView، Button (صرف Link کے ذریعے)، Gauge۔ ممنوع: ScrollView، List، TabView، اینیمیشنز، جیسچر ریکگنائزر۔ رنگ پیلیٹ — صرف System Colors (label، secondaryLabel، tint)۔ فونٹس — .caption سے .title3 تک سسٹم سائز۔ حسب ضرورت فونٹس اور SF Symbols صحیح طریقے سے کام کرتے ہیں۔
Dynamic Island کی جانچ — Xcode Dynamic Island سپورٹ والا سمیلیٹر فراہم کرتا ہے۔ ہدف ڈیوائس کے طور پر iPhone 14 Pro یا 15 Pro منتخب کریں۔ ActivityKit مختلف Island موڈز کی نقل کرتا ہے: Xcode Debug مینو میں Dynamic Island Mode بٹن کمپیکٹ، کم سے کم اور توسیع شدہ کے درمیان سوئچ کرتا ہے۔ بیک وقت متعدد Activities کی جانچ کے لیے، مختلف ActivityID والی اسکیمیں استعمال کریں یا ایپ کی دو مثالیں چلائیں۔
سسٹم واقعات — کالیں، AirPods، Face ID، چارجنگ اور دیگر — حسب ضرورت Live Activities پر ترجیح رکھتے ہیں۔ جب سسٹم کا واقعہ ہوتا ہے، Island حسب ضرورت مواد کی نمائش روک دیتا ہے اور سسٹم کا مواد دکھاتا ہے۔ سسٹم واقعہ ختم ہونے کے بعد، Island اینیمیشن کے ساتھ حسب ضرورت مواد پر واپس آتا ہے۔ ڈویلپر سسٹم واقعات کو منسوخ یا تبدیل نہیں کر سکتا — وہ iOS آپریٹنگ سسٹم کی سطح پر منظم ہوتے ہیں۔
| سسٹم واقعہ | ڈسپلے فارمیٹ | ترجیح |
|---|---|---|
| آنے والی کال | رابطہ نام کے ساتھ کم سے کم کارڈ | اعلی |
| AirPods | اینیمیشن + بیٹری چارج | درمیانی |
| Face ID | تالے کا آئیکن | درمیانی |
| چارجنگ | بجلی کا آئیکن + فیصد | کم |
| AirDrop | منتقلی کی پیشرفت | درمیانی |
| اسکرین شاٹ | شٹر اینیمیشن | کم |
آنے والی کال — سب سے اہم سسٹم واقعہ۔ Dynamic Island کالر کا نام کٹ آؤٹ کے بائیں جانب اور دورانیہ/حالت دائیں جانب دکھاتا ہے۔ فعال کال کے دوران، Island کوئی حسب ضرورت Live Activities نہیں دکھاتا۔ صارف کال اسکرین کھولنے کے لیے Island کو پھیلا سکتا ہے یا پس منظر میں فعال کال کے ساتھ ایپ میں کام جاری رکھنے کے لیے بند کر سکتا ہے۔
AirPods کنکشن — iPhone کے قریب کیس کھولنے پر، Dynamic Island کنکشن کو اینیمیٹ کرتا ہے اور ہر ایئربڈ اور کیس کا چارج دکھاتا ہے۔ اینیمیشن 2–3 سیکنڈ تک رہتی ہے، جس کے بعد Island اپنی پچھلی حالت میں واپس آجاتا ہے۔ اگر صارف کے پاس کوئی فعال Live Activities نہیں تھیں، Island خالی رہتا ہے۔ AirPods Pro 2 اسٹیم دبانے پر والیوم اور شور منسوخی کا موڈ بھی دکھاتا ہے۔
Dynamic Island بہترین طریقے Apple کی جانب سے معیاری صارف تجربہ یقینی بنانے کے لیے پیروی کرنے کی سفارش کی جاتی ہے۔ کمپیکٹ موڈ میں صرف انتہائی اہم معلومات ظاہر ہونی چاہیے — ایک آئیکن اور ایک نمبر یا مختصر لیبل۔ توسیع شدہ موڈ — بغیر کسی غیر ضروری عنصر کے صرف کلیدی معلومات۔ کمپیکٹ موڈ میں 20 حروف سے زیادہ متن رکھنے سے گریز کریں — سسٹم متن کو بیضوی نشان سے کاٹ دیتا ہے۔
Dynamic Island کے لیے پش اپ ڈیٹس — نایاب اپ ڈیٹس (آرڈر کی حیثیت، کھیلوں کے نتائج) کے لیے ActivityKit push اور کثرت والے ٹائمر یا اسٹاپ واچ کے لیے مقامی اپ ڈیٹس استعمال کریں۔ پش اطلاعیں APNs سے گزرتی ہیں اور Island میں ظاہر ہونے میں 0.5–2 سیکنڈ لگتی ہیں۔ StaleDate — مواد کی میعاد ختم ہونے کی تاریخ مقرر کریں: اگر اپ ڈیٹ وقت پر نہیں آتی، سسٹم مواد کے بجائے سرمئی پس منظر دکھاتا ہے، صارف کو پرانے ڈیٹا کا اشارہ دیتا ہے۔
func updateDelivery(activity: Activity<DeliveryAttributes>) {
Task {
let newContent = ActivityContent(
state: DeliveryAttributes.ContentState(
status: .delivered,
estimatedMinutes: 0
),
staleDate: Date().addingTimeInterval(300)
)
await activity.update(newContent)
// 2 سیکنڈ میں Activity ختم کر رہے ہیں
try? await Task.sleep(nanoseconds: 2_000_000_000)
await activity.end(newContent)
}
}
توانائی کی کھپت — Dynamic Island اور Live Activities کا OLED ڈسپلے ہارڈویئر آپٹیمائزیشن کی بدولت بیٹری پر کم سے کم اثر پڑتا ہے۔ کٹ آؤٹ کے ارد گرد سیاہ پکسلز بند ہیں اور مواد ایک سرشار کوپروسیسر پر رینڈر ہوتا ہے۔ ہر 5 منٹ میں اپ ڈیٹ کرنے پر اوسط Live Activity کھپت فی گھنٹہ 1% بیٹری سے کم ہے۔ کم بیٹری (20% سے نیچے) یا پاور سیونگ موڈ میں سسٹم خود بخود Island کو روک دیتا ہے۔
Dynamic Island کے لیے ڈیزائن کو مرکزی ایپ UI کے موافقت کی ضرورت نہیں ہے — Island فعال اسکرین سے آزادانہ طور پر کام کرتا ہے۔ Live Activity کے رنگ سسٹم Color Assets کے ذریعے سسٹم تھیم (ہلکا/گہرا) سے مماثل ہونے چاہئیں۔ SF Symbols حسب ضرورت آئیکنز پر ترجیح دی جاتی ہے — وہ کسی بھی Island موڈ میں درست طریقے سے ظاہر ہونے کی ضمانت رکھتے ہیں اور ان میں بلٹ ان Dynamic Type سپورٹ ہے۔
اکثر پوچھے گئے سوالات
Dynamic Island صرف iPhone 14 Pro، 14 Pro Max، 15 Pro، 15 Pro Max اور نئے ماڈلز پر iOS 16.1+ کے ساتھ دستیاب ہے۔ نوچ والے پرانے iPhone پر Dynamic Island ظاہر نہیں ہوتا — Live Activity لاک اسکرین پر ایک عام بینر کے طور پر نظر آتی ہے۔ ڈویلپر کو مختلف کوڈ لکھنے کی ضرورت نہیں: سسٹم خود ڈیوائس کی صلاحیتوں کے مطابق انٹرفیس کو ڈھال لیتا ہے۔
Dynamic Island بیک وقت دو سرگرمیاں دکھانے کی حمایت کرتا ہے — وہ کیمرہ کٹ آؤٹ کے بائیں اور دائیں طرف رکھی جاتی ہیں۔ اگر صرف ایک سرگرمی ہے، تو وہ بائیں جانب قبضہ کرتی ہے اور دایاں کمپیکٹ حالت میں رہتا ہے۔ کسی بھی طرف تھپتھپانے سے Island پھیلتا ہے اور متعلقہ Activity کا مواد دکھاتا ہے۔
Dynamic Island میں سسٹم واقعات: کم سے کم کارڈ اور رابطہ نام کے ساتھ آنے والی کال، اینیمیشن اور بیٹری چارج کے ساتھ AirPods کنکشن، تالے کے آئیکن کے ساتھ Face ID، فیصد کے ساتھ ڈیوائس چارجنگ، موڈیم موڈ، والیوم تبدیلی، خاموش موڈ ایکٹیویشن، منتقلی کی پیشرفت کے ساتھ AirDrop اور شٹر اینیمیشن کے ساتھ اسکرین شاٹ۔
Dynamic Island کو علیحدہ API کی ضرورت نہیں — یہ WidgetKit کے ساتھ ActivityKit کے ذریعے تخلیق کردہ Live Activities دکھاتا ہے۔ ایپ DynamicIsland کنفیگریشن کے ساتھ Activity رجسٹر کرتی ہے، کمپیکٹ، کم سے کم اور توسیع شدہ SwiftUI Views متعین کرتی ہے۔ سسٹم اسے معاون ڈیوائسز پر Dynamic Island میں خود بخود دکھاتا ہے۔
Dynamic Island تین بصری حالتوں تک محدود ہے جن کے مختلف سائز ہیں: کمپیکٹ 50pt تک، کم سے کم 22pt تک، توسیع شدہ 300pt تک۔ کمپیکٹ موڈ میں 20 حروف سے زیادہ متن رکھنے کی سفارش نہیں کی جاتی۔ صرف سسٹم SwiftUI اجزاء دستیاب ہیں — Text، Image، ProgressView، Gauge۔ حسب ضرورت فونٹس اور رنگ سسٹم پیلیٹ تک محدود ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں