EduFlow

الوحدة 4 · من الـ Prototype إلى التسليم

الـ Prototype: التفاعلات وSmart animate والـ Overlays

18 دقراءة 4 داختر بحكمة

الدرس في لمحة

اصنع prototype لمسار تسجيل العادة في Steady بالـ triggers والـ actions والحركات، واجعل زر التعليم interactive component، وافتح لوحة New habit كـ overlay، واستخدم Smart animate بشكل صحيح.

  1. 1التفاعلات: trigger وaction وحركة
  2. 2الـ Interactive components: زر التعليم
  3. 3الـ Overlays: لوحة New habit
  4. 4الـ Smart animate: مطابقة الطبقات
  5. 5العرض والتمرير

لا فيديو هنا، بل الشيء الحقيقي: درس مكتوب وأمثلة قابلة للتشغيل واختبار وتدريب.

النموذج الثابت يُظهر شكل Steady. أما الـ prototype (النموذج التفاعلي) فيُظهر إحساسه: هل يعطي النقر على زر التعليم استجابة مُرضية، وهل تأتي لوحة New habit من حيث يتوقّع الناس، وهل يستطيع أحدهم إيجاد طريق العودة؟ اختبار هذه الأسئلة بـ prototype يكلّف بضع ساعات. واختبارها بعد التطوير يكلّف sprint كاملًا.

التفاعلات: trigger وaction وحركة

بدّل الشريط الجانبي الأيمن إلى تبويب Prototype. حدّد طبقة، واسحب مقبض الوصلة الذي يظهر إلى frame وجهة، فتكون قد أنشأت تفاعلًا (interaction). لكل تفاعل ثلاثة أجزاء.

الـ trigger هو ما يفعله الشخص. وقت كتابة هذا الدرس، تشمل الـ triggers ‏On click/On tap وOn drag وWhile hovering وWhile pressing وKey/Gamepad وMouse enter وMouse leave وMouse down وMouse up وAfter delay. في تطبيق الهاتف تستخدم غالبًا On tap، إضافة إلى On drag لإيماءات السحب.

الـ action هو ما يحدث. أشيعها Navigate to إلى frame آخر، وBack، وChange to إلى variant آخر من component، وOpen overlay، وSwap overlay، وClose overlay، وScroll to. والـ prototypes المتقدّمة يمكنها أيضًا ضبط variables واستخدام الشروط، وهذا يعتمد على الخطة.

الـ animation هي طريقة الحركة: Instant، أو Dissolve، أو Smart animate، أو الحركات الاتّجاهية مثل Move in وPush وSlide in، ولكلٍّ منها easing ومدّة. في Steady، الأقصر والأهدأ هو الأفضل: Smart animate أو Push، مع Ease out، لمدّة بين 250 و300 ms أو نحو ذلك.

هذا مسار تسجيل العادة الذي ستبنيه:

شاشة Today هي نقطة البداية. النقر على زر التعليم يغيّر الصف إلى Done داخل الـ component. والنقر على زر الإضافة يفتح لوحة New habit كـ overlay، وSave يغلقها. والنقر على صف ينتقل إلى Habit detail، وBack يعيد إلى Today. Today نقطة بداية المسار الصف: Done Change to (في الـ component) لوحة New habit Open overlay Habit detail نقر الصف: Push Back Save: ‏Close overlay
مسار الـ prototype لتسجيل العادة في Steady

الـ Interactive components: زر التعليم

يمكنك رسم وصلة من كل زر تعليم إلى نسخة من الشاشة يكون فيها ذلك الصف معلَّمًا. مع خمس عادات، هذه 32 تركيبة من الشاشات. بدلًا من ذلك، افتح الـ component set الخاص بـ Check button وأضف التفاعل بين الـ variants الخاصة به: على الـ variant ‏To do، ‏On tap، ثم Change to ‏Done، مع Smart animate لمدّة 200 ms. وأضف العكس على Done.

الآن كل instance من زر التعليم، في كل شاشة، تتبدّل وحدها حين تُنقر في الـ prototype. هذا interactive component، ولهذا تؤتي الـ variants المتقنة من الدرس 3.2 ثمارها مرّتين.

الـ Overlays: لوحة New habit

زر الإضافة يفتح لوحة New habit، التي تنزلق إلى الأعلى فوق Today بدل أن تحلّ محلّها. صِل زر الإضافة بـ frame اللوحة باستخدام Open overlay. في إعدادات الـ overlay، اختر موضعًا أسفل المنتصف، وفعّل الإغلاق عند النقر خارجها، وأضف خلفية خلف الـ overlay (لون داكن بشفافية نحو 40% يعتّم الشاشة). واستخدم حركة Move in من الأسفل.

إعدادات الـ overlay تخصّ frame الـ overlay، لا الوصلة، فتعيد استخدامها كل الأزرار التي تفتح اللوحة. وداخل اللوحة، صِل Save habit وCancel بـ Close overlay.

الـ Smart animate: مطابقة الطبقات

ينظر الـ Smart animate إلى frame-ين، ويجد الطبقات المتطابقة، ويحرّك الاختلافات. تتطابق الطبقة حين يكون لها الاسم نفسه وتقع في الموضع نفسه من شجرة الطبقات في الـ frame-ين. ويمكنه تحريك الموضع والحجم والدوران والشفافية والتعبئة.

لاحتفال الـ streak في Habit detail، كرّر الـ frame (التكرار يُبقي الأسماء متطابقة)، ثم في الـ frame الثاني كبّر رقم الـ streak وأظهر تدريجيًا شارة “New best!”. صِل بينهما بـ Smart animate، مع Ease out، لمدّة 300 ms.

العرض والتمرير

اجعل Today نقطة بداية للمسار (flow starting point) واضغط زر التشغيل لتعرض الـ prototype. في قائمة طويلة، اضبط frame المحتوى على التمرير العمودي وأبقِ شريط التبويبات ثابتًا في مكانه، وكلاهما من تبويب Prototype وقت كتابة هذا الدرس. اختبر على هاتف حقيقي بتطبيق Figma للجوّال؛ فحركة مدّتها 300 ms تبدو بطيئة على الشاشة الكبيرة كثيرًا ما تبدو مناسبة في اليد.

في الدرس التالي تتأكّد من أن الشاشات التي حرّكتها للتوّ تعمل للجميع، بمن فيهم من لا يرون التركوازي، ومن لا يستطيعون النقر على أهداف صغيرة، ومن يستخدمون قارئ الشاشة (screen reader).

أهم النقاط

  • كل تفاعل في الـ prototype هو trigger (مثل On tap) مع action (مثل Navigate to أو Open overlay) مع حركة (animation).
  • الـ Interactive components تضع التفاعلات بين الـ variants داخل الـ component نفسه، فتتبدّل كل instance من زر التعليم وحدها.
  • الـ Overlays تعرض محتوى مثل اللوحة السفلية فوق الشاشة الحالية، مع إعدادات للموضع والإغلاق عند النقر خارجها والخلفية.
  • الـ Smart animate يطابق الطبقات بالاسم والموضع في شجرة الطبقات، ثم يحرّك الموضع والحجم والدوران والشفافية والتعبئة بينها.
  • اصنع prototype للّحظات التي تحتاج إلى اختبارها أو شرحها، لا لكل شاشة، وأبقِ كل مسار قصيرًا بما يكفي لإنهائه في دقيقة.

قراءات إضافية

تحقّق من فهمك

3 أسئلة

السؤال 1 من 3

تريد أن يتبدّل زر التعليم في كل صف عادة بين To do وDone في الـ prototype، في كل شاشة. ما الإعداد الأكفأ؟

السؤال 2 من 3

يجب أن تنزلق لوحة New habit من الأسفل فوق شاشة Today وأن تُغلق حين ينقر أحدهم على المنطقة المعتمة. أيّ إعداد يناسب؟

السؤال 3 من 3

في الـ frame الأول شارة الـ streak مخفية بأيقونة العين. وفي الثاني ظاهرة. الـ Smart animate يجعلها تظهر فجأة بدل أن تظهر تدريجيًا. ما الإصلاح؟

تدريب

اختر بحكمة

لماذا يقفز الصف بدل أن ينزلق؟

حين تُعلَّم عادة، يجب أن ينزلق صفّها في Steady إلى الأسفل داخل مجموعة Done. لكن الـ prototype يقفز مباشرة من Frame A إلى Frame B. هذان هما الـ frame-ان، والوصلة، ومسار طبقة صف Read في كلٍّ منهما.

:::figure frame-ان يجب أن يتحرّك بينهما Smart animate

‏Frame A يعرض قائمة العادات وصف Read في أعلاها تحت To do. ‏Frame B يعرض صف Read وقد نزل إلى مجموعة Done منفصلة. سهم عليه On tap وInstant يصل بينهما. وأسماء الطبقات معروضة تحت كل frame. Frame A Read Water Frame B Water Read On tap Instant List / Read row List / Done group / Habit row/Read :::

اختر كل سبب يمنع الصف من الانزلاق.

لماذا يقفز الصف بدل أن ينزلق؟