---
title: "init(make:update:placeholder:)"
framework: realitykit
role: symbol
role_heading: Initializer
path: "realitykit/realityview/init(make:update:placeholder:)"
---

# init(make:update:placeholder:)

Creates a reality view for iOS and macOS, with an optional update closure and placeholder view.

## Declaration

```swift
nonisolated init<P>(make: @escaping @MainActor @Sendable (inout RealityViewCameraContent) async -> Void, update: (@MainActor (inout RealityViewCameraContent) -> Void)? = nil, @ViewBuilder placeholder: () -> P) where Content == RealityViewCameraContent.Body<P>, P : View
```

## Parameters

- `make`: An asynchronous closure that configures the initial content of the new RealityView. This closure is asynchronous to keep your app’s UI responsive while you load content to populate this view.
- `update`: An optional closure that updates the RealityView instance’s content as the view’s state changes.
- `placeholder`: A temporary view that the doc://com.apple.RealityKit/documentation/RealityKit/RealityView displays until your closure for the make parameter completes. For example, you can display a loading indicator with a doc://com.apple.documentation/documentation/SwiftUI/ProgressView instance as a placeholder.

## Discussion

Discussion For example, your app can asynchronously load an Entity from a .reality or .usdz file, and display a ProgressView while the system loads the file: RealityView { content in     if let newEntity = try? await Entity(named: "model_file_name") {         content.add(newEntity)     } } placeholder: {     ProgressView() }
