Scorrere nelle app mobili — tipi di gesti e implementazione

Autore: IT Sectr Pubblicato: 2026-08-03 Tempo di lettura: 7 min

Lo scorrimento è un gesto di scorrimento del dito sullo schermo, diventato uno dei principali modi di interazione nelle interfacce mobili. Dal semplice scorrimento delle foto all'eliminazione delle email — lo scorrimento ha sostituito molti pulsanti e reso il controllo più naturale. Secondo le Apple Human Interface Guidelines (2024), il gesto di scorrimento è il secondo più utilizzato dopo il tocco, rappresentando il 22% di tutte le interazioni nelle applicazioni mobili.

Punti chiave

  • Scorrere — gesto in cui il dito si muove sullo schermo in una direzione specifica
  • Direzioni — scorrimento orizzontale (sinistra/destra) e verticale (su/giù)
  • Scenari principali — eliminazione, navigazione, cambio schede, pull-to-refresh
  • Durata del gesto — da 100 a 500 ms, durate superiori vengono riconosciute come trascinamento
  • Implementazione — UIGestureRecognizer su iOS, GestureDetector su Android, eventi tattili sul web

Cos'è lo scorrimento nelle interfacce mobili

Scorrere (swipe) è un gesto in cui l'utente fa scorrere il dito sullo schermo in una direzione specifica, avviando un'azione. A differenza del tocco (tocco breve), lo scorrimento implica movimento e contatto con lo schermo per tutta la durata del gesto.

La storia dello scorrimento è iniziata con il primo iPhone nel 2007 — il gesto “slide to unlock” è diventato il marchio di fabbrica delle interfacce mobili. Oggi, lo scorrimento è utilizzato in migliaia di applicazioni per la navigazione, la gestione dei contenuti e l'organizzazione delle informazioni.

Secondo UX Planet (2025), le applicazioni con controllo gestuale (incluso lo scorrimento) mostrano un coinvolgimento degli utenti superiore del 18%. Lo scorrimento è percepito come un'azione più naturale rispetto alla pressione di un pulsante, poiché imita il movimento fisico degli oggetti.

Parametri di riconoscimento dello scorrimento

I parametri principali che determinano se un gesto è uno scorrimento sono: distanza minima (di solito 30–50 pixel), deviazione massima da una linea retta (non più di 15–20 gradi) e durata massima del contatto (fino a 500 ms). Se il dito rimane sullo schermo più a lungo, il gesto viene classificato come trascinamento o pressione prolungata.

Tipi di scorrimento per direzione

Per direzione del movimento, gli scorrimenti si dividono in quattro tipi principali: sinistra, destra, su e giù. Ogni tipo ha il proprio scopo e contesto d'uso.

Tipo di scorrimentoAzioneEsempio d'uso
SinistraEliminare, archiviare, nascondereEliminare email in Mail, nascondere in Tinder
DestraConfermare, vedereLike in Tinder, segnare come “Letto”
SuAggiornare, chiuderePull-to-refresh, scorrere per chiudere il pannello
GiùNavigare indietro, aprireScorrere verso il basso per tornare in iOS, Centro Notifiche

Gli scorrimenti orizzontali (sinistra/destra) sono più spesso utilizzati per gestire singoli elementi — eliminazione, archiviazione, sfogliatura. Gli scorrimenti verticali (su/giù) — per navigare tra schermate e aggiornare i contenuti. Secondo le Material Design Guidelines (2024), lo scorrimento orizzontale è più comodo per i destrimani: muovere il pollice a sinistra è più naturale con la mano destra.

Scorrimenti multi-dito

Gli scorrimenti con due e tre dita vengono utilizzati per azioni avanzate. Con due dita — passaggio tra desktop su iPad, annullamento (scorrimento con tre dita). Con tre dita — screenshot su alcuni dispositivi. Tuttavia, i gesti multi-dito sono meno intuitivi e richiedono apprendimento da parte dell'utente.

Implementazione dello scorrimento su iOS

Su iOS, la gestione dei gesti si basa su UIGestureRecognizer — una classe astratta che analizza una sequenza di eventi tattili e determina se corrispondono a un gesto specifico.

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("Scorrere a sinistra")
    }
}

UISwipeGestureRecognizer supporta la configurazione della direzione (direction) e del numero di dita (numberOfTouchesRequired). Per impostazione predefinita, sono richiesti un dito e la direzione destra. Per riconoscere altre direzioni, è necessario specificare esplicitamente la direzione: .left, .up, .down.

Un'API di livello superiore — UICollectionViewLayout con supporto per azioni di scorrimento. Da iOS 11, le tabelle e le collezioni supportano azioni di scorrimento integrate tramite UISwipeActionsConfiguration, consentendo di aggiungere pulsanti di eliminazione o archiviazione senza gestione manuale dei gesti.

Implementazione dello scorrimento su Android

Su Android, la gestione dello scorrimento è costruita tramite GestureDetector — una classe che analizza MotionEvents e chiama i metodi di callback corrispondenti.

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("Scorrere a destra")
                }
                return true
            }
        })
    }
}

Il metodo onFling in GestureDetector viene chiamato quando l'utente scorre rapidamente il dito sullo schermo. Riceve le coordinate iniziali e finali (e1, e2) e la velocità del movimento (velocityX, velocityY). Per determinare la direzione, viene confrontata la differenza delle coordinate sull'asse X o Y.

La libreria AndroidX fornisce un'API più comoda: ViewCompat.setSwipeRefreshLayout per pull-to-refresh, RecyclerView con ItemTouchHelper per azioni di scorrimento negli elenchi. ItemTouchHelper consente di aggiungere funzionalità di scorrimento con feedback visivo — icona, colore di sfondo e animazione.

Scorrimento nelle applicazioni web

Nello sviluppo web, per gestire gli scorrimenti vengono utilizzati gli eventi Touch Events API (touchstart, touchmove, touchend) e librerie wrapper come Hammer.js o 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 ? "Scorrere a destra" : "Scorrere a sinistra");
    }
});

Touch Events API — un modo nativo per gestire i gesti nel browser. L'evento touchstart registra le coordinate iniziali, touchmove traccia il movimento, touchend determina il risultato. Il valore di soglia (threshold) filtra i tocchi accidentali.

Secondo Can I Use (2026), Touch Events API è supportato dal 98% dei browser. Per scenari gestuali complessi (scorrimenti multipli, riconoscimento della direzione), si consiglia di utilizzare la libreria Hammer.js, che astrae la gestione di basso livello e fornisce un'API chiara.

Pattern UX con scorrimento

I pattern UX di successo con lo scorrimento si sono formati nel corso degli anni di evoluzione delle interfacce mobili. Il loro utilizzo garantisce che l'utente capisca come funziona il gesto senza ulteriore apprendimento.

Il pattern “Swipe to Delete” è il più comune. Scorrere verso sinistra su un elemento dell'elenco rivela un pulsante di eliminazione. Standardizzato su iOS (SwipeActionsConfiguration) e Android (ItemTouchHelper). Gli utenti si aspettano che scorrere a sinistra elimini o archivi un elemento.

Il pattern “Swipe to Go Back” — scorrere dal bordo sinistro dello schermo per tornare alla schermata precedente. È diventato uno standard su iOS dopo iPhone X. Su Android, una navigazione simile funziona tramite il gesto di sistema. È importante non entrare in conflitto con questo gesto di sistema nelle proprie applicazioni.

Il pattern “Pull to Refresh” — scorrere verso il basso per aggiornare i contenuti. Inventato da Loren Brichter per Tweetie (2008), ora utilizzato in milioni di applicazioni. Implementato nei componenti standard di entrambe le piattaforme.

  • Feedback — l'elemento dovrebbe muoversi con il dito, mostrando il risultato prima del completamento dello scorrimento
  • Conflitti di gesti — evitate di supportare contemporaneamente scorrimento orizzontale e scorrimento verticale sullo stesso elemento
  • Scopribilità — le prime azioni di scorrimento dovrebbero essere accompagnate da un suggerimento visivo
  • Annullamento — l'utente dovrebbe poter annullare lo scorrimento riportando il dito nella posizione originale

Domande frequenti

Qual è la differenza tra scorrere e trascinare (drag)?

Scorrere è un movimento rapido del dito seguito dal sollevamento. Trascinare è un movimento lento con contatto costante. La differenza principale è nella velocità: per lo scorrimento è importante il valore di soglia della velocità, per il trascinamento — solo le coordinate di spostamento.

Qual è la distanza minima per riconoscere uno scorrimento?

iOS e Android utilizzano una soglia di circa 30–50 pixel. Per le applicazioni web, si consiglia una soglia di 40–60 pixel. Un valore inferiore porta a falsi attivazioni durante lo scorrimento, uno maggiore richiede movimenti troppo ampi.

Come evitare il conflitto tra scorrimento e scroll?

Determinate la priorità del gesto in base alla direzione: lo scorrimento orizzontale blocca lo scroll verticale, lo scorrimento verticale blocca lo scroll orizzontale. Su iOS, utilizzate il metodo UIScrollViewDelegate gestureRecognizerShouldBegin per gestire la priorità.

È necessario insegnare all'utente a scorrere?

Per gli scorrimenti standard (eliminare, tornare indietro) non è richiesto apprendimento — gli utenti li conoscono già. Per gesti unici (scorrimento con tre dita, direzione non standard) è necessario un onboarding con dimostrazione visiva.

Come rendere lo scorrimento accessibile per utenti con capacità motorie limitate?

Duplicate sempre le azioni di scorrimento con pulsanti. Aumentate la soglia a 70–100 pixel e il timeout a 800 ms per utenti con tremori. Utilizzate VoiceOver/TalkBack per annunciare le azioni di scorrimento disponibili.

Riepilogo

  • Scorrere — gesto di far scorrere il dito sullo schermo, il secondo più popolare dopo il tocco
  • Tipi per direzione — sinistra (eliminare), destra (confermare), su (aggiornare), giù (tornare)
  • Implementazione su iOS — UISwipeGestureRecognizer, UISwipeActionsConfiguration per elenchi
  • Implementazione su Android — GestureDetector.onFling, ItemTouchHelper per RecyclerView
  • Implementazione sul web — Touch Events API o librerie Hammer.js, Swiper.js
  • Pattern UX — swipe to delete, swipe to go back, pull to refresh — soluzioni collaudate

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche