Ciclo di vita dell'app
: Ciclo dall'avvio dell'app allo spegnimento
: Usabilità gestendo la memoria o i dati ⬆️ La sicurezza può essere elaborata
UIApplication, AppDelegate
situazione: definisce le funzioni che l'oggetto AppDelegate riceve il messaggio inviato dall'oggetto UIApplication e le esegue ciascuna
Non in esecuzione: lo stato in cui l'app non è in esecuzione
Inattivo: lo stato in cui l'app è in esecuzione ma non vengono ricevuti eventi
Attivo: lo stato in cui l'app è in esecuzione e si verifica un evento
Sfondo: lo stato in cui l'app è in background ma il codice che viene eseguito
Sospeso: lo stato in cui l'app è in background e non esegue alcun codice
funzioni delegate nel file AppDelegate.swift
application(_:didFinishLaunching:) Run when the app first starts
applicationWillResignActive: - Executed when the app is moved from active to inactive
applicationDidEnterBackground: - Run when the app is in the background
applicationWillEnterForeground: - Executes when the app is moved from the background to the foreground (not yet running in the foreground)
applicationDidBecomeActive: - When the app is active and running
applicationWillTerminate: - Run when app closes
SceneDelegate
Per rispondere bene alla funzione scene multiple supportata da iOS 13 in poi
AppDelegate/SceneDelegate
AppDelegate
1. func application(_: didFinishLaunchingWithOptions: ) -> Bool
La configurazione dell'applicazione procede in questo modo.
2. func application(_: configurationForConnecting:options: ) -> UISceneConfiguration
Questo metodo viene chiamato quando l'applicazione vuole fornire una nuova scena/finestra.
3. func application(_: didDiscardSceneSessions: )
Chiamato quando l'utente abbandona la scena.
SceneDelegate
1. scena(_: willConnectTo: opzioni: )
Questo è il primo metodo chiamato nel ciclo di vita di UISceneSession. Crea la prima visualizzazione del contenuto, una nuova UIWindow, e imposta il rootViewController della finestra.
(finestra: il viewport in cui funziona l'app)
2. sceneWillEnterForeground(_ :)
Chiamato quando la scena passa in primo piano.
1) Quando sfondo → primo piano
2) Quando diventa attivo per la prima volta
3. scenaDidBecomeActive(_ :)
Chiamato durante la transizione da inattivo → attivo.
4. sceneWillResignActive(_ :)
Chiamato quando attivo → transizioni inattive.
ex) Situazione del cambio di app
5. scenaDidEnterBackground(_ :)
Chiamato quando la scena passa dal primo piano allo sfondo.
Salva le informazioni sullo stato in modo che possano essere ripristinate quando tornerai in primo piano la volta successiva, salva i dati o restituisci risorse condivise.
6. sceneDidDisconnect(_ :)
Quando la scena entra in secondo piano, c'è la possibilità che il sistema si disconnette per liberare risorse.
(disconnect: la sessione è disconnessa / non significa che l'app è terminata )