Skip to main content
Mobil Geliştirme

Mobil Performans ve Pil Optimizasyonu: Flutter, Kotlin ve React Native İpuçları

February 25, 2026 5 min read 32 views Raw
askılı elbise, Asyalı kadın, bayan içeren Ücretsiz stok fotoğraf
Table of Contents

Mobil uygulamalarda performans ve pil tüketimi, kullanıcı deneyiminin merkezindedir. Yavaş yüklenen ekranlar, takılmalar (jank) ve aşırı pil tüketimi, kullanıcı kaybına yol açar. Bu yazıda Flutter, Kotlin (Android) ve React Native için ölçüm, profil çıkarma, genel en iyi uygulamalar ve platforma özgü optimizasyon ipuçlarını detaylı şekilde ele alacağız.

1. Ölçüm ve Profiling: Başlamadan önce ölçün

Her optimizasyona başlamadan önce uygulamanızın hangi bölümlerinin sorunlu olduğunu belirleyin. Tahmin etmek yerine veri kullanın:

Araçlar

- Flutter: Flutter DevTools (CPU, memory, timeline, widget rebuild profiler). Dart DevTools ile timeline ve bileşen yeniden oluşturma analizi yapın.
- Android/Kotlin: Android Studio Profiler, Perfetto, Systrace, Battery Historian (pil tüketimi analizi).
- React Native: Flipper (performance plugin), RN Performance Monitor, Hermes profiler, Android/iOS native profilers ve systrace.

2. Genel Performans ve Pil Optimizasyonu İlkeleri

Aşağıdaki prensipler tüm platformlar için geçerli ve uygulamanızın temelini güçlendirir:

CPU-GPU yükünü azaltın

Ağır hesaplamaları ana iş parçacığından (UI thread) ayırın. Ana thread'in bloklanması jank ve takılmalara yol açar. Yoğun iş yüklerini arka plan iş parçacıklarında, izolelerde veya native modüllerde çalıştırın.

Gereksiz yeniden render ve layout işlemlerini azaltın

Widget/komponent yeniden oluşturma sayısını minimuma indirin. Immutable/const yaklaşımlar, memoization ve doğru key kullanımı ile tekrarları azaltabilirsiniz.

Ağ isteklerini ve veriyi akıllıca yönetin

HTTP cache başlıklarını kullanın, sık kullanılan veriyi lokal cache'te tutun (disk veya bellek). Polling yerine push mekanizmalarını (push notifications, server-sent events) tercih edin. Büyük veri setlerini parça parça yükleyin (pagination, lazy loading).

Görüntü ve medya optimizasyonu

Resimleri uygun boyuta getirin, WebP/AVIF gibi modern sıkıştırma formatlarını kullanın, lazy load ve placeholder teknikleri uygulayın. Çok büyük bit eşlem (bitmap) yüklemelerinden kaçının; gerektiğinde thumbnail gösterin.

Arkaplan görevleri ve senkronizasyon

Arkaplan görevlerinde sık uyanma (wakelock) uygulamaktan kaçının. Senkronizasyonları toplu ve zamanlanmış olarak yapın. Android için WorkManager, iOS için BackgroundTasks/URLSession üzerinde doğru scheduling uygulayın. Doze/Battery Saver modlarına saygı gösterin.

3. Flutter Özel İpuçları

Flutter UI paradigması farklıdır; widget ağacının verimli yönetimi performans için kritik öneme sahiptir.

Widget yeniden inşa yönetimi

- const constructor kullanın: Mümkün olan tüm widget'larda const kullanmak yeniden oluşturmaları azaltır.
- setState'i minimal tutun: Bütün state'i değil, sadece gerekli küçük parçaları güncelleyin.
- Provider, Riverpod veya Bloc ile state ayırımı yapın.

Rendering ve Layer optimizasyonu

- RepaintBoundary ile gereksiz repaint'leri izole edin.
- Karmaşık animasyonları GPU dostu hale getirin (implicit yerine animate & compositing-friendly opsiyonlar).
- Büyük listeler için ListView.builder, GridView.builder kullanın; itemCount bilinirse performans artar.

Isolate ve ağır işler

Dart isolate'ları ile CPU yoğun işleri UI thread'inden ayırın. JSON parsing, görüntü işleme veya kriptografik işlevleri isolate'ta çalıştırın.

Görüntü ve bellek

- precacheImage ile önemli görselleri önceden yükleyin.
- Image.memory ve Image.file kullanırken bellek kullanımını takip edin; gereksiz büyük byte[] oluşturmaktan kaçının.
- DevTools ile memory snapshot alıp leak kontrolü yapın.

4. Kotlin / Native Android İpuçları

Android platformu için düşük seviyede optimizasyonlar yaparak pil ve performans kazanabilirsiniz.

Concurrency ve Threading

- Kotlin Coroutines kullanın; IO operasyonları için Dispatchers.IO, hesaplama için Dispatchers.Default tercih edin.
- Uzun süren görevler için WorkManager kullanın; Doze moduna uyumlu arka plan iş planlaması sağlar.

Layout ve View optimizasyon

- Complex UI'larda ConstraintLayout tercih edin, derin view hiyerarşilerini azaltın.
- RecyclerView'da viewHolder'ı doğru kullanın, DiffUtil ile veri güncellemelerini sınırlandırın.
- Overdraw'u azaltmak için background'ları ve transparan katmanları dikkatle kullanın.

Görüntü yükleme

- Coil veya Glide gibi kitaplıklarla image loading optimizasyonu yapın; memory cache ve disk cache konfigürasyonlarını ayarlayın.
- WebP/AVIF desteği ve uygun downsampling uygulayın.

Pil yönetimi

- BatteryManager ile pil durumu ve Battery Saver modunu kontrol edip, yoğun işler ve arka plan güncellemelerini sınırlayın.
- Wakelock kullanımını minimize edin; yalnızca gerekli durumlarda edinip serbest bırakın.

5. React Native Özel İpuçları

React Native'de JS ve native arasında köprü (bridge) maliyeti vardır; bu yüzden bazı kurallara dikkat etmek gerekir.

Render optimizasyonu

- Fonksiyonel bileşenler için React.memo, PureComponent ile yeniden render'ları sınırlayın.
- Inline fonksiyonlar ve anonim callback'ler render başına yeni referans oluşturur; useCallback/useMemo ile önleyin.

Liste performansı

- FlatList/SectionList'te getItemLayout, keyExtractor ve initialNumToRender ayarlarını yapılandırın. Büyük listelerde windowSize ve removeClippedSubviews kullanımı faydalıdır.

Animasyon ve UI akışı

- react-native-reanimated ve native driver (useNativeDriver) ile animasyonları JS thread'ten GPU'ya taşıyın.
- Hermes engine'i etkinleştirin; başlangıç süreleri ve bellek tüketimi genelde düşer.

Ağ ve medya

- Büyük görseller için react-native-fast-image gibi native destekli yükleyiciler kullanın.
- Üretim derlemelerinde console.log ve debugging araçlarını kapatın; bunlar hem performansı hem de pil tüketimini artırır.

6. Pil Dostu Tasarım Stratejileri

Pil optimizasyonu yalnızca teknik iyileştirmeler değil, aynı zamanda kullanıcı odaklı stratejilerle de sağlanır:

Daha az uyanma, daha az ağ

Arkaplan senkronizasyonlarını birleştirin ve toplu güncelleme yapın. Push tabanlı bildirimlerle sık poll'ları azaltın. Kullanıcı tercihlerine göre güncelleme sıklığını ayarlayın (ör. veri-yoğun mod / pil-dostu mod).

Konum ve sensör kullanımı

Konum güncellemelerini yüksek doğrulukta sürekli almak yerine adaptive strateji uygulayın: gerektiğinde yüksek doğruluk, arada düşük doğruluk. FusedLocationProvider gibi batarya dostu API'ler kullanın.

Enerji tasarrufu modlarını dikkate alın

Android'de Battery Saver açık ise arka plan işlerini azaltın veya duraklatın. iOS'da Background App Refresh kısıtlamalarını göz önünde bulundurun.

7. Kontrol Listesi (Hızlı Özet)

- Profil yapın (DevTools, Profiler, Perfetto).
- Ana iş parçacığını bloklamayın; ağır işleri arkaplana taşıyın.
- Görselleri optimize edin; uygun format ve boyut kullanın.
- Yalnızca gerektiğinde ağ istekleri yapın; cache ve compress uygulayın.
- Liste ve animasyon optimizasyonlarına dikkat edin (FlatList, ListView.builder, useNativeDriver).
- Arka plan görevlerini WorkManager/BackgroundTasks ile planlayın; wakelock kullanımını minimize edin.
- Pil tasarrufu modlarına uyumlu davranın.

8. Sonuç

Mobil performans ve pil optimizasyonu, tek seferlik bir işlem değil sürekli izleme ve iyileştirme gerektiren bir süreçtir. Doğru araçlarla öncelikleri belirleyin, ölçün, küçük ve etkili değişikliklerle başlayın ve kullanıcı geri bildirimlerini PR'larınıza dahil edin. Flutter, Kotlin ve React Native her biri için platforma özgü en iyi uygulamaları takip ederek hem kullanıcı memnuniyetini artırabilir hem de cihaz kaynaklarını daha verimli kullanabilirsiniz.

Sen Ekolsoft olarak, uygulamanızın performansını artırmak ve pil verimliliğini iyileştirmek için detaylı kod incelemesi, profil raporu ve çözüm önerileri sunmaktayız. Daha teknik yardım isterseniz bizimle iletişime geçin.

Share this post