<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/DocumentCreationSource/init(id:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI22DocumentCreationSourceV2idACSS_tcfc"
  },
  "title" : "init(id:)"
}
-->

# init(id:)

Creates a document creation source with the given identifier.

```
init(id: String)
```

## Parameters

`id`

A string that uniquely identifies the creation flow
within your app.

## Discussion

Use different sources to distinguish between document creation flows
in your app.

```
extension DocumentCreationSource {
    static let scanner: Self =
        DocumentCreationSource(id: "document-from-scanner")

    static let template: Self =
        DocumentCreationSource(id: "document-from-template")
}

DocumentGroupLaunchScene("Documents") {
    NewDocumentButton("Scan Document", source: .scanner)
    NewDocumentButton("New from Template", source: .template)
}
```

When a document is created, you can retrieve its source from
[`URLDocumentConfiguration`](/documentation/SwiftUI/URLDocumentConfiguration) or [`FileDocumentConfiguration`](/documentation/SwiftUI/FileDocumentConfiguration).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)