---
title: ReadableDocument
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/readabledocument
---

# ReadableDocument

A type that you use to read documents from file.

## Declaration

```swift
protocol ReadableDocument : AnyObject
```

## Overview

Overview To create a read-only document type, conform to ReadableDocument and implement the required methods and properties. For a read-write document, also conform to WritableDocument, or use the Document typealias. Your implementation: Provides readable content types via readableContentTypes. Loads documents from file using a DocumentReader returned by reader(configuration:). Applies loaded content to your model via apply(snapshot:previous:).

## Topics

### Reading a document

- [readableContentTypes](swiftui/readabledocument/readablecontenttypes.md)
- [ReadableDocument.ReadConfiguration](swiftui/readabledocument/readconfiguration.md)
- [Reader](swiftui/readabledocument/reader.md)
- [reader(configuration:)](swiftui/readabledocument/reader(configuration:).md)
- [apply(snapshot:previous:)](swiftui/readabledocument/apply(snapshot:previous:).md)

### Type Properties

- [writableContentTypes](swiftui/readabledocument/writablecontenttypes.md)

## See Also

### Storing document data in a reference type instance

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