---
title: View fundamentals
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/view-fundamentals
---

# View fundamentals

Define the visual elements of your app using a hierarchy of views.

## Overview

Overview Views are the building blocks that you use to declare your app’s user interface. Each view contains a description of what to display for a given state. Every bit of your app that’s visible to the user derives from the description in a view, and any type that conforms to the View protocol can act as a view in your app.

Compose a custom view by combining built-in views that SwiftUI provides with other custom views that you create in your view’s body computed property. Configure views using the view modifiers that SwiftUI provides, or by defining your own view modifiers using the ViewModifier protocol and the modifier(_:) method.

## Topics

### Creating a view

- [Declaring a custom view](swiftui/declaring-a-custom-view.md)
- [Wishlist: Planning travel in a SwiftUI app](swiftui/wishlist-planning-travel-in-a-swiftui-app.md)
- [View](swiftui/view.md)
- [ContentBuilder](swiftui/contentbuilder.md)
- [ViewBuilder](swiftui/viewbuilder.md)

### Modifying a view

- [Configuring views](swiftui/configuring-views.md)
- [Reducing view modifier maintenance](swiftui/reducing-view-modifier-maintenance.md)
- [modifier(_:)](swiftui/view/modifier(_:).md)
- [ViewModifier](swiftui/viewmodifier.md)
- [EmptyModifier](swiftui/emptymodifier.md)
- [ModifiedContent](swiftui/modifiedcontent.md)
- [EnvironmentalModifier](swiftui/environmentalmodifier.md)
- [ManipulableModifier](swiftui/manipulablemodifier.md)
- [ManipulableResponderModifier](swiftui/manipulablerespondermodifier.md)
- [ManipulableTransformBindingModifier](swiftui/manipulabletransformbindingmodifier.md)
- [ManipulationGeometryModifier](swiftui/manipulationgeometrymodifier.md)
- [ManipulationGestureModifier](swiftui/manipulationgesturemodifier.md)
- [ManipulationUsingGestureStateModifier](swiftui/manipulationusinggesturestatemodifier.md)
- [Manipulable](swiftui/manipulable.md)

### Responding to view life cycle updates

- [onAppear(perform:)](swiftui/view/onappear(perform:).md)
- [onDisappear(perform:)](swiftui/view/ondisappear(perform:).md)

### Assigning tasks

- [task(id:name:executorPreference:priority:file:line:_:)](swiftui/view/task(id:name:executorpreference:priority:file:line:_:).md)
- [task(id:name:priority:file:line:_:)](swiftui/view/task(id:name:priority:file:line:_:).md)
- [task(name:executorPreference:priority:file:line:action:)](swiftui/view/task(name:executorpreference:priority:file:line:action:).md)
- [task(name:priority:file:line:_:)](swiftui/view/task(name:priority:file:line:_:).md)

### Managing the view hierarchy

- [id(_:)](swiftui/view/id(_:).md)
- [tag(_:includeOptional:)](swiftui/view/tag(_:includeoptional:).md)
- [equatable()](swiftui/view/equatable().md)

### Supporting content types

- [EmptyContent](swiftui/emptycontent.md)
- [TupleContent](swiftui/tuplecontent.md)

### Supporting view types

- [AnyView](swiftui/anyview.md)
- [EmptyView](swiftui/emptyview.md)
- [EquatableView](swiftui/equatableview.md)
- [SubscriptionView](swiftui/subscriptionview.md)
- [TupleView](swiftui/tupleview.md)

## See Also

### Views

- [View configuration](swiftui/view-configuration.md)
- [View styles](swiftui/view-styles.md)
- [Animations](swiftui/animations.md)
- [Text input and output](swiftui/text-input-and-output.md)
- [Images](swiftui/images.md)
- [Controls and indicators](swiftui/controls-and-indicators.md)
- [Menus and commands](swiftui/menus-and-commands.md)
- [Shapes](swiftui/shapes.md)
- [Drawing and graphics](swiftui/drawing-and-graphics.md)
