Junior
Bir iOS uygulamasının yaşam döngüsü hakkında bilgi verebilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Uygulama aşağıdaki durumlardan geçer:
- Çalışmıyor: Uygulama başlatılmamış.
- Pasif: Uygulama çalışıyor, ancak olayları almıyor (örneğin, gelen bir arama sırasında veya arka plana geçerken).
- Aktif: Uygulama aktif ve tamamen fonksiyonel. Tüm olayları alır.
- Arka Plan: Uygulama arka plan modundadır. Sınırlı kod çalıştırabilir veya askıya alınabilir.
- Askıya Alınmış: Arka plan modundaki uygulama, sistem tarafından kaynak tasarrufu için durdurulmuştur.
Durumlar arasındaki geçişler ve bunlarla ilişkili olaylar sistem çerçevesi UIKit (veya SwiftUI) ve uygulama delegesi (UIApplicationDelegate veya @main Struct SwiftUI'de) tarafından yönetilir.
Uygulama delegesinin temel yöntemleri:
application:didFinishLaunchingWithOptions:: Uygulama başlatıldı.applicationDidBecomeActive:: Uygulama aktif hale geldi.applicationWillResignActive:: Uygulama aktif durumdan çıkıyor (örneğin, gelen bir arama sırasında).applicationDidEnterBackground:: Uygulama arka plana geçti.applicationWillEnterForeground:: Uygulama arka plandan ön plana geçti.applicationWillTerminate:: Uygulama sonlandırıldı.
App Delegate'da kullanım örneği:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Uygulama başlatıldığında çalışır
print("Uygulama başlatıldı")
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Uygulama aktif hale geldi
print("Uygulama aktif hale geldi")
}
func applicationWillResignActive(_ application: UIApplication) {
// Uygulama aktif durumdan çıkıyor
print("Uygulama aktif durumdan çıkıyor")
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Uygulama arka plana geçti
print("Uygulama arka plana geçti")
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Uygulama ön plana geçti
print("Uygulama ön plana geçti")
}
func applicationWillTerminate(_ application: UIApplication) {
// Uygulama sonlandırıldı
print("Uygulama sonlandırıldı")
}
}
SwiftUI'da yaşam döngüsü, @main ile yapılandırılan yapı ve onAppear, onDisappear, onChange gibi metodlarla yönetilir. Ayrıca, ortam değerleri (Environment Values) sahne durumunu (ScenePhase) izlemeye olanak tanır.
import SwiftUI
@main
struct MyApp: App {
@Environment(\.scenePhase) var scenePhase // Sahne durumunu izleme
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: scenePhase) { newPhase in
if newPhase == .active {
// Sahne aktif hale geldi
print("Sahne aktif hale geldi")
} else if newPhase == .inactive {
// Sahne inaktif hale geldi
print("Sahne inaktif hale geldi")
} else if newPhase == .background {
// Sahne arka plana geçti
print("Sahne arka plana geçti")
}
}
}
}