IOS App Lifecycle

Configure AppDelegate, SceneDelegate, deep linking, and background tasks. Use when configuring iOS app lifecycle, deep linking, or background task scheduling.

HoangNguyen0403 Updated 542 repo stars

File contents

iOS App Lifecycle

Priority: P0 (CRITICAL)

Implementation Workflow

  1. Configure SceneDelegate — Use for UI windows and scene-specific state in iOS 13+.
  2. Keep AppDelegate slim — Focus on app-wide setup (DI, Analytics, Push registration). Move initialization logic to dedicated Bootstrapper or AppCoordinator.
  3. Handle deep links — Prefer Universal Links over custom URL schemes. Handle via scene(_:continue:userActivity:). Route through Root Coordinator.
  4. Schedule background tasks — Use BGTaskScheduler for periodic data refresh. Always handle expirationHandler to avoid system kill.

See bootstrapper pattern and background task examples

Anti-Patterns

  • No Complex AppDelegate Logic: Delegate to Bootstrapper service
  • No Manual AppDelegate UIWindow: Use SceneDelegate for iOS 13+
  • No Sync Launch Network: Move all launch calls to background threads

References

  • Lifecycle & Background Tasks

HoangNguyen0403/agent-skills-standard/tree/main/skills/ios/ios-app-lifecycle commit e30aa2195e

Frequently asked questions

npx skillmds@latest add hoangnguyen0403/ios-app-lifecycle