Kaydırma, parmağı ekran üzerinde kaydırma hareketidir ve mobil arayüzlerde ana etkileşim yöntemlerinden biri haline gelmiştir. Basit fotoğraf kaydırmadan e-posta silmeye kadar — kaydırma birçok düğmenin yerini almış ve kontrolü daha doğal hale getirmiştir. Apple Human Interface Guidelines (2024)'e göre, kaydırma jesti dokunmadan sonra en sık kullanılan ikinci jesttir ve mobil uygulamalardaki tüm etkileşimlerin %22'sini oluşturur.
Önemli noktalar
Kaydırma (swipe), kullanıcının parmağını ekran üzerinde belirli bir yönde kaydırarak bir eylem başlattığı bir jesttir. Dokunmanın (kısa dokunuş) aksine, kaydırma jest boyunca hareket ve ekranla temas içerir.
Kaydırmanın tarihi 2007'deki ilk iPhone ile başladı — “slide to unlock” jesti mobil arayüzlerin alametifarikası haline geldi. Bugün kaydırma, binlerce uygulamada gezinme, içerik yönetimi ve bilgi organizasyonu için kullanılmaktadır.
UX Planet (2025)'e göre, jest kontrolü (kaydırma dahil) olan uygulamalar %18 daha yüksek kullanıcı etkileşimi göstermektedir. Kaydırma, nesnelerin fiziksel hareketini taklit ettiği için bir düğmeye basmaktan daha doğal bir eylem olarak algılanır.
Ana parametreler bir jestin kaydırma olup olmadığını belirler: minimum mesafe (genellikle 30–50 piksel), düz çizgiden maksimum sapma (15–20 dereceden fazla değil) ve maksimum temas süresi (500 ms'ye kadar). Parmak ekranda daha uzun süre kalırsa, jest sürükleme veya uzun basma olarak sınıflandırılır.
Hareket yönüne göre, kaydırmalar dört ana türe ayrılır: sol, sağ, yukarı ve aşağı. Her türün kendi amacı ve kullanım bağlamı vardır.
| Kaydırma türü | Eylem | Kullanım örneği |
|---|---|---|
| Sol | Silme, arşivleme, gizleme | Mail'de e-posta silme, Tinder'da gizleme |
| Sağ | Onaylama, görüntüleme | Tinder'da beğeni, “Okundu” olarak işaretleme |
| Yukarı | Yenileme, kapatma | Çekerek yenileme, paneli kapatmak için kaydırma |
| Aşağı | Geri gitme, açma | iOS'ta geri dönmek için aşağı kaydırma, Bildirim Merkezi |
Yatay kaydırmalar (sol/sağ) çoğunlukla bireysel öğeleri yönetmek için kullanılır — silme, arşivleme, çevirme. Dikey kaydırmalar (yukarı/aşağı) — ekranlar arasında gezinme ve içeriği yenileme için. Material Design Guidelines (2024)'e göre, yatay kaydırma sağ elini kullananlar için daha rahattır: sağ elde başparmağı sola hareket ettirmek daha doğaldır.
İki ve üç parmakla kaydırmalar gelişmiş eylemler için kullanılır. İki parmak — iPad'de masaüstleri arasında geçiş, geri alma (üç parmakla kaydırma). Üç parmak — bazı cihazlarda ekran görüntüsü. Bununla birlikte, çok parmaklı jestler daha az sezgiseldir ve kullanıcının öğrenmesini gerektirir.
iOS'ta, jest işleme UIGestureRecognizer üzerine kuruludur — bir dizi dokunma olayını analiz eden ve belirli bir jestle eşleşip eşleşmediğini belirleyen soyut bir sınıf.
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("Sola kaydır")
}
}
UISwipeGestureRecognizer, yön (direction) ve parmak sayısı (numberOfTouchesRequired) yapılandırmasını destekler. Varsayılan olarak, bir parmak ve sağ yön gereklidir. Diğer yönleri tanımak için yönü açıkça belirtmeniz gerekir: .left, .up, .down.
Daha üst düzey bir API — UICollectionViewLayout, kaydırma eylemlerini destekler. iOS 11'den itibaren, tablolar ve koleksiyonlar UISwipeActionsConfiguration aracılığıyla yerleşik kaydırma eylemlerini destekler ve manuel jest işleme olmadan silme veya arşivleme düğmeleri eklemeye olanak tanır.
Android'de, kaydırma işleme GestureDetector üzerinden kurulur — MotionEvents'i analiz eden ve ilgili geri çağırma yöntemlerini çağıran bir sınıf.
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("Sağa kaydır")
}
return true
}
})
}
}
GestureDetector'daki onFling yöntemi, kullanıcı parmağını ekran üzerinde hızla kaydırdığında çağrılır. Başlangıç ve bitiş koordinatlarını (e1, e2) ve hareket hızını (velocityX, velocityY) alır. Yönü belirlemek için X veya Y eksenindeki koordinat farkı karşılaştırılır.
AndroidX kitaplığı daha kullanışlı bir API sağlar: çekerek yenileme için ViewCompat.setSwipeRefreshLayout, listelerde kaydırma eylemleri için RecyclerView ile ItemTouchHelper. ItemTouchHelper, görsel geri bildirim — simge, arka plan rengi ve animasyon ile kaydırma işlevselliği eklemeye olanak tanır.
Web geliştirmede, kaydırmaları işlemek için Touch Events API (touchstart, touchmove, touchend) olayları ve Hammer.js veya Swiper.js gibi sarmalayıcı kitaplıklar kullanılır.
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 ? "Sağa kaydır" : "Sola kaydır");
}
});
Touch Events API — tarayıcıda jestleri işlemenin yerel bir yoludur. touchstart olayı başlangıç koordinatlarını kaydeder, touchmove hareketi izler, touchend sonucu belirler. Eşik değeri (threshold) rastgele dokunuşları filtreler.
Can I Use (2026)'ye göre, Touch Events API tarayıcıların %98'i tarafından desteklenmektedir. Karmaşık jest senaryoları için (birden çok kaydırma, yön tanıma), düşük seviyeli işlemeyi soyutlayan ve net bir API sağlayan Hammer.js kitaplığının kullanılması önerilir.
Kaydırma ile başarılı UX kalıpları, mobil arayüzlerin yıllar süren evrimi boyunca oluşmuştur. Bunların kullanımı, kullanıcının ek bir öğrenme olmadan jestin nasıl çalıştığını anlamasını sağlar.
“Swipe to Delete” kalıbı en yaygın olanıdır. Liste öğesinde sola kaydırmak, bir silme düğmesini ortaya çıkarır. iOS (SwipeActionsConfiguration) ve Android'de (ItemTouchHelper) standartlaştırılmıştır. Kullanıcılar sola kaydırmanın bir öğeyi sileceğini veya arşivleyeceğini bekler.
“Swipe to Go Back” kalıbı — önceki ekrana dönmek için ekranın sol kenarından kaydırma. iPhone X'ten sonra iOS'ta standart haline gelmiştir. Android'de benzer gezinme sistem jesti aracılığıyla çalışır. Kendi uygulamalarınızda bu sistem jestiyle çakışmamak önemlidir.
“Pull to Refresh” kalıbı — içeriği yenilemek için aşağı kaydırma. Loren Brichter tarafından Tweetie (2008) için icat edilmiş, şimdi milyonlarca uygulamada kullanılmaktadır. Her iki platformun standart bileşenlerinde uygulanmıştır.
Sıkça sorulan sorular
Kaydırma parmağın hızlı hareketi ve ardından kaldırılmasıdır. Sürükleme sürekli temasla yavaş harekettir. Temel fark hızdadır: kaydırmada hız eşik değeri önemlidir, sürüklemede — yalnızca yer değiştirme koordinatları.
iOS ve Android yaklaşık 30–50 piksellik bir eşik kullanır. Web uygulamaları için 40–60 piksellik bir eşik önerilir. Daha küçük bir değer kaydırma sırasında yanlış tetiklemelere yol açar, daha büyük bir değer çok geniş hareketler gerektirir.
Yöne göre jest önceliğini belirleyin: yatay kaydırma dikey kaydırmayı engeller, dikey kaydırma yatay kaydırmayı engeller. iOS'ta, önceliği yönetmek için UIScrollViewDelegate yöntemi gestureRecognizerShouldBegin'i kullanın.
Standart kaydırmalar (silme, geri gitme) için öğrenme gerekmez — kullanıcılar bunları bilir. Benzersiz jestler (üç parmakla kaydırma, standart olmayan yön) için görsel gösterimle birlikte bir işe alıştırma gereklidir.
Her zaman kaydırma eylemlerini düğmelerle çoğaltın. Titreme olan kullanıcılar için eşiği 70–100 piksele ve zaman aşımını 800 ms'ye yükseltin. Mevcut kaydırma eylemlerini duyurmak için VoiceOver/TalkBack kullanın.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun