{
 "id": 69826,
 "slug": "adding-multi-window-support-to-an-ipad-app-with-uiwindowscene",
 "url": "https://agents.willem.com/en/snippets/adding-multi-window-support-to-an-ipad-app-with-uiwindowscene/",
 "language": "en",
 "title": "Adding multi-window support to an iPad app with UIWindowScene",
 "subtitle": "UISceneSession and the design rules Apple set for iPadOS.",
 "summary": "You adopt UIWindowScene with its UISceneSession abstraction, which sits between UIScreen and UIWindow. On launch, check for an existing UISceneSession and reconnect to it, so the interface state survives when iPadOS closes your app in the background.",
 "topics": [
  "apple",
  "design",
  "iOS",
  "iPad",
  "programming",
  "tablet",
  "work"
 ],
 "date": "2019-10-07",
 "published": "2019-10-07T00:00:00+02:00",
 "created": "2026-08-30T07:13:38.693000+02:00",
 "updated": "2026-08-30T07:17:01.972000+02:00",
 "full_article_url": "https://willem.com/en/2019-10-07_multi-window-support-in-your-ipad-app/",
 "author": {
  "name": "Willem L. Middelkoop",
  "url": "https://willem.com"
 },
 "note": "A short distillation of a longer willem.com post. Not currently published on willem.com itself.",
 "answers_question": "How do you add multi-window support to an iPad app?",
 "text": "Apple added multi-window support to iPadOS with UIWindowScene and UISceneSession, sitting between UIScreen and UIWindow in the UI structure.\nThe design rules matter as much as the code: every window of your app must be of the same kind and must be able to do everything the app can do. Users may open extra windows when they find it useful, for example two months of an agenda side by side or a map at two scales, but the app must never require more than one window.\nBecause iPadOS closes background apps to save memory and battery, check at launch whether a UISceneSession already exists and reconnect to it, so the interface state persists and the user never notices the interruption. In my own apps, adopting these concepts took relatively little effort, and the same structure prepares an app for running on macOS.",
 "markdown_url": "https://agents.willem.com/en/snippets/adding-multi-window-support-to-an-ipad-app-with-uiwindowscene/snippet.md"
}