AppDelegate is a protocol which defines methods that are called by the singleton UIApplication object in response to important events in the lifetime of an app.
Normally used to perform tasks on application startup (setup app environment, analitycs (ex.: Mixpanel/GoogleAnalytics/Crashlitics), DB stack etc.) and shutdown (ex.: save DB context), handling URL open requests and similar application-wide tasks.