Débutons avec le mode arrière-plan
lorsque l'utilisateur n'utilise pas activement l'app pendant une longue période, le système passe à l'état d'arrière-plan.
et l'état d'arrière-plan arrête simplement le flux et suspend l'app. Suspendre l'app est le moyen d'augmenter l'autonomie de la batterie.
L'état d'arrière-plan permet à l'app de télécharger et de traiter régulièrement de petites quantités de contenu à partir du réseau.
Passons par xcode
Créer un nouveau projet Single View App
Hotkey : shift + command + N
Ajouter une capacité de mode d'arrière-plan
- Choisir le projet
- Ouvrir les capacités de la cible
- Activer les modes d'arrière-plan
- Check Background fetch
Open AppDelegate.swift file.
Modify code in file.
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Setup Fetch Interval
UIApplication.shared.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
return true
}
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Create url which from we will get fresh data
if let url = URL(string: "Professionals developers in the IT sector") {
// Send request
URLSession.shared.dataTask(with: url, completionHandler: { (data, respone, error) in
// Check Data
guard let `data` = data else { completionHandler(.failed); return }
// Get result from data
let result = String(data: data, encoding: .utf8)
// Print result into console
print("performFetchWithCompletionHandler result: (String(describing: result))")
// Call background fetch completion with .newData result
completionHandler(.newData)
}).resume()
}
}
}
Run on simulator.
Yes. Now is nothing happened. We need to simulate bg fetch.
Simulate Background Fetch.
Test Background Fetch without App Starting
Setup application scheme
- Open scheme settings
- Open Options tab
- Check Background Fetch