---
title: WKInterfaceObjectRepresentable
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/wkinterfaceobjectrepresentable
---

# WKInterfaceObjectRepresentable

A view that represents a WatchKit interface object.

## Declaration

```swift
@MainActor @preconcurrency protocol WKInterfaceObjectRepresentable : View where Self.Body == Never
```

## Overview

Overview Use a WKInterfaceObjectRepresentable instance to create and manage a WKInterfaceObject in your SwiftUI interface. Adopt this protocol in one of your app’s custom instances, and use its methods to create, update, and tear down your interface object. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your interface object with your app’s current state information. Use the teardown process to remove your interface object cleanly from your SwiftUI. For example, you might use the teardown process to notify other parts of your app that the interface object is disappearing. To add your interface object into your SwiftUI interface, create your WKInterfaceObjectRepresentable instance and add it to your SwiftUI interface. The system calls the methods of your representable instance at appropriate times to create and update the interface object. The system doesn’t automatically communicate changes occurring within your interface object to other parts of your SwiftUI interface. When you want your interface object to coordinate with other SwiftUI views, you must provide a Coordinator instance to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your interface object to any SwiftUI views.

## Topics

### Creating and updating the interface object

- [makeWKInterfaceObject(context:)](swiftui/wkinterfaceobjectrepresentable/makewkinterfaceobject(context:).md)
- [updateWKInterfaceObject(_:context:)](swiftui/wkinterfaceobjectrepresentable/updatewkinterfaceobject(_:context:).md)
- [WKInterfaceObjectRepresentable.Context](swiftui/wkinterfaceobjectrepresentable/context.md)

### Cleaning up the interface object

- [dismantleWKInterfaceObject(_:coordinator:)](swiftui/wkinterfaceobjectrepresentable/dismantlewkinterfaceobject(_:coordinator:).md)

### Providing a custom coordinator object

- [makeCoordinator()](swiftui/wkinterfaceobjectrepresentable/makecoordinator().md)
- [Coordinator](swiftui/wkinterfaceobjectrepresentable/coordinator.md)
- [WKInterfaceObjectType](swiftui/wkinterfaceobjectrepresentable/wkinterfaceobjecttype.md)

## Relationships

### Inherits From

- [View](swiftui/view.md)

## See Also

### Adding WatchKit views to SwiftUI view hierarchies

- [WKInterfaceObjectRepresentableContext](swiftui/wkinterfaceobjectrepresentablecontext.md)
