Sobes.tech
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")
            }
        }
    }
}