---
title: Documents
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/documents
---

# Documents

Enable people to open and manage documents.

## Overview

Overview Create a user interface for opening and editing documents.

Use the ReadableDocument and WritableDocument protocols to define your document model. They give you direct access to file URLs, integrate with Swift concurrency, and support progress reporting. For simpler documents, you can use the FileDocument protocol, which handles serialization through a FileWrapper. You can also use SwiftData-backed documents using an initializer like init(editing:contentType:editor:prepareDocument:). SwiftUI supports standard behaviors people expect from a document-based app, appropriate for each platform, like multiwindow support, open and save panels. For related design guidance, see Patterns in the Human Interface Guidelines.

## Topics

### Creating a document

- [Building a document-based app with SwiftUI](swiftui/building-a-document-based-app-with-swiftui.md)
- [Building a document-based app using SwiftData](swiftui/building-a-document-based-app-using-swiftdata.md)
- [DocumentGroup](swiftui/documentgroup.md)

### Storing document data in a value type

- [FileDocument](swiftui/filedocument.md)
- [FileDocumentConfiguration](swiftui/filedocumentconfiguration.md)

### Storing document data in a reference type instance

- [ReadableDocument](swiftui/readabledocument.md)
- [WritableDocument](swiftui/writabledocument.md)
- [URLDocumentConfiguration](swiftui/urldocumentconfiguration.md)
- [DocumentCreationContext](swiftui/documentcreationcontext.md)
- [DocumentBaseBox](swiftui/documentbasebox.md)

### Accessing document configuration

- [documentConfiguration](swiftui/environmentvalues/documentconfiguration.md)
- [DocumentConfiguration](swiftui/documentconfiguration.md)
- [undoManager](swiftui/environmentvalues/undomanager.md)

### Reading and writing documents

- [DocumentReadConfiguration](swiftui/documentreadconfiguration.md)
- [DocumentWriteConfiguration](swiftui/documentwriteconfiguration.md)
- [FileDocumentReadConfiguration](swiftui/filedocumentreadconfiguration.md)
- [FileDocumentWriteConfiguration](swiftui/filedocumentwriteconfiguration.md)
- [DocumentReader](swiftui/documentreader.md)
- [DocumentWriter](swiftui/documentwriter.md)
- [FileWrapperDocumentReader](swiftui/filewrapperdocumentreader.md)
- [FileWrapperDocumentWriter](swiftui/filewrapperdocumentwriter.md)

### Opening a document programmatically

- [newDocument](swiftui/environmentvalues/newdocument.md)
- [NewDocumentAction](swiftui/newdocumentaction.md)
- [openDocument](swiftui/environmentvalues/opendocument.md)
- [OpenDocumentAction](swiftui/opendocumentaction.md)

### Configuring the document launch experience

- [DocumentGroupLaunchScene](swiftui/documentgrouplaunchscene.md)
- [DocumentLaunchView](swiftui/documentlaunchview.md)
- [documentBrowserContextMenu(_:)](swiftui/view/documentbrowsercontextmenu(_:).md)
- [DocumentLaunchGeometryProxy](swiftui/documentlaunchgeometryproxy.md)
- [DefaultDocumentGroupLaunchActions](swiftui/defaultdocumentgrouplaunchactions.md)
- [NewDocumentButton](swiftui/newdocumentbutton.md)
- [NewDocumentButtonDataSource](swiftui/newdocumentbuttondatasource.md)
- [DefaultNewDocumentButtonLabel](swiftui/defaultnewdocumentbuttonlabel.md)
- [DocumentCreationSource](swiftui/documentcreationsource.md)

### Renaming a document

- [RenameButton](swiftui/renamebutton.md)
- [renameAction(_:)](swiftui/view/renameaction(_:).md)
- [rename](swiftui/environmentvalues/rename.md)
- [RenameAction](swiftui/renameaction.md)

### Deprecated

- [ReferenceFileDocument](swiftui/referencefiledocument.md)
- [ReferenceFileDocumentConfiguration](swiftui/referencefiledocumentconfiguration.md)

## See Also

### App structure

- [App organization](swiftui/app-organization.md)
- [Scenes](swiftui/scenes.md)
- [Windows](swiftui/windows.md)
- [Immersive spaces](swiftui/immersive-spaces.md)
- [Navigation](swiftui/navigation.md)
- [Modal presentations](swiftui/modal-presentations.md)
- [Toolbars](swiftui/toolbars.md)
- [Search](swiftui/search.md)
- [App extensions](swiftui/app-extensions.md)
