Swipe este un gest de glisare a degetului pe ecran, care a devenit unul dintre principalele moduri de interacțiune în interfețele mobile. De la simpla derulare a fotografiilor până la ștergerea e-mailurilor, swipe a înlocuit multe butoane și a făcut controlul mai natural. Potrivit Apple Human Interface Guidelines (2024), gestul de glisare este al doilea ca frecvență de utilizare după atingere, reprezentând 22% din toate interacțiunile în aplicațiile mobile.
Principalele puncte
Swipe este un gest în care utilizatorul glisează degetul pe ecran într-o direcție specifică, inițiind o acțiune. Spre deosebire de atingere (atingere scurtă), swipe implică mișcare și contact cu ecranul pe parcursul întregului gest.
Istoria swipe a început cu primul iPhone în 2007 — gestul de deblocare „slide to unlock” a devenit cartea de vizită a interfețelor mobile. Astăzi, swipe este folosit în mii de aplicații pentru navigare, gestionarea conținutului și organizarea informațiilor.
Potrivit UX Planet (2025), aplicațiile cu control gestual (inclusiv swipe) arată un angajament al utilizatorilor cu 18% mai mare. Swipe este perceput ca o acțiune mai naturală în comparație cu apăsarea unui buton, deoarece imită deplasarea fizică a obiectelor.
Parametrii principali care determină dacă un gest este swipe: distanța minimă (de obicei 30–50 pixeli), abaterea maximă de la linia dreaptă (nu mai mult de 15–20 de grade) și durata maximă de contact (până la 500 ms). Dacă degetul rămâne pe ecran mai mult, gestul este clasificat ca tragere (drag) sau apăsare lungă (long press).
După direcția de mișcare swipe-urile se împart în patru tipuri principale: stânga, dreapta, sus și jos. Fiecare tip are propria destinație și context de utilizare.
| Tip swipe | Acțiune | Exemplu de utilizare |
|---|---|---|
| Stânga | Ștergere, arhivare, ascundere | Ștergere e-mail în Mail, ascundere în Tinder |
| Dreapta | Confirmare, vizualizare | Like în Tinder, marcare „Citit” |
| Sus | Actualizare, închidere | Pull-to-refresh, swipe pentru a închide panoul |
| Jos | Navigare înapoi, deschidere | Swipe jos pentru a reveni în iOS, Notification Center |
Swipe-urile orizontale (stânga/dreapta) sunt cel mai des folosite pentru gestionarea elementelor individuale — ștergere, arhivare, derulare. Swipe-urile verticale (sus/jos) — pentru navigarea între ecrane și actualizarea conținutului. Potrivit Material Design Guidelines (2024), swipe-ul orizontal este mai comod pentru dreptaci: mișcarea la stânga cu degetul mare este mai naturală pe mâna dreaptă.
Swipe-urile cu două și trei degete sunt folosite pentru acțiuni avansate. Cu două degete — comutarea între birourile de lucru pe iPad, anularea acțiunii (three-finger swipe). Cu trei degete — captură de ecran pe unele dispozitive. Cu toate acestea, gesturile cu mai multe degete sunt mai puțin intuitive și necesită învățare din partea utilizatorului.
Pe iOS gestionarea gesturilor se bazează pe UIGestureRecognizer — o clasă abstractă care analizează secvența de evenimente tactile și determină dacă aceasta corespunde unui anumit gest.
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("Glisați la stânga")
}
}
UISwipeGestureRecognizer acceptă configurarea direcției (direction) și a numărului de degete (numberOfTouchesRequired). În mod implicit, este necesar un deget și direcția dreapta. Pentru a determina alte direcții, trebuie să specificați explicit direction: .left, .up, .down.
API de nivel superior — UICollectionViewLayout cu suport pentru acțiuni swipe. Începând cu iOS 11, tabelele și colecțiile acceptă acțiuni swipe încorporate prin UISwipeActionsConfiguration, permițând adăugarea butoanelor de ștergere sau arhivare fără gestionarea manuală a gesturilor.
Pe Android gestionarea swipe-urilor se face prin GestureDetector — o clasă care analizează MotionEvents și apelează metodele callback corespunzătoare.
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("Glisați la dreapta")
}
return true
}
})
}
}
Metoda onFling în GestureDetector este apelată atunci când utilizatorul glisează rapid degetul pe ecran. Aceasta primește coordonatele inițiale și finale (e1, e2) și viteza de mișcare (velocityX, velocityY). Pentru a determina direcția, se compară diferența de coordonate pe axa X sau Y.
Biblioteca AndroidX oferă un API mai convenabil: ViewCompat.setSwipeRefreshLayout pentru pull-to-refresh, RecyclerView cu ItemTouchHelper pentru acțiuni swipe în liste. ItemTouchHelper permite adăugarea funcționalității swipe cu feedback vizual — pictogramă, culoare de fundal și animație.
în dezvoltarea web pentru gestionarea swipe-urilor se folosesc evenimentele Touch Events API (touchstart, touchmove, touchend) și biblioteci ajutătoare precum Hammer.js sau Swiper.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 ? "Glisați la dreapta" : "Glisați la stânga");
}
});
Touch Events API — modul nativ de gestionare a gesturilor în browser. Evenimentul touchstart înregistrează coordonatele inițiale, touchmove urmărește mișcarea, touchend determină rezultatul. Valoarea de prag (threshold) filtrează atingerile accidentale.
Potrivit Can I Use (2026), Touch Events API este acceptat de 98% dintre browsere. Pentru scenarii complexe de gesturi (swipe-uri multiple, recunoașterea direcției) se recomandă utilizarea bibliotecii Hammer.js, care abstractizează procesarea de nivel scăzut și oferă un API clar.
Pattern-urile UX de succes cu swipe s-au format de-a lungul anilor de evoluție a interfețelor mobile. Utilizarea lor garantează că utilizatorul va înțelege cum funcționează gestul fără instruire suplimentară.
Pattern-ul „Swipe to Delete” — cel mai răspândit. Glisarea la stânga pe un element de listă deschide butonul de ștergere. Standardizat pe iOS (SwipeActionsConfiguration) și Android (ItemTouchHelper). Utilizatorii se așteaptă ca glisarea la stânga să șteargă sau să arhiveze elementul.
Pattern-ul „Swipe to Go Back” — glisarea de la marginea stângă a ecranului pentru a reveni la ecranul anterior. A devenit standard în iOS după iPhone X. Pe Android, navigarea similară funcționează printr-un gest de sistem. Este important să nu intrați în conflict cu acest gest de sistem în aplicațiile dvs.
Pattern-ul „Pull to Refresh” — glisarea în jos pentru actualizarea conținutului. Inventat de Loren Brichter pentru Tweetie (2008), acum folosit în milioane de aplicații. Implementat în componentele standard ale ambelor platforme.
Întrebări frecvente
Swipe — mișcare rapidă a degetului cu desprindere ulterioară. Drag — deplasare lentă cu contact constant. Diferența principală constă în viteză: la swipe, valoarea de prag velocity este importantă, la drag — doar coordonatele mișcării.
iOS și Android folosesc un prag de aproximativ 30–50 de pixeli. Pentru aplicații web, se recomandă un prag de 40–60 de pixeli. O valoare mai mică duce la activări false în timpul derulării, una mai mare — necesită mișcări prea largi.
Determinați prioritatea gestului în funcție de direcție: swipe-ul orizontal blochează derularea verticală, swipe-ul vertical blochează derularea orizontală. Pe iOS, utilizați metoda UIScrollViewDelegate gestureRecognizerShouldBegin pentru gestionarea priorității.
Pentru swipe-uri standard (ștergere, revenire) nu este necesară învățarea — utilizatorii le cunosc. Pentru gesturi unice (swipe cu trei degete, direcție non-standard) este necesară instruirea cu demonstrație vizuală.
Întotdeauna dublați acțiunile swipe cu butoane. Măriți pragul de activare la 70–100 de pixeli și timeout-ul la 800 ms pentru utilizatorii cu tremor. Folosiți VoiceOver/TalkBack pentru a anunța acțiunile swipe disponibile.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și