What problem does it solve?
Background work scheduling is unreliable unless identifiers, capabilities, and task completion semantics are implemented correctly, which can cause tasks to never run or fail silently.
Core Features & Use Cases
- BGTaskScheduler registration and scheduling for BGAppRefreshTask and BGProcessingTask, including correct Info.plist permitted identifiers and background modes.
- Expiration-safe execution using expirationHandler cancellation and guaranteed task.setTaskCompleted(success:) on all paths.
- Long-running and continued processing support via BGContinuedProcessingTask (iOS 26+) with progress reporting, plus background URLSession downloads and background push-triggered fetches.
Use case: A MedAT app needs to periodically refresh lightweight training data, perform maintenance cleanup when the device is idle/charging, and reliably download or update content even when the app is not in the foreground.
Quick Start
Follow the sections on Info.plist permitted identifiers, background mode capabilities, and the required task completion + expirationHandler patterns for each task type you plan to use.