Documents
Enable people to open and manage documents.
Overview
Create a user interface for opening and editing documents.
[Image]
Use the ReadableDocument and WritableDocument protocols to define your document model, or adopt Document, a convenience protocol that combines both, when your document needs to support reading and writing. They give you direct access to file URLs, integrate with Swift concurrency, and support progress reporting. 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
Creating a document-based appHandling advanced document scenariosUpdating your document-based appBuilding a document-based app with SwiftUIBuilding a document-based app using SwiftDataDocumentGroup
Storing document data in a reference type instance
DocumentReadableDocumentWritableDocumentURLDocumentConfigurationDocumentCreationContextDocumentBaseBox
Accessing document configuration
Reading and writing documents
DocumentReadConfigurationDocumentWriteConfigurationDocumentReaderDocumentWriterFileWrapperDocumentReaderFileWrapperDocumentWriter
Opening a document programmatically
Configuring the document launch experience
DocumentGroupLaunchScenedocumentLaunchTitle(_:)documentLaunchSubtitle(_:)DocumentLaunchViewdocumentLaunchTitle(_:)documentLaunchSubtitle(_:)documentBrowserContextMenu(_:)DocumentLaunchGeometryProxyDefaultDocumentGroupLaunchActionsNewDocumentButtonDefaultNewDocumentButtonLabelDocumentCreationSource