Mobile App WikiMobile App Wiki
WikiApp DiscoverDiscuss

Wiki

    mobileapp.wiki

    Wiki

    • ASO17
    • Monetizasyon14
    • Mağaza Politikaları20
    • Metrikler15
    • Geliştirme25
    • Pazarlama15
    • Hukuk9
    • UI/UX14
    • Test & QA10
    • Altyapı10

    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 Screen & App Loading

    İç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 içeriği nasıl buldunuz?

    Paylaş

    ← Önceki

    React Native

    Sonraki →

    Flutter

    İlgili İçerikler

    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.

    Android Kapalı Test

    Android Kapalı Test hizmeti için androidtesti.com platformunu ziyaret edin.

    androidtesti.com