Android uygulamada doğru Splash Screen Hazırlama

Merhabalar. Bu yazımda sizlere doğru bir Splash Screen’in (Açılış Ekranı) nasıl hazırlanabileceğini anlatmaya çalışacağım. Keyifli okumalar.

Splash Screen nedir?

Splash Screen uygulamalarımızın açılması esnasında kullanıcıya gösterdiğimiz, genelde uygulama ile ilgili bir resmin olduğu açılış ekranıdır.

Neden Splash Screen kullanmalıyız?

Android işletim sistemi uygulamamızın LauncherActivity’sinin OnCreate metodunu ararken belli bir süre geçer. Bu süre cihazdan cihaza, cihazın yoğunluğuna göre değişebilir. Bu süre zarfında uygulamamızın ekranında boş beyaz bir ekran gözükür.

Amacımız o süre zarfında kullanıcıyı boş beyaz ve hoş olmayan bir ekran ile karşılamak yerine uygulamamız ile ilgili bir ekran / tasarım göstermektir. Bunun içinde Splash Screen’leri kullanırız.

Dipnot: Bununla beraber genellikle uygulama açılırken bazı arkaplan işlemlerini yapıp (uygulama güncellemesinin olup olmadığını kontrol etme, kullanıcının giriş yapıp yapmadığını kontrol etme… ) ardından kullanıcıya ilgili ekranı gösteririz. Bu işlemleri yaparken de kullanıcının boş bir ekran görmesi yerine bizim tasarladığımız bir ekranı gösteririz. Bu konu ile ilgili en kısa sürede bu yazının devamı niteliğinde bir yazı yazmaya çalışacağım.

“ Güncelleme : Yazıyı henüz yazamadım. Ama örnek bir yaklaşım biçimini aşağıda verdiğim reponun with_background_operations branch’ine ekledim. Buradan inceleyebilirsiniz.”

Bu yazıda doğrusunu okuyacaksak peki bunun yanlış kullanımı nedir ve bu neden yanlıştır?

Çoğumuz uygulama geliştirmeye başlarken Splash Screen oluştururken Splash Screen için ayrı bir activity oluşturur bu activity içerisinde kullanıcıyı birkaç saniye bekletir ardından da ana activitiye yönlendiririz. Bu yöntemdeki yanlışlıklar şu şekilde sıralanabilir;

  • Uygulama açılırken gözüken beyaz ekran gözükmeye devam eder. Çünkü Splash Screen için yeni bir activity ve layoutu oluşturduğumuzda bu activity bulununa kadar yine bir süre geçer ve bu süre esnasında kullanıcı yine boş ve beyaz bir ekran ile karşılanmış olur. Aşağıdaki resimde uygulama açılırken ki beyazlığı görebilirsiniz. Resimdeki uygulamada SplashScreen için bir activity ve layout oluşturulmuş. Activity içerisinde 2 saniyelik bir bekleme süresinden sonra kullanıcı MainActivity’e yönlendirilmiştir.
Hatalı SplashScreen örneği.
Hatalı SplashScreen örneği
  • Kullanıcının daha uzun süre bekletilmesi : Kullanıcı hem uygulama yüklenirken, hemde kendi tasarımımızı gösterirken bekletmiş oluyoruz. Ki bu bekleyiş kullanıcı deneyimi (UX) için hiç hoş değildir. Kullanıcıyı kaybetmemize bile neden olabilir.

Peki doğru Splash Screen nasıl hazırlanır?

Uygulamalarımızı geliştirirken uygulamalarımızın styles.xml dosyasında bazı temalar bulunur. Biz yeni bir tema oluşturup bu temayı ana activitymizin ( Manifest.xml dosyasında category’si “Launcher” olarak ayarlanmış activity) teması yaparsak uygulama açılırken OnCreate metodu bulunana kadar bu tema ekranda gösterilir. OnCreate metodumuzun içinde de temamızı ana temamız ile değiştirirsek kullanıcıyı boş ekrana bakmaktan kurtarıp tam da uygulamanın yüklenme süresi kadar açılış ekranımızı ona göstermiş olacağız.

Hadi Google’nun da önerdiği bu yöntemi yapalım.

Öncelikle arka plan renginizi belirleyip colors.xml dosyasına kayıt edin. Ardından açılış ekranında göstereceğiniz logonuzu belirleyip drawable klasörüne koyun. Logonun 144dp ölçülerinde olması tavsiye edilir. Logonun svg’den generate edilen bir xml olması yerine png / jpg bir resim olması daha sağlıklı olacaktır.

Şimdi de açılış ekranımızın tasarımı için drawable klasörü altında splash_screen.xml adlı bir dosya açalım ve içine alttakileri YAZALIM.

Bu kodda splash_company_logo ekranda gözükecek logoyu belirtir. Bu logo ekranın ortasında gözükecektir. splash_company_name ise uygulama ile ilgili bir başlık, yazı, uygulama adı belirtir. Bu tasarımı ihtiyaçlarınıza göre revize edebilirsiniz.

Daha sonra styles.xml içerisinde yeni bir tema oluşturalım. Bu temaya ekranın arkaplanı olarak yukarıda hazırladığımız tasarımı verelim.

Basitçe tasarımınızı ekranda göstermek istiyorsanız Launcher temasını kullanabilirsiniz. Eğer açılışta durum çubuğunun da yok olmasını, uygulamanın tüm ekranı da kaplamasını istiyorsanız LauncherFullScreen temasını kullanabilirsiniz. Burada Launcher temasının parent almak zorunda olması dikkatinizden kaçmasın.

Dayanın son adımlar.

Şimdi hazırladığımız temayı Manifest.xmle gösterelim.

Hazırladığımız temayı .MainActivity’nin teması olarak belirledik. Uygulama açılınca artık bu tema üzerinden açılacaktır. android:theme=“@style/LauncherFullScreen” kod parçacığını ekledik.

Son adım olarak da uygulamamız yüklendikten sonra Ana Temaya geçmek için gerekli kodlarımızı yazalım. Bu SON ADIM.

MainActivty sınıfımızda setTheme fonksiyonu ile uygulamamızın ana temasını yüklüyoruz. Burada setTheme() fonksiyonu çağırırken super.onCreate() fonksiyonundan önce çağırdığımıza dikkat edin.

Uygulamamızı başlattığımızda da aşağıdaki resmi çok az bir süre görürüz ve ana uygulamaya geçeriz. Splash tasarımını görme süremiz cihazdan cihaza, cihaz üzerindeki yükün yoğunluğa göre değişebilir. Örneğin bir S3 mini telefonda uygulama yüklenirken açılış ekranımızın 1–2 saniye kadar gözüktüğünü bir LG G5 telefonda ise çok daha az bir süre gözüktüğünü gözlemledim.

Uygulama çalıştırılınca gözükecek ekran
Uygulamanın çalıştırılması

+Peki sizce bu ikisinde de ortak olan ve gözükmeyen şey ne olabilir?

-Taabbiii kiiii uygulama açılırken ki hoş olmayan beyaz boş sayfa. Problemimizi çözüp amacımıza ulaştığımıza göre bu yazımında sonuna geldik 💚😊.

Uygulama ile ilgili kodlara aşağıdaki linkten erişebilirsiniz.

--

--

Cengiz Toru (🇵🇸 #FreePalestineFromGenocide)
Cengiz Toru (🇵🇸 #FreePalestineFromGenocide)

Written by Cengiz Toru (🇵🇸 #FreePalestineFromGenocide)

(🇵🇸 #FreePalestineFromGenocide 🍉) | Muslim, Computer Engineer & Android Developer @ Hepsiburada (NASDAQ: HEPS ) , ex; Huawei, T-Soft, Arneca

Responses (1)