On iOS 13 and later, applications can support multiple windows on iPad. This is a welcome addition and it takes multitasking to another level on iPad. On iOS 12 and earlier, applications manage one user interface and, typically, one window. To add support for multiple windows, Apple was forced to drastically redesign the application and user interface life cycles on iOS.
In the previous episode, we created a scene-based application using Xcode’s new Single View App template. The target’s Info.plist contains a key with name Application Scene Manifest, indicating that the application adopts the scene-based API. The value is a dictionary with two keys, Enable Multiple Windows and Scene Configuration. The value of Enable Multiple Windows is set to NO by default.
State restoration is an essential component of scene-based applications. Apple introduced view-controller-based state restoration several years ago in iOS 6. The company deprecated view-controller-based state restoration in iOS 13 in favor of user-activity-based state restoration. In this episode, you learn what user-activity-based state restoration is and how you can adopt it in your projects.
The scene-based API has confused many developers, especially those new to the platform. I hope the previous episodes have given you the foundation you need to use the API in your own projects. In this episode, I show you how dependency injection and the coordinator pattern fit into the scene-based API.