Mobil geliştirmede kaydırma: nedir, kaydırma teknikleri ve uygulama

Yazar: IT Sectr Yayınlanma: 2026-08-03 Okuma süresi: 9 dk

Kaydırma, kullanıcının mobil cihaz ekranının dışında kalan bilgileri görüntülemesine olanak tanıyan bir içerik kaydırma mekanizmasıdır. Apple Developer Documentation, 2024’e göre UIScrollView, iOS’ta kaydırmayı uygulamak için temel öğedir. Android’de RecyclerView benzer bir rol üstlenir, jestleri işler ve veri görüntülemesini yönetir. Kaydırma olmadan modern mobil arayüzler imkansız olurdu — haber akışları, kişi listeleri ve metin sayfaları her saniye onu kullanır.

Kilit Noktalar

  • Kaydırma, ekran boyutunu aşan içeriği dikey veya yatay olarak kaydırma mekanizmasıdır.
  • Platform bileşenleri — iOS’ta UIScrollView, Android’de RecyclerView ve ScrollView kullanılır.
  • Jestler — kaydırma, işletim sisteminin jest tanıma sistemi aracılığıyla dokunma, kaydırma ve ataleti işler.
  • Performans — büyük listelerin akıcı kaydırılması için öğe sanallaştırması ve hücre yeniden kullanımı kritik öneme sahiptir.
  • Erişilebilirlik — kaydırma, ekran okuyucularla düzgün çalışması için VoiceOver ve TalkBack’i desteklemelidir.

Mobil uygulamalarda kaydırma nedir?

Kaydırma, mobil cihazın görüntü alanı içinde içeriğin görünür alanını hareket ettiren etkileşimli bir mekanizmadır. Kullanıcı parmağını ekranda kaydırır ve içerik jest yönünde hareket ederek arayüzün gizli kısımlarını ortaya çıkarır. Kaydırma temel bir etkileşim modelidir: Nielsen Norman Group (2023) araştırmasına göre, mobil uygulamalarda kullanıcılar zamanın %78’ini içerik kaydırarak geçirir.

Mobil geliştirmede kaydırma, özelleşmiş bileşenler aracılığıyla uygulanır — iOS’ta ScrollView ve Android’de RecyclerView. Bu bileşenler yalnızca dokunmayı işlemekle kalmaz, aynı zamanda öğe yeniden kullanımını, animasyonu ve ataleti de yönetir. Geliştiricinin yalnızca alt görünümleri kapsayıcının içine yerleştirmesi yeterlidir, kaydırma mekaniğinin tamamı platform tarafından halledilir.

Google I/O 2024’e göre modern kaydırma uygulamaları jest kompozisyonu kullanır: sistem kaydırma yönünü, hızını ve parmağın ivmesini belirler, ardından yumuşak yavaşlama için fiziksel bir model uygular. Kaydırma ataleti, platformlar arasında farklılık gösteren bir sürtünme katsayısına göre hesaplanır — iOS Quadratic easing kullanır, Android Spline tabanlı enterpolasyon kullanır.

Mobil geliştirmede kaydırma türleri

Dikey kaydırma en yaygın kaydırma türüdür ve haber akışlarında, sohbet listelerinde ve profillerde kullanılır. Tüm içerik yukarıdan aşağıya düzenlenir ve kullanıcı gezinmek için yukarı veya aşağı kaydırır. Dikey kaydırma sezgiseldir ve varsayılan olarak tüm mobil platformlarda desteklenir.

Yatay kaydırma atlı karuseller, görsel galerileri ve kategori sekmeleri için kullanılır. iOS’ta yatay düzene sahip UICollectionView kullanılır; Android’de HorizontalScrollView veya LinearLayoutManager.HORIZONTAL ile RecyclerView kullanılır. Yatay kaydırma dikkatli kullanım gerektirir çünkü sistemin “geri” jestleri ve uygulama değiştirme ile çatışır.

Sonsuz kaydırma, kullanıcı bir listenin sonuna yaklaştıkça veri yükleme tekniğidir. Son öğe görüntülendiğinde, uygulama otomatik olarak sunucudan bir sonraki veri yükünü ister. UX Collective (2025)’e göre Sonsuz Kaydırma, içerik uygulamaları için etkileşimi %40 artırır ancak alt bilgiye gitme zorluğu nedeniyle e-ticaret için dönüşümü azaltır.

Paralaks kaydırma derinlik etkisi yaratır: kaydırma sırasında arka plan katmanı ön plandan daha yavaş hareket eder. Bu teknik genellikle açılış sayfalarında ve profillerde görsel etki için kullanılır. Uygulama, farklı hız katsayılarına sahip birden çok katmanın üst üste bindirilmesini gerektirir — iOS’ta bu, UIScrollViewDelegate aracılığıyla ve arka plan görünümlerinin ofsetinin değiştirilmesiyle yapılır.

iOS ve Android’de kaydırma nasıl çalışır

iOS’ta kaydırma, UITableView, UICollectionView ve UITextView tarafından miras alınan UIScrollView sınıfı aracılığıyla uygulanır. UIScrollView dokunmaları keser, dokunma desenini analiz eder ve hareket deltasını hesaplar. Kullanıcı keskin bir hareket yaparsa, sistem bir atalet animasyonu başlatır — yavaşlama, şu formülle hesaplanır: velocity * decayFactor ^ t. WWDC 2023’e göre Apple, 0,998 faktörüyle parametrik yavaşlama kullanır ve bu da doğal bir sürtünme hissi verir.

Android’de kaydırma, ViewDragHelper ve OverScroller aracılığıyla yönetilir. Sistem bir MotionEvent.ACTION_MOVE olayı alır, ofseti hesaplar ve scrollY veya scrollX’e uygular. Atalet, ayarlanabilir sürtünmeli fiziksel modele dayalı Spline enterpolasyonu kullanan OverScroller sınıfı tarafından hesaplanır. Varsayılan sürtünme katsayısı 0,015’tir — değer ne kadar yüksekse, kaydırma o kadar hızlı durur.

Platformlar arasındaki temel fark sekme efektidir. iOS, varsayılan olarak içerik sınırlarının ötesine kaydırırken lastik bant deformasyonu (sekme) ekler ve kullanıcıya sona ulaşıldığını bildirir. Android, sürüm 12’den önce aşırı kaydırma efektinin açıkça etkinleştirilmesini gerektiriyordu ve Material Design 3 ile germe-aşırı kaydırma için yerel destek aldı. Her iki platform ayrıca kaydırma zincirleme işlemede de farklılık gösterir — sınıra ulaşıldığında iç içe geçmiş kapsayıcıdan üst kapsayıcıya kaydırma aktarımı.

ScrollView, RecyclerView ve UICollectionView: karşılaştırma

BileşenPlatformKaydırma TürüSanallaştırmaDüzen
UIScrollViewiOSDikey / YatayHayırContent size
UICollectionViewiOSDikey / YatayEvetUICollectionViewLayout
RecyclerViewAndroidDikey / YatayEvetLayoutManager
ScrollView (Android)AndroidDikeyHayırLinearLayout
HorizontalScrollViewAndroidYatayHayırLinearLayout

UIScrollView, iOS’ta hücre yeniden kullanımını desteklemeyen temel bir kapsayıcıdır. 1000 görünüm eklendiğinde, tümü bellekte oluşturulur ve bu performans için kritiktir. UICollectionView, kuyruktan çıkarma mekanizması aracılığıyla bu sorunu çözer — görünür hücreler yeniden kullanılır ve gizli olanlar hiyerarşiden kaldırılır. Apple Engineering (2023)’e göre Compositional Layout ile UICollectionView, UIScrollView’e kıyasla büyük veri kümeleriyle çalışırken %50’ye kadar daha akıcı FPS sağlar.

RecyclerView, öğe yeniden kullanımı için ViewHolder desenini kullanan Android’deki standart kaydırma bileşenidir. RecyclerView esnek bir mimariye sahiptir: LayoutManager düzenlemeyi (Linear, Grid, Staggered) belirler, ItemAnimator animasyonları yönetir ve ItemDecoration boşluk ve ayırıcılar ekler. Android Developer Summit 2024’e göre DiffUtil ile RecyclerView, 10.000 öğelik liste güncellemelerini 16 ms’de işleyebilir — tek bir animasyon karesi içinde.

Kaydırma performansı optimizasyonu

Kaydırma pürüzsüzlüğü FPS (saniyedeki kare sayısı) ile ölçülür — normal ekranlar için hedef 60 FPS ve ProMotion için 120 FPS’dir. Her kare 16 ms (60 FPS) veya 8 ms (120 FPS) içinde işlenmelidir. Kaydırma takılma (kare düşmesi) yaparsa, kullanıcı uygulama kalitesi algısını olumsuz etkileyen mikro gecikmeler yaşar. Google Android Performance (2024)’e göre, kullanıcıların %75’i düzenli kaydırma gecikmesi yaşadığında uygulamayı siler.

Kaydırma gecikmesinin ana nedenleri düzen sarsıntısı ve aşırı ayırmalardır. Düzen sarsıntısı, geliştirici özellikleri değiştirdikten sonra düzen parametrelerini (getWidth, getHeight) okuduğunda ve yeniden hesaplamayı zorladığında oluşur. Bu tür her çağrı, düzen önbelleğini sıfırlar ve sistemi Measure ve Layout’u yeniden yürütmeye zorlar. Çözüm, okuma ve yazma işlemlerini gruplamaktır: önce tüm ölçümler, sonra tüm değişiklikler.

Sanallaştırma, büyük listeler için önemli bir optimizasyon tekniğidir. iOS’ta UICollectionView yalnızca görünür öğeler için otomatik olarak hücreler oluşturur. Android’de RecyclerView, yeniden kullanılabilir viewHolder havuzu kullanır. Ek olarak, önceden getirme uygulanır: sistem, kaydırma sırasında hücrelerin hazır olması için 1–2 ekran ilerideki öğeleri yükler. Android’de GapWorker, iOS’ta prefetchDataSource bunu halleder.

Görseller ayrı optimizasyon gerektirir. Arka planda yükleme ile ayrı bir iş parçacığında kod çözme, UI iş parçacığı blokajını önler. Glide (Android) ve Kingfisher (iOS) gibi kütüphaneler yerleşik disk/bellek önbelleği, tembel yükleme ve yükleme sırasında yer tutucular sağlar. SDWebImage kıyaslamalarına (2024) göre, görsel önbelleği kullanmak, doğrudan ağ yüklemesine kıyasla galeri kaydırmayı %60 hızlandırır.

Bir diğer yaygın sorun ağır düzen hiyerarşileridir. Her iç içe görünüm Measure/Layout süresini artırır. Önerilen derinlik 5 iç içe geçme seviyesinden fazla değildir. Android’de ConstraintLayout düz hiyerarşiler oluşturmaya izin verirken, iOS’ta Stack Views ve SwiftUI düzeni otomatik olarak optimize eder. Çok sayıda öğede Shadow ve CornerRadius kullanımı da kaydırmayı yavaşlatır — bunlar yalnızca gerektiğinde uygulanmalıdır.

Sıkça Sorulan Sorular

Mobil uygulamalarda kaydırma nedir?

Kaydırma, cihaz ekran boyutunu aşan içeriği kaydırma mekanizmasıdır. Kullanıcı parmağını ekranda kaydırır ve içerik jest yönünde hareket ederek gizli kısımları ortaya çıkarır. Kaydırma, iOS’ta UIScrollView ve Android’de RecyclerView aracılığıyla uygulanır.

ScrollView ile RecyclerView arasındaki fark nedir?

ScrollView (Android) tüm alt öğeleri aynı anda belleğe yükler — 500 öğeyle, 500 görünümün tümü aynı anda oluşturulur. RecyclerView sanallaştırma kullanır: yalnızca görünür hücreler oluşturur ve kaydırma sırasında bunları yeniden kullanır. Dinamik verili listeler için her zaman RecyclerView’ı seçin.

Sonsuz kaydırma nedir?

Sonsuz kaydırma, mevcut listenin sonuna ulaşıldığında yeni verilerin otomatik olarak yüklendiği bir tekniktir. Kullanıcı alt sınıra kadar kaydırdığında, uygulama API’ye bir istek gönderir ve yeni öğeler ekler. Bu, sosyal ağlarda ve içerik akışlarında kullanıcı deneyimini iyileştirir.

Mobil uygulamada kaydırma nasıl optimize edilir?

Kaydırma optimizasyonu, hücre yeniden kullanımı yoluyla öğelerin sanallaştırılması, önbellekli görsel tembel yüklemesi, düz düzen hiyerarşileri (5 seviyeden fazla olmamalı), 1–2 ekran ileriden veri önceden getirme ve düzen sarsıntısından kaçınmayı içerir. iOS’ta prefetchDataSource kullanın; Android’de GapWorker kullanın.

Kaydırma ataleti nedir?

Kaydırma ataleti, keskin bir parmak kaydırmasından sonraki yumuşak yavaşlama etkisidir. Sistem parmak hareketinin hızını hatırlar ve fiziksel sürtünmeyi simüle ederek kademeli hız azalmasıyla kaydırmaya devam eder. iOS Quadratic easing kullanır, Android 0,015 sürtünme katsayısıyla Spline tabanlı enterpolasyon kullanır.

Özet

  • Kaydırma, mobil uygulamalarda ekran boyutunu aşan içeriği görüntülemeyi sağlayan temel bir gezinme mekanizmasıdır.
  • Kaydırma türleri dikey, yatay, sonsuz ve paralaks içerir — her biri belirli kullanıcı senaryoları için uygulanır.
  • Platform uygulamaları — iOS Quadratic easing ile UIScrollView kullanır, Android Spline enterpolasyonu ve OverScroller ile ViewDragHelper kullanır.
  • Sanallaştırma (iOS’ta UICollectionView ve Android’de RecyclerView aracılığıyla) yüzlerce ve binlerce öğeli listelerin performansı için kritiktir.
  • Kaydırmanın temel sorunları — düzen sarsıntısı, ağır görünüm hiyerarşileri ve optimize edilmemiş görsel yüklemesi — her biri belirli tekniklerle çözülür.
  • Optimizasyon, önceden getirme, tembel yükleme, düz döşenimler ve hareketli öğelerde Shadow ve CornerRadius’ı sınırlamayı içerir.
  • Modern yaklaşımlar — Android’de Compose LazyColumn ve iOS’ta SwiftUI ScrollView, kaydırma uygulamasını basitleştirir ve en iyi uygulamaları otomatik olarak uygular.

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.

Projeyi tartış

Ayrıca okuyun