التمرير في التطبيقات المحمولة — أنواع الإيماءات والتنفيذ

المؤلف: IT Sectr نُشر: 2026-08-03 وقت القراءة: 7 دق

التمرير هو إيماءة تحريك الإصبع عبر الشاشة، والتي أصبحت إحدى الطرق الرئيسية للتفاعل في الواجهات المحمولة. من مجرد قلب الصور إلى حذف البريد الإلكتروني — لقد حل التمرير محل العديد من الأزرار وجعل التحكم أكثر طبيعية. وفقًا لـ Apple Human Interface Guidelines (2024)، إيماءة التمرير هي الثانية من حيث التكرار بعد النقر، حيث تشكل 22% من جميع التفاعلات في التطبيقات المحمولة.

الرئيسية

  • التمرير — إيماءة تحريك حيث يتحرك الإصبع عبر الشاشة في اتجاه معين
  • الاتجاهات — التمرير الأفقي (يسار/يمين) والعمودي (أعلى/أسفل)
  • السيناريوهات الرئيسية — الحذف، التنقل، تبديل علامات التبويب، السحب للتحديث
  • مدة الإيماءة — من 100 إلى 500 مللي ثانية، المدد الأطول تُعرف كسحب
  • التنفيذ — UIGestureRecognizer على iOS، GestureDetector على Android، أحداث اللمس في الويب

ما هو التمرير في الواجهات المحمولة

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

بدأ تاريخ التمرير مع أول iPhone في عام 2007 — أصبحت إيماءة «slide to unlock» السمة المميزة للواجهات المحمولة. اليوم، يُستخدم التمرير في آلاف التطبيقات للتنقل وإدارة المحتوى وتنظيم المعلومات.

وفقًا لـ UX Planet (2025)، فإن التطبيقات ذات التحكم بالإيماءات (بما في ذلك التمرير) تظهر تفاعل مستخدمين أعلى بنسبة 18%. يُنظر إلى التمرير كإجراء أكثر طبيعية مقارنة بالضغط على زر، لأنه يحاكي الحركة الفيزيائية للأشياء.

معايير التعرف على التمرير

المعايير الرئيسية التي تحدد ما إذا كانت الإيماءة تمريرًا هي: المسافة الدنيا (عادة 30–50 بكسل)، أقصى انحراف عن الخط المستقيم (لا يزيد عن 15–20 درجة)، وأقصى مدة للاتصال (حتى 500 مللي ثانية). إذا بقي الإصبع على الشاشة لفترة أطول، تُصنف الإيماءة كسحب أو ضغط طويل.

أنواع التمرير حسب الاتجاه

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

نوع التمريرالإجراءمثال الاستخدام
يسارحذف، أرشفة، إخفاءحذف البريد في Mail، الإخفاء في Tinder
يمينتأكيد، عرضإعجاب في Tinder، وضع علامة «مقروء»
أعلىتحديث، إغلاقالسحب للتحديث، التمرير لإغلاق الستارة
أسفلتنقل للخلف، فتحالتمرير لأسفل للعودة في iOS، مركز الإشعارات

التمريرات الأفقية (يسار/يمين) تُستخدم غالبًا لإدارة العناصر الفردية — الحذف، الأرشفة، التقليب. التمريرات العمودية (أعلى/أسفل) — للتنقل بين الشاشات وتحديث المحتوى. وفقًا لـ Material Design Guidelines (2024)، التمرير الأفقي أكثر راحة للأشخاص الذين يستخدمون اليد اليمنى: تحريك الإبهام لليسار أكثر طبيعية في اليد اليمنى.

التمرير بعدة أصابع

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

تنفيذ التمرير على iOS

على iOS، يتم بناء معالجة الإيماءات على UIGestureRecognizer — فئة مجردة تحلل تسلسل أحداث اللمس وتحدد ما إذا كانت تتطابق مع إيماءة معينة.

swift
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let swipeLeft = UISwipeGestureRecognizer(
            target: self,
            action: #selector(handleSwipe)
        )
        swipeLeft.direction = .left
        view.addGestureRecognizer(swipeLeft)
    }

    @objc func handleSwipe(sender: UISwipeGestureRecognizer) {
        print("التمرير لليسار")
    }
}

UISwipeGestureRecognizer يدعم تكوين الاتجاه (direction) وعدد الأصابع (numberOfTouchesRequired). افتراضيًا، يتطلب إصبعًا واحدًا واتجاهًا لليمين. للتعرف على الاتجاهات الأخرى، يجب تحديد الاتجاه صراحة: .left، .up، .down.

واجهة برمجة تطبيقات ذات مستوى أعلى — UICollectionViewLayout مع دعم إجراءات التمرير. منذ iOS 11، تدعم الجداول والمجموعات إجراءات التمرير المضمنة عبر UISwipeActionsConfiguration، مما يسمح بإضافة أزرار حذف أو أرشفة دون معالجة يدوية للإيماءات.

تنفيذ التمرير على Android

على Android، يتم بناء معالجة التمرير عبر GestureDetector — فئة تحلل MotionEvents وتستدعي طرق الاستدعاء المقابلة.

kotlin
class SwipeActivity : AppCompatActivity() {
    private val swipeThreshold = 100

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val gestureDetector = GestureDetector(this, object : GestureDetector.SimpleOnGestureListener() {
            override fun onFling(
                e1: MotionEvent, e2: MotionEvent,
                velocityX: Float, velocityY: Float
            ): Boolean {
                val dx = e2.x - e1.x
                if (dx > swipeThreshold) {
                    println("التمرير لليمين")
                }
                return true
            }
        })
    }
}

طريقة onFling في GestureDetector تُستدعى عندما يمرر المستخدم إصبعه بسرعة عبر الشاشة. تستقبل الإحداثيات الأولية والنهائية (e1، e2) وسرعة الحركة (velocityX، velocityY). لتحديد الاتجاه، يُقارن فرق الإحداثيات على المحور X أو Y.

مكتبة AndroidX توفر واجهة برمجة تطبيقات أكثر ملاءمة: ViewCompat.setSwipeRefreshLayout للسحب للتحديث، RecyclerView مع ItemTouchHelper لإجراءات التمرير في القوائم. يتيح ItemTouchHelper إضافة وظيفة التمرير مع ردود فعل بصرية — أيقونة ولون خلفية ورسوم متحركة.

التمرير في تطبيقات الويب

في تطوير الويب، تُستخدم أحداث Touch Events API (touchstart، touchmove، touchend) والمكتبات المغلفة مثل Hammer.js أو Swiper.js لمعالجة التمريرات.

js
let startX = 0;
let startY = 0;
const threshold = 50;

element.addEventListener("touchstart", (e) => {
    startX = e.touches[0].clientX;
    startY = e.touches[0].clientY;
});

element.addEventListener("touchend", (e) => {
    const dx = e.changedTouches[0].clientX - startX;
    const dy = e.changedTouches[0].clientY - startY;
    if (Math.abs(dx) > threshold) {
        console.log(dx > 0 ? "التمرير لليمين" : "التمرير لليسار");
    }
});

Touch Events API — طريقة أصلية لمعالجة الإيماءات في المتصفح. يسجل حدث touchstart الإحداثيات الأولية، ويتابع touchmove الحركة، ويحدد touchend النتيجة. قيمة العتبة (threshold) تصفي اللمسات العشوائية.

وفقًا لـ Can I Use (2026)، Touch Events API مدعوم من 98% من المتصفحات. للسيناريوهات المعقدة للإيماءات (تمريرات متعددة، التعرف على الاتجاه)، يُوصى باستخدام مكتبة Hammer.js، التي تُجرد المعالجة منخفضة المستوى وتوفر واجهة برمجة تطبيقات واضحة.

أنماط تجربة المستخدم مع التمرير

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

نمط «التمرير للحذف» هو الأكثر شيوعًا. التمرير لليسار على عنصر قائمة يكشف زر الحذف. موحد على iOS (SwipeActionsConfiguration) وAndroid (ItemTouchHelper). يتوقع المستخدمون أن التمرير لليسار يحذف أو يؤرشف العنصر.

نمط «التمرير للعودة» — التمرير من الحافة اليسرى للشاشة للعودة إلى الشاشة السابقة. أصبح معيارًا في iOS بعد iPhone X. على Android، يعمل التنقل المماثل عبر إيماءة النظام. من المهم عدم التعارض مع إيماءة النظام هذه في تطبيقاتك.

نمط «السحب للتحديث» — التمرير لأسفل لتحديث المحتوى. ابتكره Loren Brichter لتطبيق Tweetie (2008)، يُستخدم الآن في ملايين التطبيقات. مطبق في المكونات القياسية لكلا المنصتين.

  • ردود الفعل — يجب أن يتحرك العنصر مع الإصبع، مع إظهار النتيجة قبل اكتمال التمرير
  • تعارضات الإيماءات — تجنب الدعم المتزامن للتمرير الأفقي والتمرير العمودي على نفس العنصر
  • قابلية الاكتشاف — يجب أن تكون إجراءات التمرير الأولى مصحوبة بتلميح بصري
  • الإلغاء — يجب أن يكون المستخدم قادرًا على إلغاء التمرير بإعادة الإصبع إلى موضعه الأصلي

الأسئلة المتكررة

ما الفرق بين التمرير والسحب (drag)؟

التمرير — حركة سريعة للإصبع يتبعها رفع. السحب — حركة بطيئة مع اتصال مستمر. الفرق الرئيسي في السرعة: في التمرير، قيمة عتبة السرعة مهمة، في السحب — فقط إحداثيات الإزاحة.

ما هي المسافة الدنيا للتعرف على التمرير؟

iOS وAndroid يستخدمان عتبة حوالي 30–50 بكسل. لتطبيقات الويب، يُوصى بعتبة 40–60 بكسل. القيمة الأقل تؤدي إلى تنشيطات خاطئة أثناء التمرير، والقيمة الأكبر تتطلب حركات واسعة جدًا.

كيف نتجنب تعارض التمرير مع التمرير العمودي؟

حدد أولوية الإيماءة حسب الاتجاه: التمرير الأفقي يمنع التمرير العمودي، التمرير العمودي يمنع التمرير الأفقي. على iOS، استخدم طريقة UIScrollViewDelegate gestureRecognizerShouldBegin لإدارة الأولوية.

هل نحتاج لتعليم المستخدم التمرير؟

للـ تمريرات القياسية (حذف، عودة) لا حاجة للتعلم — المستخدمون يعرفونها. للإيماءات الفريدة (التمرير بثلاثة أصابع، اتجاه غير قياسي) يلزم تدريب أولي مع عرض توضيحي بصري.

كيف نجعل التمرير متاحًا للمستخدمين ذوي القدرات الحركية المحدودة؟

دائمًا كرر إجراءات التمرير بالأزرار. زد العتبة إلى 70–100 بكسل والمهلة إلى 800 مللي ثانية للمستخدمين الذين يعانون من الرعاش. استخدم VoiceOver/TalkBack للإعلان عن إجراءات التمرير المتاحة.

الخلاصة

  • التمرير — إيماءة تحريك الإصبع عبر الشاشة، الثانية من حيث الشعبية بعد النقر
  • الأنواع حسب الاتجاه — يسار (حذف)، يمين (تأكيد)، أعلى (تحديث)، أسفل (عودة)
  • التنفيذ على iOS — UISwipeGestureRecognizer، UISwipeActionsConfiguration للقوائم
  • التنفيذ على Android — GestureDetector.onFling، ItemTouchHelper لـ RecyclerView
  • التنفيذ على الويب — Touch Events API أو مكتبات Hammer.js، Swiper.js
  • أنماط تجربة المستخدم — التمرير للحذف، التمرير للعودة، السحب للتحديث — حلول مثبتة

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا