Örnek sorular
Mobile Ui LifecycleZorluk 1
Mobil uygulama lifecycle terimlerinde "foreground" (ön plan) durumu ne anlama gelir?
- aSüreç var ama hiç penceresi yok
- bEkranda görünür ve kullanıcı girdisi alıyor✓
- cSüreç bellekten tamamen kaldırılmış
- dUygulama ilk açılıştan önce hâlâ derleniyor
Açıklama:Foreground, uygulamanın arayüzünün ekranda olup kullanıcı girdisi aldığı durumdur; background'da (görünmez ama süreç canlı) veya terminated'da (süreç yok) bu geçerli değildir.
Mobile Ui LifecycleZorluk 2
Kullanıcı bir ekran açıkken ana ekran (home) tuşuna basıyor. Hemen ardından uygulamanın sürecine genelde ne olur?
- aBir saniye içinde kesinlikle sonlanır
- bSonraki home basışında sıfırdan başlar
- cBellek boşaltmak için çökmeye zorlanır
- dArka plana geçer, sistem geri alana kadar canlı kalır✓
Açıklama:Home'a basmak genelde uygulamayı arka plana alır; süreç (kısıtlamalarla) çalışmaya devam eder, sistem belleğe ihtiyaç duyup sonlandırmaya karar verene kadar.
Mobile Ui LifecycleZorluk 2
Bir uygulama, kullanıcı o ekrandayken açık bir kamera kaynağı tutuyor. Arka plana geçerken kamerayı neden serbest bırakmalı?
- aArka plandaki uygulama zaten genelde kullanamaz; tutmak pil israfı✓
- bKameralar donanım seviyesinde otomatik kapanır
- cSerbest bırakmak sadece kozmetiktir, gerçek etkisi yok
- dKamera erişimi lifecycle ile hiç ilgili değildir
Açıklama:Kamera/sensör gibi hassas donanım kaynakları arka plana geçişte serbest bırakılmalı çünkü arka plandaki uygulama zaten genelde bunları kullanamaz ve tutmak pil israfı yaratıp diğer uygulamaları engelleyebilir.
Mobile Ui LifecycleZorluk 1
Uygulama lifecycle bağlamında "state restoration" (durum geri yükleme) nedir?
- aGüncelleme sonrası kaynak kodu yeniden derlemek
- bTüm tercihleri fabrika ayarlarına sıfırlamak
- cYeniden açılışta ekranı/veriyi geri getirmek✓
- dKullanıcıyı güvenlik için otomatik çıkışa zorlamak
Açıklama:State restoration, sistem tarafından öldürülmenin ardından süreç yeniden başlatıldığında kullanıcıyı kaldığı ekrana, scroll konumuna ve girdiği veriye geri döndürmek anlamına gelir.
Mobile Ui LifecycleZorluk 2
Kullanıcı açısından "arka plandaki" bir uygulama ile "sonlandırılmış" bir uygulama arasındaki temel pratik fark nedir?
- aHiçbir durumda gözlemlenebilir fark yoktur
- bArka plandaki anında devam eder, sonlandırılmış durumu yeniden kurar✓
- cSonlandırılmış ağ isteklerini çalıştırmaya devam eder, arka plandaki etmez
- dArka plandaki form girdisini her zaman kaybeder, sonlandırılmış asla kaybetmez
Açıklama:Arka plandaki süreç belleğini (değişkenler, view durumu) korur, bu yüzden geri dönüş anındadır. Sonlandırılmış uygulamanın süreci kalmadığından yeniden başlatma her şeyi (kurtarılan durum hariç) sıfırdan kurmak demektir.
Mobile Ui LifecycleZorluk 2
Ekran lifecycle olayları garantili bir sırayla tetiklenir (ör. "odağı kaybetmek üzere" "arka plana girdi"den önce). Bu neden önemlidir?
- aTemizlik doğru aşamaya güvenilir yerleştirilir✓
- bYalnızca otomatik UI test araçları için önemlidir
- cUygulamanın asla sonlandırılmayacağını garanti eder
- dKaynak serbest bırakma ihtiyacını tamamen kaldırır
Açıklama:Framework sabit bir olay sırası garantilediği için geliştiriciler belirli temizlik/kaydetme mantığını doğru callback'e koyup bunun bir sonraki aşamadan önce her zaman çalışacağına güvenebilir, tahmin etmek zorunda kalmaz.