<!--
{
  "availability" : [
    "watchOS: 2.0.0 - 9.2.0"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKExtensionDelegate/applicationDidFinishLaunching()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(pl)WKExtensionDelegate(im)applicationDidFinishLaunching"
  },
  "title" : "applicationDidFinishLaunching()"
}
-->

# applicationDidFinishLaunching()

Tells the delegate that the launch process is almost done and the extension is almost ready to run.

```
optional func applicationDidFinishLaunching()
```

## Discussion

WatchKit calls this method after the launch cycle has finished and before your app’s interface is active. Use this method to complete your WatchKit extension’s initialization and prepare it to run. For example, a page-based app could use this method to call the [`reloadRootControllers(withNames:contexts:)`](/documentation/WatchKit/WKInterfaceController/reloadRootControllers(withNames:contexts:)) method to specify the initial set of interface controllers to display.

> Note:
> When creating an app that uses the SwiftUI <doc://com.apple.documentation/documentation/SwiftUI/App> protocol to manage your life cycle, use the <doc://com.apple.documentation/documentation/SwiftUI/View/onChange(of:perform:)> modifier and the <doc://com.apple.documentation/documentation/SwiftUI/EnvironmentValues/scenePhase> environment value to monitor life cycle changes when possible. For more information, see <doc://com.apple.documentation/documentation/watchOS-Apps/building_a_watchos_app>.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)