Skip to main content
Mobil Geliştirme

React Native ile Mobil Uygulama Performansını Artırmanın En İyi Yöntemleri

February 26, 2026 4 min read 32 views Raw
default
Table of Contents

Mobil uygulama performansı, kullanıcı memnuniyeti ve uygulama başarısı için kritik öneme sahiptir. React Native ile geliştirilen uygulamalarda performansı artırmak, hem kullanıcı deneyimini iyileştirir hem de cihaz kaynaklarını etkin kullanmanızı sağlar. Bu yazıda React Native projelerinde sık karşılaşılan performans darboğazlarını, ölçüm tekniklerini ve uygulanabilir optimizasyon yöntemlerini ele alıyoruz.

Neden Performans Optimizasyonu Önemli?

Yavaş açılan ekranlar, takılmalar (jank), uzun animasyonlar ve yüksek bellek kullanımı kullanıcı kaybına yol açar. Ayrıca kötü performans uygulama incelemelerini, indirme oranlarını ve kullanıcı etkileşimini olumsuz etkiler. React Native uygulamalarında JavaScript köprüsü (bridge), gereksiz yeniden render'lar ve ağır görsel işlemler gibi etkenler performansı düşürebilir.

Ölçüm ve Profiling Araçları

İlk adım, sorunları doğru tanımlamaktır. Aşağıdaki araçları kullanarak hedefli optimizasyon yapabilirsiniz:

  • React DevTools Profiler: Bileşen render sürelerini gösterir.
  • Flipper: Network, layout, performans ve log takibi sağlar.
  • Xcode Instruments ve Android Profiler: CPU, bellek ve enerji tüketimini ölçer.
  • Hermes + traceviewer: Hermes etkinse daha derin profiling imkanı sunar.

Render Performansını İyileştirme

Tekrarlanan veya gereksiz render'ları azaltmak performans için en etkili yaklaşımlardan biridir.

1. PureComponent, React.memo ve Hook'lar

Fonksiyonel bileşenlerde React.memo ile sarmalayarak prop değişmediğinde yeniden render'ı engelleyebilirsiniz. Fonksiyon referansları için useCallback, hesaplanan değerler için useMemo kullanın.

2. Key Prop ve Listeler

FlatList veya SectionList kullanırken keyExtractor doğru ayarlayın. Ayrıca getItemLayout, initialNumToRender, maxToRenderPerBatch gibi prop'larla liste performansını artırın. removeClippedSubviews seçeneği uzun listilerde performansı iyileştirebilir.

3. Render İçinde Yeni Fonksiyon/Obje Oluşturmaktan Kaçının

Render fonksiyonu içinde her seferinde yeni obje veya fonksiyon oluşturmak, çocuk bileşenlerin tekrar render olmasına neden olur. Bu nedenle sabit verileri komponent dışına alın veya useMemo/useCallback ile sarmalayın.

Görsel ve Kaynak Optimizasyonu

1. Görsel Boyutlandırma ve Format

Görselleri cihaz ekran boyutlarına uygun olarak yeniden boyutlandırın. WebP gibi modern formatlar daha az yer kaplar ve hızlı yüklenir. Gereksiz yüksek çözünürlüklü resimleri kullanmaktan kaçının.

2. Lazy Loading ve Placeholder

Görselleri ihtiyaç duyulduğunda yükleyin. React Native'de placeholder veya düşük çözünürlüklü önizleme gösterip yüksek çözünürlüğü arka planda yüklemek kullanıcı deneyimini iyileştirir.

3. react-native-fast-image Kütüphanesi

Native cache ve verimli yükleme sağlamak için react-native-fast-image gibi kütüphaneleri kullanın. Bu tür kütüphaneler görüntü yönetimini optimize eder ve bellek kullanımını azaltır.

JavaScript Performansı ve Bridge Trafiği

React Native'de büyük miktarda veri köprü üzerinden geçirildiğinde veya sık çağrı yapıldığında performans düşer.

1. Bridge'i Azaltmak

Köprü çağrılarını toplu hale getirin, sık küçük çağrılar yerine tek seferde toplu veri gönderin. Karmaşık hesaplamaları JavaScript yerine native tarafında yapmak da köprü yükünü azaltır.

2. Ağ İsteklerini İyileştirme

API isteklerini debounce/değiştir, gzip/deflate sıkıştırma kullanın, cache mekanizmaları ve pagination ile istek sayısını azaltın. Ağ gecikmesini azaltmak için CDN kullanın.

Animasyon ve Etkileşim Optimizasyonu

Animasyonlar kullanıcı deneyimini doğrudan etkiler. Jank oluşmaması için animasyonları native thread'e taşıyın.

1. useNativeDriver

Animated API kullanıyorsanız useNativeDriver: true ile animasyonları UI thread'e taşıyın. Ancak transform ve opacity gibi native desteklenen özellikleri kullanın.

2. Reanimated ve Gesture Handler

Reanimated v2 ve react-native-gesture-handler, performanslı animasyonlar ve dokunma işleme sağlar. Reanimated'in JSI entegrasyonu sayesinde animasyonlar JavaScript köprüsüne takılmadan çalışır.

Bundle ve Uygulama Boyutu Optimizasyonu

Uygulama başlangıç süresini azaltmak için bundle boyutunu küçültün.

  • Hermes kullanın: Daha hızlı startup ve daha küçük bellek ayak izi sağlar.
  • Dead code elimination ve Proguard/R8 ile gereksiz kodu çıkarın.
  • Gereksiz paketleri kaldırın, büyük kütüphaneler yerine hafif alternatifler tercih edin.
  • Dynamic import / lazy loading ile yalnızca ihtiyaç duyulan modülleri yükleyin.

Bellek Yönetimi ve Sızıntıları Önleme

Bellek sızıntıları uygulamanın çökmesine veya yavaşlamasına sebep olabilir.

  • Event listener'ları komponent unmount olurken mutlaka temizleyin.
  • Timers (setInterval, setTimeout) clear edilmeli.
  • Büyük veri yapıları tutarken gerektiğinde null atayın veya bellek yönetimi stratejisi uygulayın.

Geliştirme ve Üretim Ayarları

Geliştirme sırasında performans özellikleri farklı çalışır. Üretimde şu noktalara dikkat edin:

  • Remote debugger kapalı olsun: Remote JS debugging uygulamanızı yavaşlatır.
  • console.log ve debug kodlarını kaldırın veya sadece geliştirme ortamında tutun.
  • Release build ile test edin: Debug build, performans testleri için yanıltıcıdır.

Kontrol Listesi: Hızlı Optimizasyon Adımları

  • Profiling ile en ağır bileşenleri tespit et.
  • React.memo, useCallback, useMemo kullan.
  • FlatList ve SectionList optimizasyonlarını uygula.
  • Görselleri optimize et ve cache kullan.
  • Animasyonları native driver veya Reanimated ile çalıştır.
  • Bridge çağrılarını azalt ve gerekiyorsa native modüllere taşı.
  • Hermes, Proguard ve code splitting ile bundle küçült.
  • Memory leak'leri temizle ve event listener'ları kaldır.

Sonuç

React Native uygulamalarında performans optimizasyonu tek seferlik bir iş değil, sürekli bir süreçtir. Öncelikle ölçüm yapın, en kritik darboğazları belirleyin ve en yüksek etkiyi verecek çözümlerle başlayın. Basit optimizasyonlar (memoization, FlatList ayarları, image caching) çoğu durumda büyük fayda sağlar; daha derin performans sorunları için Hermes, native modüller veya JSI tabanlı çözümleri değerlendirin. Bu yaklaşımlar kullanıcı deneyimini geliştirir, uygulama stabilitesini artırır ve kaynak tüketimini azaltır.

Sen Ekolsoft olarak React Native projelerinizde performans danışmanlığı, kod incelemesi ve optimizasyon hizmeti sağlıyoruz. İhtiyacınız olursa bize ulaşın, uygulamanızı hızlandıracak adımları birlikte planlayalım.

Share this post