Qual è il ciclo di vita delle app in iOS?

Non in esecuzione

L'app non è stata lanciata o era in esecuzione ma è stata terminata dal sistema.

Inattivo

L'app è in esecuzione in primo piano ma attualmente non riceve eventi. (Un'app di solito rimane in questo stato solo brevemente, mentre passa ad un altro stato.

Active

L'app è in esecuzione in primo piano e sta ricevendo eventi. Questa è la modalità normale per le app in primo piano.

Background

L'app è in background e sta eseguendo del codice. La maggior parte delle app entrano brevemente in questo stato mentre vengono sospese. Tuttavia, un'app che richiede un tempo di esecuzione extra può rimanere in questo stato per un periodo di tempo. Inoltre, un'app che viene lanciata direttamente in background entra in questo stato invece che in quello inattivo. Per informazioni su come eseguire codice in background, vedi Esecuzione in background.

Sospeso

L'app è in background ma non sta eseguendo codice. Il sistema sposta le app in questo stato automaticamente e non le notifica prima di farlo. Mentre è sospesa, un'app rimane in memoria ma non esegue alcun codice.

Quando si verifica una condizione di bassa memoria, il sistema può eliminare le app sospese senza preavviso per fare più spazio alle app in primo piano.

Metodi del ciclo di vita delle app.

Quando un'app iOS viene lanciata la prima cosa chiamata è

application: willFinishLaunchingWithOptions:-> Bool. Questo metodo è destinato alla configurazione iniziale dell'applicazione. Gli storyboard sono già stati caricati a questo punto, ma il ripristino dello stato non è ancora avvenuto.

Lancio

  • application: didFinishLaunchingWithOptions: -> Bool è chiamato dopo. Questo metodo di callback viene chiamato quando l'applicazione ha finito di lanciare e ripristinare lo stato e può fare l'inizializzazione finale come la creazione dell'UI.
  • applicationWillEnterForeground: viene chiamato dopo application: didFinishLaunchingWithOptions: o se l'applicazione diventa di nuovo attiva dopo aver ricevuto una telefonata o altre interruzioni del sistema.
  • applicationDidBecomeActive: è chiamato dopo applicationWillEnterForeground: per finire la transizione in primo piano.

Terminazione

  • applicationWillResignActive: è chiamato quando l'app sta per diventare inattiva (per esempio, quando il telefono riceve una chiamata o l'utente preme il tasto Home).
  • applicationDidEnterBackground: è chiamato quando la tua app entra in uno stato di background dopo essere diventata inattiva. Hai circa cinque secondi per eseguire qualsiasi compito necessario per fare il backup nel caso in cui l'app venga terminata più tardi o subito dopo.
  • applicationWillTerminate: viene chiamata quando la tua app sta per essere eliminata dalla memoria. Chiama qualsiasi pulizia finale qui.

Sia application: willFinishLaunchingWithOptions: che application: didFinishLaunchingWithOptions: possono potenzialmente essere lanciati con opzioni che identificano che l'app è stata chiamata per gestire una notifica push o un url o altro. Dovete restituire true se la vostra app può gestire l'attività o l'url dato.

Conoscere il ciclo di vita della vostra app è importante per inizializzare e impostare correttamente la vostra app e gli oggetti. Non c'è bisogno di eseguire tutto in application: didFinishLaunchingWithOptions, che spesso diventa un lavandino da cucina di setup e inizializzazione di qualche tipo.

Per maggiori dettagli fate riferimento ai seguenti link.

IOS Application Life Cycle - ansu jain - Medium

The App Life Cycle