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/Geliştirme/Splash Screen & App Loading
Geliştirme4 dk okuma

Splash Screen & App Loading

iOS ve Android splash screen gereksinimleri, animated splash, cold/warm start farklari ve React Native/Expo yapilandirmasi icin kapsamli rehber.

splash screenlaunch screenapp loadingcold startwarm startlottieios storyboardandroid splashscreen apiexpo splash

İçindekiler

Splash Screen Nedir?iOS Launch ScreenStoryboard ZorunluluguApple'in YasaklariOnbellekleme SorunuAndroid 12+ SplashScreen APINasil Calisir?Önemli DetaylarAnimated Splash ScreenLottie ile AnimasyonUygulama StratejisiCold Start vs Warm StartCold StartWarm StartHot StartAlgilanan PerformansReact Native / Expo YapilandirmasiExpo ile Splash ScreenReact Native (Bare)Yaygin Hatalar2026 Güncel Durumİlgili Konular

Splash Screen Nedir?

Splash screen uygulama acilirken kullanicinin gordugu ilk ekrandir. Bu ekran uygulamanin yuklenmesi sirasinda bos beyaz ekran gormesini engeller ve marka kimligini iletir. iOS ve Android'in splash screen gereksinimleri birbirinden oldukca farklidir ve bu farklari bilmek app rejection'dan kacinmak icin sart.

iOS Launch Screen

Apple'in Launch Screen kurallari katıdır:

Storyboard Zorunlulugu

  • iOS'ta splash screen icin LaunchScreen.storyboard kullanmak zorunlu. Static bir PNG/JPG gorsel koyup "tamam" diyemezsin.
  • Storyboard icinde UIImageView, UILabel ve Auto Layout ile responsive bir layout kurulur
  • Dinamik API cagrisi, animasyon veya custom view KULLANILAMAZ
  • Cihaz boyutlarina otomatik uyum saglamasi icin constraint'ler dogru ayarlanmali

Apple'in Yasaklari

  • Splash screen'de reklam gosterme
  • Yukleme cubugu veya spinner ekleme
  • Yasal uyari metni gosterme
  • Splash screen'i kasitli olarak geciktirme (minimum sure bekleme)

Onbellekleme Sorunu

iOS launch screen'i agresif sekilde onbellekler. Degisiklik yaptiginda gozukmuyorsa:

  • Uygulamayi cihazdan tamamen sil
  • Xcode'da Clean Build Folder yap
  • Derived Data klasorunu temizle

Bu iOS'un bilinen bir davranisi ve gelistiricileri en cok zorlayan konulardan biri.

Android 12+ SplashScreen API

Android 12 ile birlikte sistem seviyesinde bir SplashScreen API geldi. Eski yontemler (tema ile splash, bos Activity) artik gereksiz.

Nasil Calisir?

  • Sistem otomatik olarak uygulama ikonunu splash screen'de gosterir
  • windowSplashScreenBackground ile arka plan rengi ayarlanir
  • windowSplashScreenAnimatedIcon ile animasyonlu ikon kullanilabilir (max 1000ms)
  • windowSplashScreenBrandingImage ile alt kisma marka gorseli eklenebilir

Önemli Detaylar

  • Android 12 oncesi cihazlarda SplashScreen compat kutuphanesi kullanilmali (androidx.core.splashscreen)
  • Splash screen suresi kontrol edilemez, sistem yukleme durumuna gore kapatir
  • installSplashScreen() ile Activity'de baslangic kodu calisana kadar splash'i açık tutabilirsin

Animated Splash Screen

Statik splash screen'den sonra kisa bir animasyonlu gecis uygulamanin profesyonel gorunmesini saglar.

Lottie ile Animasyon

  • Lottie (lottie-react-native veya lottie-ios/lottie-android) en yaygin cozum
  • After Effects'te tasarla, JSON olarak export et
  • Dosya boyutu küçük, performans yuksek
  • 1-3 saniye araliginda tut, kullaniciyi bekleme

Uygulama Stratejisi

  1. Sistem splash screen'i gosterir (statik, hizli)
  2. Uygulama acilinca animasyonlu bir gecis ekrani gosterilir
  3. Bu sirada font'lar yuklenir, API cagrilari yapilir, auth kontrol edilir
  4. Hazir oldugunda ana ekrana gecis yapilir

Animasyonlu splash, kullaniciya "uygulama calisiyor" hissi verir. Ama 3 saniyeden uzun tutma, sabir tukenir.

Cold Start vs Warm Start

Cold Start

  • Uygulama bellekte yok, sifirdan baslatiliyor
  • Isletim sistemi process olusturur
  • Tum initialization kodu calisir (dependency injection, DB baglantisi, vb.)
  • En yavas baslangic tipi (1-5 saniye arasi normal)

Warm Start

  • Uygulama arka planda duruyor, kullanici geri donuyor
  • Process bellekte, sadece Activity/ViewController yeniden olusturuluyor
  • Cok daha hizli (genellikle 0.5 saniyenin altinda)

Hot Start

  • En hizli durum
  • Activity/ViewController hala bellekte
  • Sadece on plana getiriliyor

Algilanan Performans

Gerçek yukleme suresi kadar kullanicinin algiladigi sure de önemli:

  • Splash screen'de marka gorseli gostermek beklemeyi "anlamli" kilar
  • Skeleton screen kullanmak icerik yukleniyor hissi verir
  • Progressive loading ile once yapi, sonra icerik yukle
  • Animasyon kullanicinin dikkatini dagitiyor, bekleme hissi azaliyor

React Native / Expo Yapilandirmasi

Expo ile Splash Screen

  • app.json veya app.config.js icinde splash alani ile ayarla
  • splash.image: Gorsel dosya yolu (1284x2778 onerilir)
  • splash.resizeMode: "contain" veya "cover"
  • splash.backgroundColor: Arka plan rengi
  • expo-splash-screen paketi ile SplashScreen.preventAutoHideAsync() cagir
  • Veriler yuklenince SplashScreen.hideAsync() ile gizle

React Native (Bare)

  • react-native-bootsplash onerilir (react-native-splash-screen artik bakimsiz)
  • iOS'ta storyboard otomatik olusturur
  • Android'de SplashScreen API uyumlu calisir
  • npx react-native-bootsplash generate komutu ile gorsellerden otomatik uretim yapar

Yaygin Hatalar

HataSonuc
Splash screen'i 5+ saniye açık tutmaKullanici uygulamayi kapatiyor
iOS'ta static image kullanmaApp Store rejection
Android 12 SplashScreen API'yi ignore etmeCift splash goruntuleniyor
Font/asset yuklemeyi splash'tan sonraya birakmaIcerik atlamalari oluyor
Splash'ta network istegi beklemeYavas baglantida uygulama kilitlenmis gorunuyor

2026 Güncel Durum

  • iOS'ta storyboard zorunlulugu devam ediyor
  • Android 12+ SplashScreen API artik standart, eski yontemleri birak
  • Expo SDK 52+ ile expo-splash-screen yapilandirmasi sadeleşti
  • Animated splash icin Lottie hala en populer cozum
  • Cold start optimizasyonu icin lazy initialization ve code splitting kritik

Splash screen bir bekleme ekrani degil, bir karsilama ekrani. Kisa tut, anlamli kilve kullaniciyi ana iceriklere hizla ulastir.

İlgili Konular

  • React Native
  • Image & Asset Optimization (Mobil)

Bu makaleyi nasıl buldunuz?

Paylaş

← Önceki

React Native

Sonraki →

Flutter

İlgili Makaleler

React Native

Meta'nın JavaScript tabanlı cross-platform framework'ü React Native rehberi. iOS ve Android native uygulama geliştirme, Expo ve New Architecture.

Flutter

Google'ın Dart tabanlı cross-platform UI toolkit'i Flutter rehberi. Tek codebase ile iOS, Android, Web ve Desktop uygulama geliştirme stratejileri.

Expo

React Native için hızlı geliştirme platformu Expo rehberi. EAS Build, OTA güncelleme, cloud build, managed workflow ve SDK modülleri detayları.

CI/CD (Mobil)

Mobil uygulamalar için CI/CD pipeline rehberi. EAS Build, Fastlane, Bitrise, Codemagic ve GitHub Actions ile sürekli entegrasyon ve dağıtım.

Code Signing (iOS)

iOS uygulama imzalama süreci rehberi. Certificate ve provisioning profile yönetimi, automatic ve manual signing, Fastlane Match ve CI/CD entegrasyonu.