أعلنت آبل عن iPhone Duo، أول هاتف آيفون قابل للطي، في 9 سبتمبر 2026. يبدأ الحجز المسبق في 16 أكتوبر ويبدأ البيع الفعلي في 23 أكتوبر، بنظام iOS 27.1. والغريب هنا هو الترتيب الزمني: نشرت آبل القواعد التقنية في اليوم نفسه، بينما لن تصل حزمة SDK المزوّدة بمحاكي Duo إلا “لاحقاً في سبتمبر”. الوثائق موجودة والجهاز الفعلي شبه غائب، وهذه بالضبط هي النافذة الزمنية المثالية للبحث في تطبيقك عن افتراضات التخطيط التي توقفت عن الصحة دون أن تلاحظ.

هذا الدليل يتجاوز مراجعة الجهاز نفسه، فستجد المئات من تلك المراجعات في مكان آخر. الإشعار الفوري نفسه يرسمه النظام، فلا شيء يتغيّر فيه من جانبك. لكن كل ما يرسمه تطبيقك بنفسه هو الجزء الذي يجب أن يصمد الآن أمام شاشة تتغيّر أبعادها ونسبها أثناء استمرار الجلسة: الرسائل داخل التطبيق، الوسائط الغنية، شاشة تمهيد الإشعارات، وشاشات التحميل. هذا هو السطح الذي كتبت له آبل قواعد جديدة، وهو بالضبط ما توشك معظم الفرق على تجاهله والمرور بجانبه.

ماذا تغيّر فعلياً مع iOS 27 على آيفون قابل للطي؟

يحتوي iPhone Duo على شاشتين بنسب عرض إلى ارتفاع شبه متطابقة. الشاشة الداخلية بحجم 7.6 بوصة، أي أكبر بنسبة تقارب 50% من مساحة شاشة iPhone 18 Pro Max؛ أما الشاشة الخارجية فبحجم 5.4 بوصة، أي ما يقارب 90% من مساحة شاشة iPhone 18 Pro. النسب متقاربة لكنها ليست متطابقة، وهذا سبب إضافي لبناء التخطيط (Layout) اعتماداً على فئات الحجم (Size Classes) بدلاً من افتراض نسبة ثابتة تنطبق على الشاشتين معاً.

كل تطبيق يصبح جزءاً من العرض المنقسم (Split View). يُعد Duo أول آيفون يشغّل عدة نسخ من واجهة تطبيقك في آنٍ واحد، ما يعني أن رسائلك داخل التطبيق قد تنتهي في نصف الشاشة، بجانب تطبيق آخر مختلف تماماً.

والأهم أن شكل الشاشة يتغيّر أثناء الجلسة نفسها. قد يفتح المستخدم الجهاز بالكامل أو يطويه جزئياً بينما نافذتك المنبثقة (Modal) لا تزال ظاهرة على الشاشة. التخطيط لم يعد قراراً تتخذه مرة واحدة عند إطلاق الشاشة.

3 مستويات من التوافق، وأين تقع معظم التطبيقات

قاعدة آبل واضحة ومباشرة: تطبيقك سيعمل على Duo دون الحاجة لإعادة الترجمة (Recompiling). لكن المُعضلة تكمن في مقدار المساحة التي يحصل عليها تطبيقك على الشاشة، وهذا يعتمد على نسخة الـ SDK التي بنيت عليها تطبيقك.

  • نسخة SDK أقدم: يعمل التطبيق، لكن محتواه يبقى محصوراً داخل منطقة بحجم هاتف عادي.
  • SDK الخاص بـ iOS 27: تمتد واجهة تطبيقك إلى يسار منطقة شريط الحالة على الشاشة الداخلية.
  • SDK الخاص بـ iOS 27.1: تصل واجهة تطبيقك إلى حافة الشاشة، وتُرتَّب أزرار التنقل وشريط الأدوات القياسية عمودياً.

وهذا يعني أن أي فريق لا يحرّك ساكناً سينتهي به الأمر بعرض رسائله داخل التطبيق في صندوق بحجم هاتف عادي على شاشة مقاسها 7.6 بوصة. ليس عطلاً تقنياً، بل مجرد إهمال واضح للعين، بجانب منافسين كلّفوا أنفسهم عناء التكيّف.

لماذا يتوقف تخطيط رسائلك داخل التطبيق عن العمل؟

3 أسباب، وهي تتراكم فوق بعضها.

نسبة العرض إلى الارتفاع. معظم قوالب الرسائل داخل التطبيق والوسائط الغنية (Rich Media) صُممت وفق نسب آيفون عادي. نسب الشاشة الداخلية مختلفة، والقوالب المصممة للنسب القديمة لن تظهر في المكان الذي رسمتها فيه.

اتجاه الشاشة إشارة خاطئة. الشاشة الداخلية تُصنَّف كـ Regular في فئتي الحجم كلتيهما ولا تلتزم باتجاهات الواجهة المدعومة (Supported Interface Orientations). أي فرع في الكود يعتمد على اتجاه الشاشة يقرأ إشارة تتجاهلها الشاشة الداخلية أصلاً. توجيه آبل مباشر وواضح: حدّد التخطيط بناءً على فئات الحجم (Size Classes)، لا على الاتجاه.

المنطقة الآمنة غير متماثلة. الهوامش الداخلية (Insets) وهوامش التخطيط على Duo غالباً ما تختلف من جانب لآخر، لذا يجب معالجة كل حافة على حدة بدلاً من افتراض إطار متماثل. ثم اختبر ذلك في العرض المنقسم (Split View)، حيث يضيق الإطار من جديد.

الرسالة داخل التطبيق التي تكون ظاهرة لحظة فتح الهاتف

هذا هو السيناريو الذي يستحق التفكير فيه بعناية، لأنه لم يتسنَّ لأحد رؤيته فعلياً بعد عبر أي محاكي (Simulator): رسالة منبثقة داخل التطبيق ظاهرة على الشاشة، ويقوم المستخدم بفتح الهاتف. الإطار يتغيّر من تحت طبقة عرض (View) معروضة بالفعل.

تمنحك آبل أداتين هنا، والخلط بينهما هو الخطأ الأسهل وقوعاً.

واجهات برمجة المفصل (Hinge APIs) — أي onHingeChange في SwiftUI وUIHingeInteraction في UIKit — تُبلغ عن حالة منفصلة (مغلق، مفتوح جزئياً، مفتوح بالكامل) وزاوية مستمرة. الغرض منها المراقبة اللحظية وتشغيل التفاعلات والتأثيرات. حتى العرض التوضيحي الخاص بآبل يستخدم زاوية الطي لتغيير طبقة صوت آلة موسيقية افتراضية. هذا هو المجال المخصص لها، وليس تحريك أزرارك على الشاشة.

أما التخطيط (Layout) فيسلك باباً مختلفاً تماماً. توجّهك آبل إلى واجهات برمجة الترتيب والمناطق المحجوزة الواردة في جلسة “Strike a pose with adaptive layouts on iPhone Duo”، والتي تقدّم المناطق المحجوزة (Reserved Regions)، وعروض الترتيب (Arrangement Views) بتخطيطات منقسمة ومتراكبة، ومفهوم الإزاحة (Displacement): إعادة وضع العناصر الحالية داخل المساحة المتاحة فعلياً، بحيث يبقى المحتوى ظاهراً ويمكن الوصول إليه أثناء إغلاق الجهاز. يضيف iOS 27.1 كلاً من ReservedRegion في SwiftUI وUIViewReservedRegion في UIKit، بحيث تستطيع واجهتك المخصصة حجز المساحة التي تحتاجها دون التصادم مع واجهة النظام. يمكنك الاستعلام عنها عبر reservedRegions(kind:)، حيث تمثّل .division منطقة الطي نفسها، بينما تمثّل .occlusion منطقة الكاميرا.

بالنسبة للنافذة المنبثقة، هذا يختصر إلى قاعدة واحدة: لا تعتمد على زاوية المفصل لإعادة وضعها. دع النافذة تستجيب للترتيب والمنطقة المحجوزة، بحيث يستقر المحتوى في مكانه الصحيح عند فتح الشاشة، بدلاً من التشبث بإطار لم يعد موجوداً.

الإشعارات داخل التطبيق في العرض المنقسم (Split View)

بما أن جميع التطبيقات أصبحت جزءاً من بيئة تعدد المهام الآن، فقد تنتهي إشعاراتك داخل التطبيق في نصف الشاشة، بجانب تطبيق تابع لجهة أخرى تماماً. هذا إطار أضيق بكثير من الشاشة الداخلية الكاملة، وهو بالضبط سبب ضرورة الاختبار عند نصف العرض. النافذة المنبثقة التي تظهر بشكل جيد في وضع ملء الشاشة قد تُقتطع أطرافها أو تزدحم عناصرها عند فقدان نصف مساحتها.

وهناك أيضاً قيد صارم يجب معرفته: لا يمكن فتح نوافذ جديدة على الشاشة الخارجية، فهي مخصصة حصراً للتجربة الداخلية. أي منطق عرض يقوم بإنشاء نوافذ جديدة يجب أن يأخذ هذا القيد في الحسبان.

الشاشة الخارجية: تخطيطك المضغوط، بالإضافة إلى الودجت وLive Activities

الشاشة الخارجية تتصرف مثل أي شاشة آيفون عادية. تطبيقك يعمل عليها، وكل ما يرسمه على الشاشة يظهر هناك أيضاً، بما في ذلك الرسائل داخل التطبيق. تصف آبل الشاشة الخارجية بأنها تخطيط بعرض مضغوط (Compact Width)، تماماً مثل آيفون عادي، بينما الشاشة الداخلية تُصنَّف Regular في البعدين معاً. بحجم 5.4 بوصة، تُعد الشاشة الخارجية أضيق إطار كامل تحصل عليه رسائلك داخل التطبيق على هذا الجهاز، لذا يجب أن تكون ضمن مصفوفة الاختبار، لا في خانة “لا ينطبق”.

وهناك سطح ثانٍ يُضاف فوق ذلك. على Duo، يعمل وضع StandBy على أي من الشاشتين حتى عندما لا يكون الجهاز قيد الشحن: ضع الهاتف جانباً، وتبقى الشاشة الخارجية مضاءة وموجهة نحو الغرفة. أي تطبيق بلا ودجت وبلا Live Activity يكون ببساطة غائباً عن تلك اللحظة. الحضور هناك يأتي عبر ودجت أو Live Activity، وهو نفس العمل الذي يُفترض أنك أنجزته بالفعل من أجل شاشة القفل وDynamic Island. إذا كنت قد بنيت Live Activities من قبل، فهذا هو المكان الثاني الذي يُثمر فيه هذا الاستثمار. وإذا لم تفعل بعد، فها هو سبب إضافي لذلك.

👉🏻

مقالنا السابق عن Live Activities في iOS يغطي الأساسيات، بينما قاعدة مكافحة الإزعاج في iOS 27 توضح ما يُسمح لك بوضعه فيها.

قائمة تحقق من التوافق مع الآيفون القابل للطي قبل 23 أكتوبر

لا يمكنك لمس الجهاز فعلياً بعد، لكن كل ما عدا ذلك متاح أمامك الآن:

  • افحص قوالب رسائلك داخل التطبيق والوسائط الغنية. ابحث عن كل قالب يُثبّت إطاراً أو نسبة عرض إلى ارتفاع أو صندوقاً بحجم هاتف عادي بشكل صريح في الكود.
  • راجع تصاميمك بنسبة 16:9. أي تصميم مبني على نسبة عرض ثابتة يحتاج إلى خطة خاصة بالشاشة الداخلية.
  • ابحث عن فروع الكود المعتمدة على الاتجاه. أي تخطيط يعتمد على اتجاه الواجهة يقرأ إشارة تتجاهلها الشاشة الداخلية، لذا انقله إلى فئات الحجم (Size Classes).
  • تحقق من كل حافة من المنطقة الآمنة على حدة. افترض عدم التماثل؛ لا تفترض هامشاً متماثلاً.
  • ابحث في الكود عن UIScreen.main. على جهاز بشاشتين يصبح استخدامها غامضاً، وتقول آبل إنها ستُهمَل مستقبلاً. اقرأ الشاشة من window?.windowScene?.screen والمقياس من traitCollection.displayScale.
  • اختبر عند العرض المضغوط (Compact Width)، لا في وضع الفتح الكامل فقط. الشاشة الخارجية هي المكان الذي تحصل فيه رسائلك داخل التطبيق على أقل مساحة، وهي سطح حقيقي يجب التعامل معه.
  • جهّز اختبارك على Device Hub. عند إطلاق النسخة التجريبية من Xcode 27.1، سيكون محاكي Duo موجوداً داخل Device Hub: افتحه، أغلقه، أدرْه، واطوِه جزئياً مع وجود رسالة على الشاشة.
  • قسّم جمهورك حسب طراز الجهاز. جهّز طريقة لاستهداف مستخدمي Duo باختبارات منفصلة بمجرد وصول الجهاز إلى الأسواق.
  • راجع نصوص شاشة تمهيد الإشعارات الفورية والتعريف بالتطبيق. نافذة طلب الإذن التي يراها المستخدم أثناء التعريف بالتطبيق لا تزال مرسومة من قبل النظام، لكن أي شاشة مخصصة تسبقها تخضع لنفس قواعد التخطيط التي تخضع لها رسائلك داخل التطبيق.

لا شيء من ذلك يحتاج إلى الجهاز الفعلي. لكن كل ذلك يجب إنجازه قبل وصول الجهاز إلى أيدي مستخدميك، لا بعده.

أطلق رسائلك داخل التطبيق جاهزة لـ Duo

معالجة كل هذا يدوياً عبر الرسائل داخل التطبيق والوسائط الغنية وشاشات تمهيد الإشعارات، على كل شاشة يحملها مستخدموك، أمر أسهل بكثير عبر تكامل واحد بدلاً من ستة تكاملات منفصلة. هذا بالضبط ما تقدمه منصة تفاعل عملاء موحّدة وفعّالة من حيث التكلفة مثل Pushwoosh لإدارة الرسائل داخل التطبيق والإشعارات الفورية: ابدأ مجاناً أو تحدّث مع فريقنا لتجهيز رسائلك لتكون جاهزة لـ Duo قبل 23 أكتوبر.

جهّز رسائلك لتكون جاهزة لـ Duo
تحدّث مع فريقنا

Pushwoosh Team
Content Team في Pushwoosh
مشاركة

مقالات ذات صلة

عرض الكل