Neden Önemli?
- 150MB üzeri uygulamalar mobil veri ile indirilemez (iOS, kullanıcı ayarına bağlı)
- Büyük uygulama = düşük conversion rate
- Her 10MB artış indirme oranını %1-2 düşürür
- Depolama alanı sınırlı cihazlarda kaldırılma riski artar
- Gelişmekte olan ülkelerde düşük bant genişliği ve sınırlı depolama yaygın
iOS App Thinning
Apple otomatik olarak cihaza özel optimize eder:
App Slicing
- Sadece ilgili cihaz mimarisi dahil edilir (@2x vs @3x, arm64)
- Gereksiz asset'ler dahil edilmez
- Asset Catalog kullanımı kritik öneme sahip
Bitcode
- Apple sunucu tarafında optimize eder
- Artık opsiyonel (Xcode 14+ ile kaldırıldı)
On-Demand Resources
- İlk indirmede dahil olmayan, ihtiyaç halinde indirilen asset'ler
- Oyunlarda level kaynakları için ideal
- Ek dil paketleri ve tematik içerikler
Android App Bundle (AAB)
Google Play zorunlu format (APK yerine):
- Cihaza özel APK oluşturur
- ABI split (arm64, armeabi) ile gereksiz mimariler çıkarılır
- Density split (hdpi, xhdpi, xxhdpi) ile cihaza uygun görseller
- Language split (sadece kullanılan dil kaynakları)
- Ortalama %15-20 boyut tasarrufu sağlar
Genel Optimizasyon Teknikleri
Görseller
- WebP formatı kullan (PNG/JPG yerine, %25-35 küçük)
- Gereksiz yüksek çözünürlük kullanma
- SVG/vector grafik tercih et (ölçeklenebilir, küçük dosya boyutu)
- Görselleri sıkıştır (TinyPNG, ImageOptim)
- AVIF formatı da değerlendirilebilir (WebP'den daha küçük)
Kod
- ProGuard / R8 (Android): Kullanılmayan kod temizleme + obfuscation
- Tree shaking: Kullanılmayan kütüphane kodunu çıkar
- Gereksiz dependency'leri kaldır
- Dead code elimination uygula
Native Kütüphaneler
- Debug symbol'leri strip et
- Sadece gerekli ABI'leri dahil et
- Büyük native lib'leri daha hafif alternatifle değiştir
React Native Özel
- Hermes engine kullan (daha küçük bundle, daha hızlı başlatma)
- Metro bundle analyzer ile büyük dependency'leri tespit et
- Unused import'ları temizle
- Görsel asset'leri CDN'den yükle (bundle'a dahil etme)
- expo-image ile optimize görsel yükleme
Boyut Analiz Araçları
| Araç | Platform |
|---|---|
| Xcode App Size Report | iOS |
| Android Size Analyzer | Android |
| Bundlephobia | npm paket boyutu kontrolü |
| source-map-explorer | JS bundle analizi |
| react-native-bundle-visualizer | RN bundle görselleştirme |
Hedef Boyutlar
| Kategori | İdeal | Maksimum |
|---|---|---|
| Utility | <30MB | 50MB |
| Sosyal | <50MB | 100MB |
| Oyun | <100MB | 200MB |
| E-ticaret | <40MB | 80MB |
2026 İtibariyle Güncel Durum
- Google Play, AAB formatını zorunlu kıldı; APK yükleme artık kabul edilmiyor
- Apple, App Thinning ve ODR ile otomatik optimizasyon sunuyor
- AVIF format desteği mobilde yaygınlaşıyor
- Hermes engine React Native'de varsayılan hale geldi
İlk indirme boyutunu minimumda tut. Ek içerikleri on-demand veya CDN üzerinden yükle.