<!--
{
  "documentType" : "article",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/Previews-in-Xcode",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Previews in Xcode"
}
-->

# Previews in Xcode

Generate dynamic, interactive previews of your custom views.

## Overview

When you create a custom [`View`](/documentation/SwiftUI/View) with SwiftUI,
Xcode can display a preview of the view’s content
that stays up-to-date as you make changes to the view’s code.
You use one of the preview macros — like [`Preview(_:body:)`](/documentation/SwiftUI/Preview(_:body:)) —
to tell Xcode what to display.
Xcode shows the preview in a canvas beside your code.

![](images/com.apple.SwiftUI/previews-in-xcode-hero@2x.png)

Different preview macros enable different kinds of configuration.
For example, you can add traits that affect the preview’s
appearance using the [`Preview(_:traits:_:body:)`](/documentation/SwiftUI/Preview(_:traits:_:body:)) macro
or add custom viewpoints for the preview using the
[`Preview(_:traits:body:cameras:)`](/documentation/SwiftUI/Preview(_:traits:body:cameras:)) macro. You can also check how
your view behaves inside a specific scene type. For example, in visionOS
you can use the [`Preview(_:immersionStyle:traits:body:)`](/documentation/SwiftUI/Preview(_:immersionStyle:traits:body:)) macro to
preview your view inside an [`ImmersiveSpace`](/documentation/SwiftUI/ImmersiveSpace).

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/Xcode/previewing-your-apps-interface-in-xcode>

### Creating a preview

[`Preview(_:body:)`](/documentation/SwiftUI/Preview(_:body:))

Creates a preview of a SwiftUI view.

[`Preview(_:traits:_:body:)`](/documentation/SwiftUI/Preview(_:traits:_:body:))

Creates a preview of a SwiftUI view using the specified traits.

[`Preview(_:traits:body:cameras:)`](/documentation/SwiftUI/Preview(_:traits:body:cameras:))

Creates a preview of a SwiftUI view using the specified traits and custom
viewpoints.

[`Preview(_:traits:arguments:body:)`](/documentation/SwiftUI/Preview(_:traits:arguments:body:))

Creates a group of previews of a parameterized SwiftUI view, varying its inputs
over the provided arguments.

### Customizing a preview

[`Previewable()`](/documentation/SwiftUI/Previewable())

Tag allowing a dynamic property to appear inline in a preview.

[`PreviewModifier`](/documentation/SwiftUI/PreviewModifier)

A type that defines an environment in which previews can appear.

[`PreviewModifierContent`](/documentation/SwiftUI/PreviewModifierContent)

The type-erased content of a preview.

### Creating a preview in the context of a scene

[`Preview(_:immersionStyle:traits:body:)`](/documentation/SwiftUI/Preview(_:immersionStyle:traits:body:))

Creates a preview of a SwiftUI view in an immersive space.

[`Preview(_:immersionStyle:traits:body:cameras:)`](/documentation/SwiftUI/Preview(_:immersionStyle:traits:body:cameras:))

Creates a preview of a SwiftUI view in an immersive space with custom
viewpoints.

[`Preview(_:windowStyle:traits:body:)`](/documentation/SwiftUI/Preview(_:windowStyle:traits:body:))

Creates a preview of a SwiftUI view in a window.

[`Preview(_:windowStyle:traits:body:cameras:)`](/documentation/SwiftUI/Preview(_:windowStyle:traits:body:cameras:))

Creates a preview of a SwiftUI view in a window with custom viewpoints.

### Building in debug mode

[`DebugReplaceableView`](/documentation/SwiftUI/DebugReplaceableView)

Erases view opaque result types in debug builds.

### Deprecated

[Deprecated](/documentation/SwiftUI/Previews-deprecated)

Review deprecated preview symbols and their replacements.



---

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)