<!--
{
  "availability" : [
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKInterfaceDevice",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(cs)WKInterfaceDevice"
  },
  "title" : "WKInterfaceDevice"
}
-->

# WKInterfaceDevice

An object that provides information about the user’s Apple Watch.

```
class WKInterfaceDevice
```

## Overview

You can use the information from [`WKInterfaceDevice`](/documentation/WatchKit/WKInterfaceDevice)  to make decisions about the content you display in your app. You can also use this object to play haptic feedback when your app is active.

Do not subclass or create instances of this class yourself. Always call the [`current()`](/documentation/WatchKit/WKInterfaceDevice/current()) class method to get the shared device object.

## Topics

### Accessing the Shared Device Object

[`+  currentDevice`](/documentation/WatchKit/WKInterfaceDevice/current())

Returns the shared device object.

### Reading the Screen Information

[`screenBounds`](/documentation/WatchKit/WKInterfaceDevice/screenBounds)

The bounding rectangle of the screen.

[`screenScale`](/documentation/WatchKit/WKInterfaceDevice/screenScale)

The number of pixels per point for the current screen.

### Reading the Device Settings

[`name`](/documentation/WatchKit/WKInterfaceDevice/name)

The name of the device.

[`model`](/documentation/WatchKit/WKInterfaceDevice/model)

The model information for the device.

[`localizedModel`](/documentation/WatchKit/WKInterfaceDevice/localizedModel)

The localized version of the model information.

[`wristLocation`](/documentation/WatchKit/WKInterfaceDevice/wristLocation)

The wrist on which the user wears the Apple Watch.

[`WKInterfaceDeviceWristLocation`](/documentation/WatchKit/WKInterfaceDeviceWristLocation)

Constants indicating the wrist on which the user wears the Apple Watch.

[`crownOrientation`](/documentation/WatchKit/WKInterfaceDevice/crownOrientation)

The side on which the crown is positioned.

[`WKInterfaceDeviceCrownOrientation`](/documentation/WatchKit/WKInterfaceDeviceCrownOrientation)

Constants indicating the crown orientation from the user’s perspective.

[`preferredContentSizeCategory`](/documentation/WatchKit/WKInterfaceDevice/preferredContentSizeCategory)

The preferred font-sizing option.

### Reading System Information

[`systemName`](/documentation/WatchKit/WKInterfaceDevice/systemName)

The name of the operating system.

[`systemVersion`](/documentation/WatchKit/WKInterfaceDevice/systemVersion)

The version of the operating system.

### Accessing the Layout Direction

[`layoutDirection`](/documentation/WatchKit/WKInterfaceDevice/layoutDirection)

The layout direction of the user interface.

[`+  interfaceLayoutDirectionForSemanticContentAttribute:`](/documentation/WatchKit/WKInterfaceDevice/interfaceLayoutDirection(for:))

Returns the user interface direction for the given semantic content attribute.

[`WKInterfaceSemanticContentAttribute`](/documentation/WatchKit/WKInterfaceSemanticContentAttribute)

A semantic description of the view’s contents, used to determine whether the view should be flipped when switching between left-to-right and right-to-left layouts.

[`WKInterfaceLayoutDirection`](/documentation/WatchKit/WKInterfaceLayoutDirection)

Specifies the directional flow of the user interface.

### Reading Information About the Battery

[`batteryMonitoringEnabled`](/documentation/WatchKit/WKInterfaceDevice/isBatteryMonitoringEnabled)

A Boolean value that determines whether the app can monitor the device’s battery.

[`batteryLevel`](/documentation/WatchKit/WKInterfaceDevice/batteryLevel)

The battery’s current percent charge.

[`batteryState`](/documentation/WatchKit/WKInterfaceDevice/batteryState)

The device’s battery state.

[`WKInterfaceDeviceBatteryState`](/documentation/WatchKit/WKInterfaceDeviceBatteryState)

The battery’s charging state.

### Accessing Water Resistance and Lock

[`waterResistanceRating`](/documentation/WatchKit/WKInterfaceDevice/waterResistanceRating)

The Apple Watch water-resistance rating.

[`WKWaterResistanceRating`](/documentation/WatchKit/WKWaterResistanceRating)

Values indicating the water-resistance rating.

[`waterLockEnabled`](/documentation/WatchKit/WKInterfaceDevice/isWaterLockEnabled)

A Boolean value that indicates whether the water lock is enabled.

[`-  enableWaterLock`](/documentation/WatchKit/WKInterfaceDevice/enableWaterLock())

Disables the Apple Watch touch screen to prevent accidental taps while submerged.

### Playing Haptic Feedback

[`-  playHaptic:`](/documentation/WatchKit/WKInterfaceDevice/play(_:))

Gives haptic feedback to the user.

[`WKHapticType`](/documentation/WatchKit/WKHapticType)

Constant indicating the style of feedback to deliver using haptics.

### Streaming Audio

[`supportsAudioStreaming`](/documentation/WatchKit/WKInterfaceDevice/supportsAudioStreaming)

A Boolean value that indicates whether the device supports audio streaming.

### Validating In-App Purchases

[`identifierForVendor`](/documentation/WatchKit/WKInterfaceDevice/identifierForVendor)

An alphanumeric string that uniquely identifies a device to the app’s vendor.

## Relationships

### Conforms To

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)