Mobile App Wiki

Mobile App Wiki

mobileapp.wiki

Ana Sayfa

Kategoriler

mobileapp.wiki

Mobile App Wiki

Mobil uygulama geliştirme bilgi tabanı

GizlilikAna SayfaSitemapRSS
© 2026 mobileapp.wiki
Ana Sayfa/Altyapı/Caching Strategies (HTTP, Server, Client)
Altyapı3 dk okuma

Caching Strategies (HTTP, Server, Client)

Mobil uygulama ekosisteminde cache stratejileri. HTTP cache, CDN, Redis, client-side storage, React Query/SWR ve cache invalidation yöntemleri.

cachinghttp cachecdnredisasyncstoragemmkvreact queryswrcache invalidationetagstale-while-revalidateoffline first

İçindekiler

Cache Neden Bu Kadar Önemli?HTTP Cache HeadersCache-ControlETag ve Last-ModifiedPratik KombinasyonlarCDN Cache KatmanıServer-Side CacheRedisIn-Memory CacheClient-Side CacheReact Query / TanStack QueryImage CachingCache InvalidationCache-First vs Network-Firstİlgili Konular

Cache Neden Bu Kadar Önemli?

Mobil uygulamalarda cache, hem kullanıcı deneyimini hem de backend maliyetlerini doğrudan etkiler. Doğru cache stratejisi ile:

  • Uygulama ekranları anında açılır
  • Mobil veri kullanımı azalır
  • Backend'e gelen istek sayısı düşer
  • Offline durumda bile uygulama kullanılabilir kalır

Cache stratejisi belirlerken verinin ne kadar taze olması gerektiğini ve tutarsız veri göstermenin riskini dengede tutmanız gerekir.

HTTP Cache Headers

Cache-Control

En önemli cache header'ıdır. Direktifler:

  • max-age=3600: 3600 saniye boyunca cache'ten servis et
  • no-cache: Cache'te sakla ama her seferinde sunucuya doğrulat
  • no-store: Hiç cache'leme (hassas veriler için)
  • private: Sadece client cache'leyebilir
  • public: CDN dahil herkes cache'leyebilir
  • stale-while-revalidate=60: Eski veriyi göster, arka planda güncelle

ETag ve Last-Modified

ETag: sunucu her response'a hash ekler, client sonraki istekte If-None-Match ile gönderir. Veri değişmemişse 304 Not Modified döner. Last-Modified benzer mantıkla tarih kullanır.

Pratik Kombinasyonlar

  • Statik asset'ler: Cache-Control: public, max-age=31536000, immutable
  • API listeler: Cache-Control: private, max-age=60, stale-while-revalidate=300
  • Kullanıcı profili: Cache-Control: private, no-cache (ETag ile doğrulama)
  • Ödeme/auth: Cache-Control: no-store

CDN Cache Katmanı

CDN (Cloudflare, CloudFront, Fastly) sunucunuzun önünde cache katmanı oluşturur. Kullanıcıya en yakın edge noktasından içerik servis edilir.

  • Statik dosyalar CDN'den servis edilmeli
  • API response cache'lemek dikkat gerektirir (kullanıcıya özel veri!)
  • Cache purge mekanizması kurun
  • Vary header ile farklı versiyonları ayırt edin

Server-Side Cache

Redis

En yaygın server-side cache. In-memory key-value store olarak çalışır. TTL ile otomatik expire, Pub/Sub ile cache invalidation. Upstash Redis serverless ortamlar için popüler.

In-Memory Cache

node-cache veya lru-cache paketleri. Cok hızlı erişim ama birden fazla instance varsa senkronizasyon sorunu, restart ile veri kaybı.

Client-Side Cache

AraçPlatformHızKullanım
AsyncStorageReact NativeOrtaBasit key-value
MMKVReact NativeCok hızlıTercih edilen key-value
SQLiteiOS/Android/RNHızlıYapısal veri, sorgulama
Core DataiOSHızlıiOS native veri katmanı
RoomAndroidHızlıAndroid native ORM
WatermelonDBReact NativeHızlıLazy loading, sync

MMKV, WeChat tarafından geliştirilen C++ tabanlı key-value store'dur. AsyncStorage'a göre 30-50x daha hızlıdır. 2026'da React Native projelerinde standart haline gelmiştir.

React Query / TanStack Query

Server state management ve caching konusunda en popüler çözüm.

  • staleTime: Verinin taze kabul edilme süresi
  • gcTime: Kullanılmayan verinin bellekte tutulma süresi
  • refetchOnWindowFocus: Ön plana geldiğinde refetch
  • refetchOnReconnect: Bağlantı geldiğinde refetch

SWR: Vercel'in alternatifi. Cache'teki eski veriyi anında gösterir, arka planda günceller. Her iki kütüphane de optimistic update, infinite scroll, prefetching ve mutation sonrası cache invalidation destekler.

Image Caching

Görseller en büyük bant genişliği tüketicisidir.

  • React Native: react-native-fast-image veya expo-image
  • iOS Native: SDWebImage veya Kingfisher
  • Android Native: Glide veya Coil

Temel prensipler: CDN'den servis edin, farklı boyutlarda thumbnail oluşturun, WebP/AVIF formatlarını tercih edin, blur hash ile yükleme deneyimini iyileştirin.

Cache Invalidation

  • TTL bazlı: Belirli süre sonra otomatik expire (en basit)
  • Event bazlı: Veri değiştiğinde cache key'ini sil (en doğru)
  • Versiyon bazlı: URL'e versiyon ekle
  • Tag bazlı: İlişkili key'leri tag'le, tag'i invalidate et

Cache-First vs Network-First

  • Cache-first: Önce cache'e bak, yoksa network'e git. Hız öncelikli senaryolar
  • Network-first: Önce network'e git, hata olursa cache'e dön. Güncellik öncelikli
  • Stale-while-revalidate: Cache'ten göster, arka planda güncelle. En iyi denge

Cache stratejisi uygulamanızın doğasına göre şekillenir. Veri hassasiyetini, güncellik ihtiyacını ve kullanıcı beklentisini analiz ederek doğru stratejiyi uygulayın.

İlgili Konular

  • CDN & Asset Delivery
  • Image & Asset Optimization (Mobil)

Bu makaleyi nasıl buldunuz?

Paylaş

← Önceki

Firebase

Sonraki →

Supabase

İlgili Makaleler

Firebase

Google Firebase mobil uygulama platformu rehberi. Authentication, Firestore, Cloud Functions, Crashlytics, Analytics, Remote Config ve FCM detayları.

Supabase

Açık kaynaklı Firebase alternatifi Supabase rehberi. PostgreSQL, Row Level Security, Edge Functions, realtime subscriptions ve mobil entegrasyon.

Analytics Platformları

Mobil uygulama analitik platformları karşılaştırma rehberi. Firebase Analytics, Mixpanel, Amplitude ve PostHog ile event ve retention ölçümü.

Remote Config & Feature Flags

Remote Config ve Feature Flags yönetim rehberi. Firebase Remote Config, LaunchDarkly ve Statsig ile gradual rollout ve kill switch stratejileri.

CDN & Asset Delivery

CDN ve asset delivery optimizasyon rehberi. Cloudflare, AWS CloudFront ve Bunny CDN karşılaştırması, image optimization ve cache stratejileri detayları.