From b5644d2b173d2cfb8d392be28deb04a124dce987 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 15 Jun 2025 23:14:29 +0200 Subject: [PATCH] Add macOS app foundation with release infrastructure (#1) --- .DS_Store | Bin 0 -> 10244 bytes .github-config | 8 + README.md | 131 +- VibeTunnel.xcodeproj/project.pbxproj | 619 + .../contents.xcworkspacedata | 7 + .../xcshareddata/swiftpm/Package.resolved | 186 + .../UserInterfaceState.xcuserstate | Bin 0 -> 24483 bytes .../xcschemes/xcschememanagement.plist | 14 + VibeTunnel/.DS_Store | Bin 0 -> 6148 bytes VibeTunnel/Assets.xcassets/.DS_Store | Bin 0 -> 6148 bytes .../AccentColor.colorset/Contents.json | 20 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/icon_128x128.png | Bin 0 -> 22917 bytes .../AppIcon.appiconset/icon_128x128@2x.png | Bin 0 -> 84373 bytes .../AppIcon.appiconset/icon_16x16.png | Bin 0 -> 719 bytes .../AppIcon.appiconset/icon_16x16@2x.png | Bin 0 -> 2252 bytes .../AppIcon.appiconset/icon_256x256.png | Bin 0 -> 84373 bytes .../AppIcon.appiconset/icon_256x256@2x.png | Bin 0 -> 351406 bytes .../AppIcon.appiconset/icon_32x32.png | Bin 0 -> 2252 bytes .../AppIcon.appiconset/icon_32x32@2x.png | Bin 0 -> 7132 bytes .../AppIcon.appiconset/icon_512x512.png | Bin 0 -> 351406 bytes .../AppIcon.appiconset/icon_512x512@2x.png | Bin 0 -> 1524212 bytes VibeTunnel/Assets.xcassets/Contents.json | 6 + .../menubar.imageset/Contents.json | 26 + .../menubar.imageset/menubar.png | Bin 0 -> 897 bytes .../menubar.imageset/menubar@2x.png | Bin 0 -> 1224 bytes VibeTunnel/Core/.DS_Store | Bin 0 -> 6148 bytes VibeTunnel/Core/Models/TunnelSession.swift | 72 + VibeTunnel/Core/Models/UpdateChannel.swift | 90 + .../Services/AuthenticationMiddleware.swift | 107 + .../Core/Services/SparkleUpdaterManager.swift | 334 + VibeTunnel/Core/Services/StartupManager.swift | 41 + .../Core/Services/TerminalManager.swift | 163 + VibeTunnel/Core/Services/TunnelClient.swift | 271 + VibeTunnel/Core/Services/TunnelServer.swift | 259 + .../Core/Services/TunnelServerDemo.swift | 151 + .../Core/Services/WebSocketHandler.swift | 196 + VibeTunnel/Info.plist | 61 + VibeTunnel/Presentation/.DS_Store | Bin 0 -> 6148 bytes .../Utilities/CommonViewModifiers.swift | 186 + .../Presentation/Utilities/View+Cursor.swift | 59 + VibeTunnel/Presentation/Views/AboutView.swift | 180 + VibeTunnel/SettingsView.swift | 279 + VibeTunnel/Utilities/AboutWindow.swift | 39 + VibeTunnel/VibeTunnelApp.swift | 183 + VibeTunnel/app-config.plist | 20 + VibeTunnel/sparkle-public-ed-key.txt | 12 + VibeTunnel/version.xcconfig | 12 + VibeTunnelTests/VibeTunnelTests.swift | 17 + VibeTunnelUITests/VibeTunnelUITests.swift | 41 + .../VibeTunnelUITestsLaunchTests.swift | 33 + docs/hummingbird-integration.md | 188 + docs/modern-swift.md | 165 + docs/swiftui.md | 68899 ++++++++++++++++ docs/uikit.md | 51689 ++++++++++++ scripts/README.md | 210 + scripts/build.sh | 154 + scripts/changelog-to-html.sh | 131 + scripts/codesign-app.sh | 125 + scripts/create-dmg.sh | 203 + scripts/extract-build-number.sh | 68 + scripts/generate-appcast.sh | 433 + scripts/generate-xcproj.sh | 79 + scripts/notarize-app.sh | 313 + scripts/preflight-check.sh | 322 + scripts/release.sh | 364 + scripts/sign-and-notarize.sh | 350 + scripts/verify-app.sh | 298 + scripts/verify-appcast.sh | 198 + scripts/version.sh | 295 + 70 files changed, 128374 insertions(+), 1 deletion(-) create mode 100644 .DS_Store create mode 100644 .github-config create mode 100644 VibeTunnel.xcodeproj/project.pbxproj create mode 100644 VibeTunnel.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 VibeTunnel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 VibeTunnel.xcodeproj/project.xcworkspace/xcuserdata/steipete.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 VibeTunnel.xcodeproj/xcuserdata/steipete.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 VibeTunnel/.DS_Store create mode 100644 VibeTunnel/Assets.xcassets/.DS_Store create mode 100644 VibeTunnel/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_128x128.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_16x16.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_256x256.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_32x32.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_512x512.png create mode 100644 VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png create mode 100644 VibeTunnel/Assets.xcassets/Contents.json create mode 100644 VibeTunnel/Assets.xcassets/menubar.imageset/Contents.json create mode 100644 VibeTunnel/Assets.xcassets/menubar.imageset/menubar.png create mode 100644 VibeTunnel/Assets.xcassets/menubar.imageset/menubar@2x.png create mode 100644 VibeTunnel/Core/.DS_Store create mode 100644 VibeTunnel/Core/Models/TunnelSession.swift create mode 100644 VibeTunnel/Core/Models/UpdateChannel.swift create mode 100644 VibeTunnel/Core/Services/AuthenticationMiddleware.swift create mode 100644 VibeTunnel/Core/Services/SparkleUpdaterManager.swift create mode 100644 VibeTunnel/Core/Services/StartupManager.swift create mode 100644 VibeTunnel/Core/Services/TerminalManager.swift create mode 100644 VibeTunnel/Core/Services/TunnelClient.swift create mode 100644 VibeTunnel/Core/Services/TunnelServer.swift create mode 100644 VibeTunnel/Core/Services/TunnelServerDemo.swift create mode 100644 VibeTunnel/Core/Services/WebSocketHandler.swift create mode 100644 VibeTunnel/Info.plist create mode 100644 VibeTunnel/Presentation/.DS_Store create mode 100644 VibeTunnel/Presentation/Utilities/CommonViewModifiers.swift create mode 100644 VibeTunnel/Presentation/Utilities/View+Cursor.swift create mode 100644 VibeTunnel/Presentation/Views/AboutView.swift create mode 100644 VibeTunnel/SettingsView.swift create mode 100644 VibeTunnel/Utilities/AboutWindow.swift create mode 100644 VibeTunnel/VibeTunnelApp.swift create mode 100644 VibeTunnel/app-config.plist create mode 100644 VibeTunnel/sparkle-public-ed-key.txt create mode 100644 VibeTunnel/version.xcconfig create mode 100644 VibeTunnelTests/VibeTunnelTests.swift create mode 100644 VibeTunnelUITests/VibeTunnelUITests.swift create mode 100644 VibeTunnelUITests/VibeTunnelUITestsLaunchTests.swift create mode 100644 docs/hummingbird-integration.md create mode 100644 docs/modern-swift.md create mode 100644 docs/swiftui.md create mode 100644 docs/uikit.md create mode 100644 scripts/README.md create mode 100755 scripts/build.sh create mode 100755 scripts/changelog-to-html.sh create mode 100755 scripts/codesign-app.sh create mode 100755 scripts/create-dmg.sh create mode 100755 scripts/extract-build-number.sh create mode 100755 scripts/generate-appcast.sh create mode 100755 scripts/generate-xcproj.sh create mode 100755 scripts/notarize-app.sh create mode 100755 scripts/preflight-check.sh create mode 100755 scripts/release.sh create mode 100755 scripts/sign-and-notarize.sh create mode 100755 scripts/verify-app.sh create mode 100755 scripts/verify-appcast.sh create mode 100755 scripts/version.sh diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e99ed62001d2d6b0240c7f58c925292f12e71b9f GIT binary patch literal 10244 zcmeHMeQXp(6rZ;gx(i*pr3G1_vRVbirnD3qkgw~PSfGGhOG`nIyW6#0*zT6wy=#FG z>sJ)i#IH!=AL3_-QGpOK7&Jyhj8S5cR1-DfAEQPQqkl+@Cg7W$z4o@fN)bOG*}3e# znK$pv%=^uIGdpvH5U5G26@(~+5FQ^&r96CPNwl6mLlWn4W+DaDCq{ckIBs=z4Ur5O z0RjO60RjO60RjO6R|*2SXVb)wV>EaN2m}ZO2=pUB*9Qe3N<$v)Wz=0d@Z}x>kmexU zO_-Nx2C3rFkVktN#Trb&RFN`O@QxV3)RC`vav_iQGRo8mc!v-0dIs-=0&efvzT%1# z2r(MG0|WvDh9W@E?m484v=f~;{`31w=QHa%t-89HVa1TgzryYNcK?MBs{QrqU)FbZ zWZVsKhfo#!Rf$F7#Ex~_U0&NqV_k-BJLTn{12-yX^qAaSA$MHv9pMhEJM2WAq+JtD zY^0?o%Q9l=d^EOR*SaH8QLSYqBqZ{Iu zxi+Dt(Abu^Wh6UIJ0catqeeVwL>;Z#FsLx{^6hxSGK{sBtvkA9Ziq+|sM4A)TC&$` z2^(pvlhL|QzO~J^5>Bn#Lqw92wzf{g4)l~(huzq%I*x<(R1%ua5D*UJPcFWG#?9sP zZ&_B?(0F^FR4}2iNSq|LA=IX$-=%Ab4N*I;nW}EKH+So*)6tUBZ9QgaO=h%H6Qun@ zU*UuTNuDB4lC3R=J+tjtPB5qQ#??y|djj6nJL~v_LWJTUcYibi3zEz%g z*)!#v#3mbu$V*WsSSpr@OOF1Oho(S)|98@-X2K4knA$am)w zYp7bisykK!$LyM}$ZL6i18uTeRW-Fwnov-Lv+SPIMFHfVxoSPv0UL4$VafNhY1ZrBbx;6B(5d*Bgx6rP4>VIMpX zFTktt1{{H-@D{uepTa5VgU{eJd=Edsk8l>waXcq*W4S`Eh?~ew=Voz>xFy_DZW$Ni z8n`wt!fj@w=h8t(11TeMIu-_k&Q5uY2>0f2fz_}guVJOwcr^vq7x``|O`LSia=2Ux{{8^!ExG*F{AbH)bXWUPx^)% zd5jrpv{$@oHWpV(V_31cYz~j{DRFL5EUug+>1W`06Ykf!Q=1*JcWL~51vCme-U1T*Wmyhg2QkO-iCMJU3d>Zf{)<@d;%xY z^S^{M@H70vT({qwS7*2~X5sftZ_eCq_ntZa$HDY=>us5x*1&d~t=_lYR`$}a`XeP3 zPMC&ewj+;5RxVjZ8b~dvC#y-A)HfJb+}n)lw{$f=Wf$CpIYI=o4kfE`C22%jMmmW) zNaNrjja*{mCZE6$j4t93+qXHwXQxnlkVK~KPfp#t^)+Vu5UBwKhL`f;z!sFTWIc{0 zMl{kylElQHMvVXa6J)`Hg{4Z>+{^t0$!eQw$Bh_%F45`BD&U)v8OOE^Czm-f_peNz zJj^C0Ynz!4dNEnwB+XKW9p@m&Ey^~L=#o9?ZWex9YUpqY%x&@6M^3E54o0k-X>-}` zbK5yMoVVd}yL_y^Ojl_;Rn~ tk-FFMSfJPOv+$v^=}QQj4|%*^Mv;T*KmRk}D!Nz;&i}#r|KB+O{|P&fN{#>k literal 0 HcmV?d00001 diff --git a/.github-config b/.github-config new file mode 100644 index 00000000..560eece4 --- /dev/null +++ b/.github-config @@ -0,0 +1,8 @@ +# GitHub Configuration for VibeTunnel +# This file contains configuration values for the release scripts + +# GitHub username/organization for the repository +GITHUB_USERNAME="amantus-ai" + +# Repository name +GITHUB_REPO="vibetunnel" \ No newline at end of file diff --git a/README.md b/README.md index 08939848..ccbc504a 100644 --- a/README.md +++ b/README.md @@ -1 +1,130 @@ -# vibetunnel \ No newline at end of file +# VibeTunnel + +VibeTunnel is a Mac app that proxies terminal apps to the web. Now you can use Claude Code anywhere, anytime. Control open instances, read the output, type new commands or even open new instances. Supports macOS 14+. + +## Overview + +VibeTunnel is a native macOS app built with SwiftUI that enables remote control of terminal applications like Claude Code. It provides a seamless tunneling solution with automatic updates, configurable settings, and the ability to run as either a dock application or menu bar utility. + +## Features + +- **Remote Terminal Control**: Tunnel connections to control Claude Code and other terminal apps remotely +- **Flexible UI Modes**: Run as a standard dock application or minimal menu bar utility +- **Auto Updates**: Built-in Sparkle integration for seamless updates with stable and pre-release channels +- **Launch at Login**: Automatic startup configuration +- **Native macOS Experience**: Built with SwiftUI for macOS 14.0+ + +## Requirements + +- macOS 14.0 or later +- Xcode 15.0 or later (for development) + +## Installation + +### From Release +1. Download the latest DMG from the [Releases](https://github.com/yourusername/vibetunnel/releases) page +2. Open the DMG and drag VibeTunnel to your Applications folder +3. Launch VibeTunnel from Applications or Spotlight + +### From Source +```bash +# Clone the repository +git clone https://github.com/yourusername/vibetunnel.git +cd vibetunnel + +# Build using Xcode +open VibeTunnel.xcodeproj +# Or build from command line +xcodebuild -scheme VibeTunnel -configuration Release +``` + +## Configuration + +VibeTunnel can be configured through its Settings window (⌘,): + +### General Settings +- **Launch at Login**: Start VibeTunnel automatically when you log in +- **Show Notifications**: Enable/disable system notifications +- **Show in Dock**: Toggle between dock app and menu bar only mode + +### Advanced Settings +- **Update Channel**: Choose between stable releases or pre-release builds +- **Server Port**: Configure the tunnel server port (default: 8080) +- **Debug Mode**: Enable additional logging for troubleshooting + +## Development + +### Project Structure +``` +VibeTunnel/ +├── VibeTunnel/ # Main app source +│ ├── Core/ # Core functionality +│ │ ├── Models/ # Data models +│ │ └── Services/ # Business logic +│ ├── Views/ # SwiftUI views +│ └── Resources/ # Assets and resources +├── VibeTunnelTests/ # Unit tests +├── VibeTunnelUITests/ # UI tests +├── scripts/ # Build and release automation +└── docs/ # Documentation +``` + +### Building + +The project uses standard Xcode build system: + +```bash +# Debug build +xcodebuild -scheme VibeTunnel -configuration Debug + +# Release build +xcodebuild -scheme VibeTunnel -configuration Release + +# Run tests +xcodebuild test -scheme VibeTunnel +``` + +### Release Process + +The project includes comprehensive release automation scripts in the `scripts/` directory: + +```bash +# Create a new release +./scripts/release.sh --version 1.2.3 + +# Build and notarize +./scripts/build.sh +./scripts/notarize.sh + +# Generate appcast for Sparkle updates +./scripts/generate-appcast.sh +``` + +## Architecture + +VibeTunnel is built with a modular architecture: + +- **SparkleUpdaterManager**: Handles automatic updates with support for multiple update channels +- **StartupManager**: Manages launch at login functionality using macOS ServiceManagement +- **UpdateChannel**: Defines update channels and appcast URLs +- **AppDelegate**: Coordinates app lifecycle and system integration + +## Contributing + +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Commit your changes (`git commit -m 'Add amazing feature'`) +4. Push to the branch (`git push origin feature/amazing-feature`) +5. Open a Pull Request + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +## Author + +Created by Peter Steinberger / Amantus Machina + +--- + +**Note**: VibeTunnel is currently in active development. Core tunneling functionality is being implemented. \ No newline at end of file diff --git a/VibeTunnel.xcodeproj/project.pbxproj b/VibeTunnel.xcodeproj/project.pbxproj new file mode 100644 index 00000000..26c741bf --- /dev/null +++ b/VibeTunnel.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 788688322DFF700200B22C15 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 788688312DFF700100B22C15 /* Sparkle */; }; + 788688552DFF5EAB00B22C15 /* Hummingbird in Frameworks */ = {isa = PBXBuildFile; productRef = 788688212DFF600100B22C15 /* Hummingbird */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 788687FF2DFF4FCB00B22C15 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 788687E92DFF4FCB00B22C15 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 788687F02DFF4FCB00B22C15; + remoteInfo = VibeTunnel; + }; + 788688092DFF4FCC00B22C15 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 788687E92DFF4FCB00B22C15 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 788687F02DFF4FCB00B22C15; + remoteInfo = VibeTunnel; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 788687F12DFF4FCB00B22C15 /* VibeTunnel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VibeTunnel.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 788687FE2DFF4FCB00B22C15 /* VibeTunnelTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VibeTunnelTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 788688082DFF4FCC00B22C15 /* VibeTunnelUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VibeTunnelUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + 788687F32DFF4FCB00B22C15 /* VibeTunnel */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = VibeTunnel; + sourceTree = ""; + }; + 788688012DFF4FCB00B22C15 /* VibeTunnelTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = VibeTunnelTests; + sourceTree = ""; + }; + 7886880B2DFF4FCC00B22C15 /* VibeTunnelUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = VibeTunnelUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + 788687EE2DFF4FCB00B22C15 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 788688552DFF5EAB00B22C15 /* Hummingbird in Frameworks */, + 788688322DFF700200B22C15 /* Sparkle in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788687FB2DFF4FCB00B22C15 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788688052DFF4FCC00B22C15 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 788687E82DFF4FCB00B22C15 = { + isa = PBXGroup; + children = ( + 788687F32DFF4FCB00B22C15 /* VibeTunnel */, + 788688012DFF4FCB00B22C15 /* VibeTunnelTests */, + 7886880B2DFF4FCC00B22C15 /* VibeTunnelUITests */, + 788687F22DFF4FCB00B22C15 /* Products */, + ); + sourceTree = ""; + }; + 788687F22DFF4FCB00B22C15 /* Products */ = { + isa = PBXGroup; + children = ( + 788687F12DFF4FCB00B22C15 /* VibeTunnel.app */, + 788687FE2DFF4FCB00B22C15 /* VibeTunnelTests.xctest */, + 788688082DFF4FCC00B22C15 /* VibeTunnelUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 788687F02DFF4FCB00B22C15 /* VibeTunnel */ = { + isa = PBXNativeTarget; + buildConfigurationList = 788688122DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnel" */; + buildPhases = ( + 788687ED2DFF4FCB00B22C15 /* Sources */, + 788687EE2DFF4FCB00B22C15 /* Frameworks */, + 788687EF2DFF4FCB00B22C15 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 788687F32DFF4FCB00B22C15 /* VibeTunnel */, + ); + name = VibeTunnel; + packageProductDependencies = ( + 788688212DFF600100B22C15 /* Hummingbird */, + 788688312DFF700100B22C15 /* Sparkle */, + ); + productName = VibeTunnel; + productReference = 788687F12DFF4FCB00B22C15 /* VibeTunnel.app */; + productType = "com.apple.product-type.application"; + }; + 788687FD2DFF4FCB00B22C15 /* VibeTunnelTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 788688152DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnelTests" */; + buildPhases = ( + 788687FA2DFF4FCB00B22C15 /* Sources */, + 788687FB2DFF4FCB00B22C15 /* Frameworks */, + 788687FC2DFF4FCB00B22C15 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 788688002DFF4FCB00B22C15 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 788688012DFF4FCB00B22C15 /* VibeTunnelTests */, + ); + name = VibeTunnelTests; + packageProductDependencies = ( + ); + productName = VibeTunnelTests; + productReference = 788687FE2DFF4FCB00B22C15 /* VibeTunnelTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 788688072DFF4FCC00B22C15 /* VibeTunnelUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 788688182DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnelUITests" */; + buildPhases = ( + 788688042DFF4FCC00B22C15 /* Sources */, + 788688052DFF4FCC00B22C15 /* Frameworks */, + 788688062DFF4FCC00B22C15 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7886880A2DFF4FCC00B22C15 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 7886880B2DFF4FCC00B22C15 /* VibeTunnelUITests */, + ); + name = VibeTunnelUITests; + packageProductDependencies = ( + ); + productName = VibeTunnelUITests; + productReference = 788688082DFF4FCC00B22C15 /* VibeTunnelUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 788687E92DFF4FCB00B22C15 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2600; + LastUpgradeCheck = 2600; + TargetAttributes = { + 788687F02DFF4FCB00B22C15 = { + CreatedOnToolsVersion = 26.0; + }; + 788687FD2DFF4FCB00B22C15 = { + CreatedOnToolsVersion = 26.0; + TestTargetID = 788687F02DFF4FCB00B22C15; + }; + 788688072DFF4FCC00B22C15 = { + CreatedOnToolsVersion = 26.0; + TestTargetID = 788687F02DFF4FCB00B22C15; + }; + }; + }; + buildConfigurationList = 788687EC2DFF4FCB00B22C15 /* Build configuration list for PBXProject "VibeTunnel" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 788687E82DFF4FCB00B22C15; + minimizedProjectReferenceProxies = 1; + packageReferences = ( + 788688202DFF600000B22C15 /* XCRemoteSwiftPackageReference "hummingbird" */, + 788688302DFF700000B22C15 /* XCRemoteSwiftPackageReference "Sparkle" */, + ); + preferredProjectObjectVersion = 77; + productRefGroup = 788687F22DFF4FCB00B22C15 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 788687F02DFF4FCB00B22C15 /* VibeTunnel */, + 788687FD2DFF4FCB00B22C15 /* VibeTunnelTests */, + 788688072DFF4FCC00B22C15 /* VibeTunnelUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 788687EF2DFF4FCB00B22C15 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788687FC2DFF4FCB00B22C15 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788688062DFF4FCC00B22C15 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 788687ED2DFF4FCB00B22C15 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788687FA2DFF4FCB00B22C15 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 788688042DFF4FCC00B22C15 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 788688002DFF4FCB00B22C15 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 788687F02DFF4FCB00B22C15 /* VibeTunnel */; + targetProxy = 788687FF2DFF4FCB00B22C15 /* PBXContainerItemProxy */; + }; + 7886880A2DFF4FCC00B22C15 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 788687F02DFF4FCB00B22C15 /* VibeTunnel */; + targetProxy = 788688092DFF4FCC00B22C15 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 788688102DFF4FCC00B22C15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = Y5PE65HELJ; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 788688112DFF4FCC00B22C15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = Y5PE65HELJ; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + }; + name = Release; + }; + 788688132DFF4FCC00B22C15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = VibeTunnel/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Amantus AI. All rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 788688142DFF4FCC00B22C15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = VibeTunnel/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Amantus AI. All rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 788688162DFF4FCC00B22C15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VibeTunnel.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/VibeTunnel"; + }; + name = Debug; + }; + 788688172DFF4FCC00B22C15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + GENERATE_INFOPLIST_FILE = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VibeTunnel.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/VibeTunnel"; + }; + name = Release; + }; + 788688192DFF4FCC00B22C15 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel.UITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = VibeTunnel; + }; + name = Debug; + }; + 7886881A2DFF4FCC00B22C15 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 100; + DEVELOPMENT_TEAM = Y5PE65HELJ; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel.UITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = VibeTunnel; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 788687EC2DFF4FCB00B22C15 /* Build configuration list for PBXProject "VibeTunnel" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 788688102DFF4FCC00B22C15 /* Debug */, + 788688112DFF4FCC00B22C15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 788688122DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnel" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 788688132DFF4FCC00B22C15 /* Debug */, + 788688142DFF4FCC00B22C15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 788688152DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnelTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 788688162DFF4FCC00B22C15 /* Debug */, + 788688172DFF4FCC00B22C15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 788688182DFF4FCC00B22C15 /* Build configuration list for PBXNativeTarget "VibeTunnelUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 788688192DFF4FCC00B22C15 /* Debug */, + 7886881A2DFF4FCC00B22C15 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 788688202DFF600000B22C15 /* XCRemoteSwiftPackageReference "hummingbird" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/hummingbird-project/hummingbird.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.6.1; + }; + }; + 788688302DFF700000B22C15 /* XCRemoteSwiftPackageReference "Sparkle" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/sparkle-project/Sparkle.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 2.6.4; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 788688212DFF600100B22C15 /* Hummingbird */ = { + isa = XCSwiftPackageProductDependency; + package = 788688202DFF600000B22C15 /* XCRemoteSwiftPackageReference "hummingbird" */; + productName = Hummingbird; + }; + 788688312DFF700100B22C15 /* Sparkle */ = { + isa = XCSwiftPackageProductDependency; + package = 788688302DFF700000B22C15 /* XCRemoteSwiftPackageReference "Sparkle" */; + productName = Sparkle; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 788687E92DFF4FCB00B22C15 /* Project object */; +} diff --git a/VibeTunnel.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/VibeTunnel.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/VibeTunnel.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/VibeTunnel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/VibeTunnel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 00000000..5e748d06 --- /dev/null +++ b/VibeTunnel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,186 @@ +{ + "originHash" : "379fc445189c9b1b1650a73f06eaf74b6b2e04a5c65e401ab81c9bb88fa78a17", + "pins" : [ + { + "identity" : "async-http-client", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swift-server/async-http-client.git", + "state" : { + "revision" : "0ae99db85b2b9d1e79b362bd31fd1ffe492f7c47", + "version" : "1.21.2" + } + }, + { + "identity" : "hummingbird", + "kind" : "remoteSourceControl", + "location" : "https://github.com/hummingbird-project/hummingbird.git", + "state" : { + "revision" : "65ace7855fa8413d6218adeecaf706f2b99c23c1", + "version" : "2.14.1" + } + }, + { + "identity" : "sparkle", + "kind" : "remoteSourceControl", + "location" : "https://github.com/sparkle-project/Sparkle.git", + "state" : { + "revision" : "0ca3004e98712ea2b39dd881d28448630cce1c99", + "version" : "2.7.0" + } + }, + { + "identity" : "swift-algorithms", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-algorithms", + "state" : { + "revision" : "87e50f483c54e6efd60e885f7f5aa946cee68023", + "version" : "1.2.1" + } + }, + { + "identity" : "swift-async-algorithms", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-async-algorithms.git", + "state" : { + "revision" : "042e1c4d9d19748c9c228f8d4ebc97bb1e339b0b", + "version" : "1.0.4" + } + }, + { + "identity" : "swift-atomics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-atomics.git", + "state" : { + "revision" : "cd142fd2f64be2100422d658e7411e39489da985", + "version" : "1.2.0" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections.git", + "state" : { + "revision" : "94cf62b3ba8d4bed62680a282d4c25f9c63c2efb", + "version" : "1.1.0" + } + }, + { + "identity" : "swift-distributed-tracing", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-distributed-tracing.git", + "state" : { + "revision" : "a64a0abc2530f767af15dd88dda7f64d5f1ff9de", + "version" : "1.2.0" + } + }, + { + "identity" : "swift-http-types", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-http-types.git", + "state" : { + "revision" : "12358d55a3824bd5fed310b999ea8cf83a9a1a65", + "version" : "1.0.3" + } + }, + { + "identity" : "swift-log", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-log.git", + "state" : { + "revision" : "e97a6fcb1ab07462881ac165fdbb37f067e205d5", + "version" : "1.5.4" + } + }, + { + "identity" : "swift-metrics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-metrics.git", + "state" : { + "revision" : "4c83e1cdf4ba538ef6e43a9bbd0bcc33a0ca46e3", + "version" : "2.7.0" + } + }, + { + "identity" : "swift-nio", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio.git", + "state" : { + "revision" : "34d486b01cd891297ac615e40d5999536a1e138d", + "version" : "2.83.0" + } + }, + { + "identity" : "swift-nio-extras", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-extras.git", + "state" : { + "revision" : "a3b640d7dc567225db7c94386a6e71aded1bfa63", + "version" : "1.22.0" + } + }, + { + "identity" : "swift-nio-http2", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-http2.git", + "state" : { + "revision" : "4281466512f63d1bd530e33f4aa6993ee7864be0", + "version" : "1.36.0" + } + }, + { + "identity" : "swift-nio-ssl", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-ssl.git", + "state" : { + "revision" : "7c381eb6083542b124a6c18fae742f55001dc2b5", + "version" : "2.26.0" + } + }, + { + "identity" : "swift-nio-transport-services", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-transport-services.git", + "state" : { + "revision" : "6cbe0ed2b394f21ab0d46b9f0c50c6be964968ce", + "version" : "1.20.1" + } + }, + { + "identity" : "swift-numerics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-numerics.git", + "state" : { + "revision" : "e0ec0f5f3af6f3e4d5e7a19d2af26b481acb6ba8", + "version" : "1.0.3" + } + }, + { + "identity" : "swift-service-context", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-service-context.git", + "state" : { + "revision" : "1983448fefc717a2bc2ebde5490fe99873c5b8a6", + "version" : "1.2.1" + } + }, + { + "identity" : "swift-service-lifecycle", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swift-server/swift-service-lifecycle.git", + "state" : { + "revision" : "24c800fb494fbee6e42bc156dc94232dc08971af", + "version" : "2.6.1" + } + }, + { + "identity" : "swift-system", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-system.git", + "state" : { + "revision" : "61e4ca4b81b9e09e2ec863b00c340eb13497dac6", + "version" : "1.5.0" + } + } + ], + "version" : 3 +} diff --git a/VibeTunnel.xcodeproj/project.xcworkspace/xcuserdata/steipete.xcuserdatad/UserInterfaceState.xcuserstate b/VibeTunnel.xcodeproj/project.xcworkspace/xcuserdata/steipete.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..a25696eef9817cc693a9513905b151047a3dace6 GIT binary patch literal 24483 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 K!}(B_jO5$n!t^mWcQR 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 DTY_7| literal 0 HcmV?d00001 diff --git a/VibeTunnel.xcodeproj/xcuserdata/steipete.xcuserdatad/xcschemes/xcschememanagement.plist b/VibeTunnel.xcodeproj/xcuserdata/steipete.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..f66444d5 --- /dev/null +++ b/VibeTunnel.xcodeproj/xcuserdata/steipete.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + VibeTunnel.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/VibeTunnel/.DS_Store b/VibeTunnel/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..09d4a4dc09dbde15d32122ffbe25b1fd941c90a2 GIT binary patch literal 6148 zcmeHKJx{|h5IsYN@*z>g0Am(br2d1ngoTAl6+8VBAf-)3L1N6v4`60yVS$~I|G_OfGHjxWQt z^*h5c&F#b^HhJUDysFCcE>o3f)uMMHdmZfZ1dlz5)O}xV7O~AH+bP9l*e1Vh|pfGO0k5s_Yd*nRNJl8y8qi z44QOOdS-mb&aCVWMcFc-d>u|IFetq!APTq&%$wID*Z-Z#_kTA@-b4XW;9n`Ays#El zuq0bs#}>!6)<-))W8=8QpiV(&%dvjoQoMnt4P!n(00WDOL3m*DM?lLUohb0D3VZ^` C+PD7z literal 0 HcmV?d00001 diff --git a/VibeTunnel/Assets.xcassets/.DS_Store b/VibeTunnel/Assets.xcassets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b498cb3b586493517cd7daec07411fc8f97d4013 GIT binary patch literal 6148 zcmeHKJxc>Y5S`U4LPQ9XLJ;Aav|_NZy~J2pS){Nvmq-lUc%_ii)q_I9#FWSX;Hov1=YB{-v3Mzh5DI{SicxX3op z$TNmCr4vdhf~%c@in8DDm<|xL-}0CyxH^sc^>#OjM>Z*QUW6Mb ztyUN%AvmS#>)ylD=S!m)zc=S^yx+b(7UYkvv%j6!JK90sBOGUv=MedJq(5+d$+w)+=Y2fe7r1h)Y;Hw(xxDC*U$|OM0iM#Z(w0SSRRL8%6__i)>w^zx z3>>BwW$8d8TL7Skuo%vzwgP<)00W1qMMPl6Qh}Cg+!n)FI^w>&FL0Pzv~)5uGM?i` zHg1PvWOT%Rxt&a4QCn3&704^FX}cA!|EE9i|MMj6sRF9Nzf!<>t#+%4lw56HNRDf* s55I)7@qMX9p`dZ)SWdVU@504!&F2$f;4rm_2u%M7hz#1O0>7%j7p3H`e*gdg literal 0 HcmV?d00001 diff --git a/VibeTunnel/Assets.xcassets/AccentColor.colorset/Contents.json b/VibeTunnel/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..8c10c0ac --- /dev/null +++ b/VibeTunnel/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0.560", + "green" : "1.000", + "red" : "0.153" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/VibeTunnel/Assets.xcassets/AppIcon.appiconset/Contents.json b/VibeTunnel/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..64dc11ee --- /dev/null +++ b/VibeTunnel/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "icon_16x16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "icon_16x16@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "icon_32x32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "icon_32x32@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "icon_128x128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "icon_128x128@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "icon_256x256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "icon_256x256@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "icon_512x512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "icon_512x512@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..2901867c08c9ff832ee8cc80e6d1ba1d479653d0 GIT binary patch literal 22917 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%0AL1Fr8|Wh$L7N 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 BP0#=U literal 0 HcmV?d00001 diff --git a/VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/VibeTunnel/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..82cd33d438c4c483228f293727fea7bb81586848 GIT binary patch literal 2252 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%0AL1Fr8|Wh$L7N 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

al;?inelEksv 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

pKO`xn6 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

fQ5FHNkzT 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 P;O_{s%2=IB|{^eNK2Fzi(_sUHC7Zmyg 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

al;?inelEksv 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

pKO`xn6 zN|2yPrLs^{YWooN-3^R|oLA$apoX6C?wnjIQmmSw)&dktUEs=OvpH_;eZO2$wC4#o zwG(BxfjSs4VJj6hLVeMR$L-drQd7C=rb3)R2wRbHro-E$$_3{b#UzFRSt?20o$XyZD>? zdg?$(^z;5dB&5fAhzz>i)}A^du-3BnWHLeD3cY{ z!iLP$rUBX}hrVaXR&VzjLmM(YM6*mi7Mr8Jr*nUo<7NOi6W-B#^(Hl;pcifTNW*&O z>ga2VfglcyI@bJZDyxeobfa#;8W;t(-jwR~sZ#CyENE>4abTdq2(({HuQfS0<{DSQhQ)uL*RrGO>-*gF17l3QMgl z%Q`ToZC-09JX)N=2*GdhETYY=+IlKPzKAMN44fpV|KaSw`5>nu6d;xr+{%6IHLcYX ziPV#T28+yvVS7(_Q-glu2*c4;WEchz+E)M{~d8mQd;jHbVJuIb3skJcGZl0j#-B{J0(V9Q45D9RTHrke!C*}vA z=&tc_tp}MPvbNh8NeO=D*7n#m~j{zAXh+0gtxTiwH>(eNEAm&(Kcr2<|XR=zE za^+3m`qjMdFMchX$1YLyU?C_i)C~8o-{w<)?&rDwv!6#UXX;94gy@HW33#h#Ho}>XLLz7l+Hl&I(U$@r4HZ;LB2@)5w+i|m*E9NukkSS{uQAV z+%nO@TOgQ+z+!?!kNVO}q(TU)+JwcL#NEoFz0FcltYe^}uo;f5<;&>6BeBTT_o`VI z{-fG`q7z^oQP7ph%3kNfrXs)x%qv2GW`ajjog)7w_It+q0B1bxxL`7Hw?B z&jriTX`O3HoxYu>OI0@jlTCK>VLc)qjyz5ref4X3`?q~9PyNL&fqi7~+d8|m%lO|Y zq@QP&aJ_3+ki%D4t|mr@xV(oFvai!%d-05Ugd`~Xp{CVS+2@CJWjQdCe7qKwi5VmgeEDwM;&OO}r zIo$H`ybdCA@=7_no8QBG)+e(qW0b1YE|3;XLR<^|>Hp>JGTg9c(!0 z2N|XtHc!L=Iwa=~Vgi^HpL3v=obAF~8xyzP8r|F@s*&+Mcu7$FF1{W+K+WQ@=V`d6 zcA*>=#06`udmbzvqYW*!MhqSYlz8Bva~TdH6qVKsZliG^gUKar1AMIQsfRAYY7=OF zyM7V-cL=!BA;|=35>mEr$y1N@ZWPuGFC2K{uYL(ve%)KxAFPQ`O-il_ zO^He1g>U~5@(QH;kG-s@?_)qGr8``k9C4siU6*S-W%LbC?w@*9wy(93 zHgqC>entk0R^d>WP6wl_wh8c&!079Yo%SEWyV`_I7yJo9YoPj5~Xg1h!dA|>kTl?xJiKi2W6`nqHl4u?JY z@yp!*wXZ`DzV3*l)!1R9iP(o2oLVa6JhvVmsqK%iHNqJx=FUbzs(ToPwJHym`#8}f zw)u!atH}pjCC%hjStRl1zx*}a_l^hAyNh`#guX6;B%9c{4mQL9&@3ApM}7g|iEpX; zOLp&Y(g5T#QCX0bZ3xg&CT}x&lgQgd+GNr;lV|IynYNj9lt^2#%8J?hL`-h5rC49w zRR?-hODJ#hCp-CC5}|p|jUHMbl;-=7uyc6XWZ-4#_%`&5%NdPi@xg#?3NrwIfPql< zF^n$AIQZQSVrhm&(BvS894H{t*(2-<=MP(n@lZ_$E~ApIdf4s4WKv&<;^m4h^y!Qg zI+8Fvw8?dB3xAMsF^R9+4c-HzC?nQ%`u7(SPn&@5JQ=|oDZRIC22i`B<*>_ za?qAtZv#N~X9u(tG?jK-P5zEL1FYlR?ZTsf{7pRkhu_Y++-06($Os%t;b=bQ&bNJx z=l{aTm@dy~T{}<;B-9*8E@&eg*!MU}F;f;MHN{d63oHq%PoxXsMqFHcU6Us&;$9CO z+;Pe8gS-9J$yA!>UmXx=3dLT#&I_7SXbpg>8rTQ|y1>AGC_;A|db{G*`O*cpS;`K` zQl?OBB3YRzt-$2GKj)eCaA28Xid+Ib z*BNWTbu=aJE_XP2-NU^8eQ)N||LPN@E3@Sac%8QvVPZmMX$?rhdgUKV_2kXqi;x2z z(kV2^Dg!+#h4XsOyAE&WUw+qjbL&?X?*GEqHCdB1QN$``4$D1`-*CzUzvVG*{*@bW znjm`^pv9f5^QO~ec+Ff1YP1B$UdMYV)CMJeLtB*!HXV?e-PwV1D3qt~SjW%!YO>^2 zUjy3#a9NO?ecZd#+-Nw4h%!L{(PCK5qbM1&n3q(&O2b$rbww&BLsYovk#3#v+z1Sv z5@E1uT$7*QvJS3tKX8qM_tx%7XzhoaA*=2Ft*6MiC2rh`w>+m52N%O$#pgT+D8kXv z%D$o(J?OR=nkyI#V1(y3C-3Qlow@i>yk&zmDT$Xw9>+)J~0c9PBL%*inp`KLf&l9 z3g^qdhyN0!&4xo+xp(UZcb~tFyz7XE|HM1lpY7RhPbus{Cvr~Qt7p8P*TRoH4LjiB zgr2PsR)?RRxQC`zSafy8I#Z{WTr4&@mjoNQ{QAq>|I#(4aO>R4gCioCCP` zp{h_;MWnE<2XxQ8M0JcfXo|nZ#7fk`Lbw@Sz{K8X@p>!|<%sl5 z+~!74jR!%waNTv&)oI3spAUPW?Y8F;cZ?cL9^BSyqVS89j ziLEYInpXwydYZ^GQPS!%*pqiPF-c~wGs|Jm=6J*Ty0-y54yN|GAS#q}U~}buu6^0V zeER!;g)~jnx`GsHvJQ)TRyNw(?y3k=7SaKhb#Y@{y0TCMQA~vr!>8zEmdWID;0njc zcirRZ?|VO&|MnG5?tj1seK}o9M(V=8o^$kjUdQ%ZKgIz?id%yyQj!@yQ?+?p5=U*r zl*o8`hlg519we*Gp;|A6Dz(WW73Elt`E>m(55Mot{LU+Xgmjua9HsD9nl*b`wxr^T zuER7(jWZC&O)xN)xX5Ec?dBNq&bxc&eN!W*53=L$IxeJWJULsKig52;p2 zxnHjoBNP>v2HB8PYx$`i1u?8Ci6u0vB2rOrJkwlkEz`gD%};|6i97>|2XJLRHh`#N z$Wn*8QSIxHu#O@Lq{RuHc-+FS4nh(%6e@_t>*8b0b3jK>?U@GvqxL3A>4Mw69g_W( zNrbXOR<&AN-xKR09{bykDZr9kfTY#jWP-b6oz|oI1Fn$9wK_A!*|Z64fo>I&%$%(U ze(1gr@MZt}_gFsxQG|&z-7$$Zc+zBEf<+R$Z3n`p5ay-~A}*^pFWOyV*%qk2LC!@yT4q832EXo@rtkGPaaWA`%1}%yy*4396rKqZq)5eAF zxPE6sNv_PSiEZ^HMw92}V|eoLARqbOpJ4sfM;t$Xh0T>qtf`V#NV$@jsB2=E&$x4X z4p)S7R^TWjtCEuVB)^14mp?z5s+F47wz(PuS>oIsY$xdzMqOMAH6XkDxf-Ek6UqbAO#w#K&p9> z2UpNi%ss4D3R6{ki}GesjS4IdQ@iUYT&5EIWmdq1prTee=E}9c8Yo;i)Q&_gOSv|J zi5;~W;FC>?N|+TFveF4fH50B^^DbNbUcJ$dx&=^V;b-^&t7N2_1vaIbo*`+Os8W@h zg(M5|)=L~e{xEqqS6_|l5mj@)DxAyCI?7eN><}0!Sn>7Q8f{2P@jfGh6pM?I6Q7XJ zkn@C|MiEpTj#V+tn#c-Sg`Fs*6_}`+xg@9THl@>B2yE%+X2aZ43n?*W6P8ia-xN{M zYtVu71cPg@>L53ouh?E#U**w?4B;TvP?nNFJj7Eilid1BI^Pu`i;&A?rCeiUnh;_Q zTsiFy&+8lBSwPebGc`q0v7tKRyc#voQdHA=#iz?>9S=-b%WoAN?a_QGUj(*3-smH(;DC(X3Vt+ir4AA1$G)btF z?^x;k-*SU2w$)r>%nn+sN*39`-dH5T? zkXQcB^W6B*b>zfDZlOex3odZOqjql_R1`hkv~>a%=C0e_U2giLnBWu4_-cwi4Iw@q zewW6J8af~p@vE(P2Q87jr_rnp`KBEm|dc=n~bFfk{9UoX7Yk&Ri^lf6=Rn-1>Eo=K_gdLTa4Nom6!M2E&JATdP3 zH^`C`UHRi^(UF>k20ZC&tmD?<5JcTdNyEL8Win%jsZP}D%qEP^jzN45R$bht_x6vN zc;qYCdy>KtnY*5p)x7^fC@tkrJj`IVzXq6X4|AO;*?%WW`;J z(_*2WyL!%i-wE>I7MacUS{JB32hKRRwz;35qmiNKs|?}0USFk zOMXifEnJdIOeG_=QhhRI^tjJ1SSsEmMub|Eku8bMRMG2pUYbFQ=NmMX8y0JA%W4gr zM!Fl5-NMozT}92!7<4*#Wg1fV*ksTqV49asp8@(Da7K1Ces+;Ory^7g_}C;(hA-{w zAFYk}z1`bFLRR%+uN7TQIJj_Db?4cbTNAGPX65*@!`d4juP@1IvAA2_#9v!(78{_G zWf1rw%xq-$+uO%HlV4eL;Qjl^YA7>8b9>>4;^}MNmIiLTFzrfkO#Yjq09~d*}IjF4F z08X2e(YDWlyy7z2`K4{YRT?EKTTZD{LZ{U|bftqW4UB3=K~6K3LaD-(HxzbU&i5IZ z7xOF=mP-Cg*$sS>KKdm09CpaH7e`AZM)#iItV#X+gxtIZyW4aK@#3M5J1PTZ0wo3YsR zr7ybpy|Ogj)%YxQRP&tE<&^} zwL+RQ_qfOT@uBf=4~)^>pu{HmuWLou^#Z*h+Dks5dnQz&mhQR-#qtQ=&|!pg#d9fflicCxZdg}p3RYL#H&K$Qb2QeK0B zqG3*0$*#y7-TQg=x>>z&KHZHEtre)!1y7}07-3Ds`xouPIc5wfgGClWb3eu+)>|DH zVyIPzs50eB&4qMGEt|W=0=*WT>bxh`+r9Bc(6Q5hszTMuvXob)x2U&OpE>Lfuy}%B z0~e`-`Y3N|X6L}auE5J`Ir439e0y`XJeNdvOl5p5PA`hOdstC6WSLsO3`v&td_^zw z@a4yN<=dX&`M>sImS27e&US2M_AZ~1*r=@Q%Aqbi@QrWb+SfgT+)|KCnTxMA4nUx0 z3&rF!wwo;sGj8w%BWt0NsMUj?p2VzbPVP0YENNjqUtt4xf93|C`SuSWclXSBOLc`_ zt6JD874%4X_&@$)-tm23$LYgIZ~)z|KFcIr*k*xFIdil^m6f!sCYxh(Rbc|viJ6&I z#Fb2?wQOfKuU9H)Ufc-sq(@Db2cmY*ih-e01+9r%g;gtcx96?<*K&Wl-#uJ|OcJN< z_PgyFr@Qow4smJ1@q7e zgXg*Dh+Qz$#(Mk~&JEopo^03V`(H*sMQ0u;0OB@G7=$SaoS$$%0JN-*PyBpHyYm#2CB zPKqnkkjcX)w$HWPgs!kEYums0pNN&99MlHxEF92!7_K)eN4al~Qy7$XK3NPo zdu$ZRsF;PbVWzI!1w2d#~5*4U4r8HHTD z{B01L40|fH_qRRqf2Wa`W2pi`xkU>**%@D#z8xC!K$49tE?yY}h`5RqWg>H2j%?)b z^~%fN_6)Cl*JlA(RY{UPUq#HrlVH*n*=%{|KlmLy{Og|NaAQZE!Zq7`(B|+d*%gA1 z10Fp;{xDH(pqLIy1Q1uGK%QrgPmUl#enq(TZO?P}BhT4ct9rvAAxpwa;wpCzci4W> z6WsqruR(UkKq;-x!={d7pid&xW{VIs7EGt@M|dTJW~{8$m1KZ0r*S2Ih9*z#+-$Cw z^K4l;hia!-Cj+f^Lolv8wmMF!|I-NiT}xcHN52QAk*o68=n4 z&rj|A9=gr@#@JWtIw(r)k|6m)U07`3Apc_x{@Gf+4xiq800w>uz1h8<_Q)14DG0eH za<#CS?1#^52v1%GXnc>OQJI4Fh7Mf#^5#bqll#p}F_(J~vcLs*p)0fIe#kPoFKkgM z**H>eFXYFL%xzH?N?w>By`MBCFK19|P_X)<0p22ut=tue?vl=JwE zB?#FGJ7V-z2{Xyiruy&>ceSXu>{Kx{CP5rdw4qRYP;=NXSENND!`+i}=5@~`7NezB zcc)eM6n6WeflNEVPT6AxS8{i}4n(Np-Nu5UllPTw7aM+taoW&K|C4Q#l2lo0^|+G` z*AgF*YRN}c;T}7tD--E%p{y$@MYl9_EtaI@s+_#@5#I3kzmkvtjvr$G;@+}?BWdcw zTBP+TSJd-)q(xUkMXY5t!05_YhRYaUbcPIJrHNEvm-fh|poiFCF&a#MfzdM+=RL*| zq358qnFjvTEfLE|PYvLh)(Fca`N&Y|mdoe`QCFhTkR;B&xj74wBvm{#l0_)hpL3@1 zLib305p0to@~0MW~vlc4sZ;j6Z?%k6%HnGD)J=JYdcUi3labBpWYTjrIAS zR?i9Y(Z9CO7IrYvWQl@HEuP37r0;-6qq||0<@wpESlDRI6j^xT=mzKM(CHzv@8dk3 z=G1|tCL2v2GRm_q>}LW=8w-IsUC2OUz5(`!EZ!pCWwkT`;^1964~*@8TLnS!kcIO{ zw4L{799!x3Mxp&Z4Fsrka3JAJ^J|XsCv>d;t=O;z(@hzwS`VE`dc}U^G$@JI+PM0C z$DSl9_nrVzVKnYlRi+k0ps&%6z#BKXi>SLV9C5hoLbH`O*d7XHS6N;;a73oEXR8x; zIY(cA#L0Bb-Q^r)!eSdkITo(4lerh9`u(Hi4?CbU(ve!4?*d=2KG5Fq=03!IS5tg>3Ds6M%@IhlTsz_5eq}_FbFZFTPxmaubTUaW)y!ePaP+pvxbHuBg6IB+k0D1# zMAHizpfRHE*vC?WRLm6`xxtt8m}$Dg5nJ%|vEs83jU5c(TmFeXpJhB`GKI|}mz|yj z8$4q4+Y&ru`)$+Bf(Un@*N1lo!!p;K#pKW9wAYw05=}#pj4`NJ0IX^g>M1FB$?bZsdP6_2phG`>>t6pT(kulg*J?$jxKocTD0y z*PlI@vptOTm)m1&69EZf#WU=Sbub$Ry{Lkhg%&lssQ$X;kXw0VO__OPIRt4lbN+!d zuK&|d^58eUjp<}-ULvQxnkrH!rmPh99DUV8Kp|JRuGQ=@#qyC-f;K^OrJr*X@IwPJ zr)%49D|aPTiYklGF{!npIdl7aUgpJjet^qg_h#5^ZI(b1@BS&IyyZ~Ox%MBvo+qAp zg*%_S*Q(zxpd~S?*SdDuCw@j+-Jnmj@-uG~V(&C-JJ*RPrbnE^+hZ{y9I-K4WM!dn z#-V|BrI5EXr|c0X(n*2?$Z?46pf#7>K6oxwG1(k|DS$A&4}fTdAspz4$N9(MT1$2J zI`;a7oV8a00-+l?N(cH%=TC{(2g57CY^B%zw+2GF8z+LP1y4@xU(V-^W+EKtJ=mv( zEEN%Dl|s?N3>+5!bXAD?5F1Nm`uHK!&(AC%p z|B%cT?i}Cnuz+ksJae~#_&C$0*zk#pS4c@ElbA(0m&&((=G)oJxpl{K^v~+3HOd@< zup{O=C-in@`{qmB_qIp5ThCZ^^)nI3g{=yAS-B&JhHIK1D7VK#z0rpaXHlyaj*Jvl zYE>!+G%fa-eZmIp42Tq^=K?s=2dgp7)sx2xm!>Po2lpJl^{nz{DNZv70iBg~-SNO5c@yWKy}_;TzD_!s(NNT( z_(+h|K}z_o{n7Vnp=z?YbX5~PVFi_tGtzk^o_!u=liOZuo#{%GDLvMl zC2`m<#9$z8ZkRLxf^^$N=l|j_^VTnT zh|QZ{gGzQiQ>m#kF>$CXSKskEc7OW7?tl6qhy59Heek@_~7SYJ3G&$fv3PtR#LI*p$I!hN@&6iGBZTX6Hzm;OK5g4-dH{!iMNfP z=z1gG8?TSLrE2djGseoJBs;~v`WXi=#d#O)MnN?G3LP2xG?01BSP6O3a6yC`pw7Y} zSx=O*fKG6g4KLj~@9$62y&Tn_G3FtRc@H`~)8wK1#xwTzsiTuvxpbZ3h@o}y3V||| zIJHI?RgekFy0YH5$I2rXGZv*RaPOpW^>q(({Ug_rsmByU5L;~7T^S_?vUuiapsJLt z@j@&&eyPd@SIXGEu%R<20Ik^QNj#Y-dCvn=aFP;J1=Yl7zjEcN@BCUm{f$4wP8N?j zJBo}Hsc^l-q3&%z@{^gRn!vP#yNIu6Qaa{lxy_whFWX*^c@7fKCQU(1X=WljQZ|&H zybg8&)ZM9?ttpNH2W{sUV6M7=Z`tfXS`uqjCN})4v$yiif8$%M)Tj~LK>sUIb!Y!R z01I6G=MV9=fAZVl(Id*?p0|ItSn}khIj66C4G(_P+qw09KWUu?XIf+jIxq=EQ`C~t zHf3U&3Ts)pFFnl1zxRWD_{V=9F4Gl6L{gM41Y&TY(wX)|kj>mGk<|Giz^oZ-gRm%N z=o(fV@(1mLA?`7{6TQhtOYV!_+fm+1=dGxC=?il1#OO&78^{ChmafEZW*nDy|*7U8Z$x6X$woZKZ9M$ItbQv&A7C zUvrJZV%sf3Srb#u9O>Nn-00ero~~G5hsd9D(P}oJ?fvWIem?OFpX9^;=x5=Y^U~x$ z4R+9;2tb5@$nT#DLhc-axC+G>Zv$|I^La7e2i&}_Q-1BA1%dPh?ikuEm zb%&fUvO4WIAlVhKt`S-m2mSupoZJxbH#S4hW%7j)-+tY37!PqTY0v2jhn{DrjrSx% zmZh+{c7$w%R4S>?2opsMuRQyrmw*n87|&c>u0)r@&{0LZ{!=x+_fT$};nW^v(EoM@ zp`87~A<)Las|&T}#)~A4I}2&Na8=4t<B@xeu|0@*QZPeGR`z^n&!ykPgt>%5uFK_SXT%oXOiJO?0mJwT&JASW#x;X`~vQK>H+TP zIVo8tvwgxX%HVVtDlDLl>(3$g%|t8HA<#JRvYm7F_N5|;omMViy-K>4nJynw(@KpD_fQ7K)*I6mMa834 zRPWCN$XPFR-Cb1?9iKPxUgF8I}hTs*l@af_>UiYLMQ4~WrL2|5S*l~O>E68H~;>NJoF8B$WKn5aA=BI#XV~R^PIT+)B`MM z2TEBilixB2NJ*)SO&x6sdm<1@*qg;@wQyl{4^Gns=bt==DG6?tzQzMx~d=_sFn8zylBozKg$k48D8KhtK)>ND_2eIep_bGP9j^ zoD2|BX%7^qJ7icRtlcU=$jk~ z4#b1op+@fJ(aV;Jy<&6VC&}FA!1Sp1RQ645$|??Xw4A2g4nXF~-XDRGDBC~`)y!@I zuR)0M9fDT-fye$&!i`Tn$Klx<>^^>j7k~Pb%m+6dJ=YdC$ zN2VG1!V|A@GNLZJQnVmzrLKjtER;i~?hEy>q6b9}+J3L4ur8H#2elNcw;Q(e($1`c zx!Hl9Pzuc1I{?;BJCXG>GILlE<2cYLZ-{%z@Oz64U-O%iY6>BxHtXvHokNK9TS7{Urj;O$aOabe!Mm1P`x{3#B_BOdRpCba^OC= z9ueBKJ@Zud{iw^1r4;k`u6QCFjfW+xm%4gBOtYYZ;tMs2&9g6lW(jIqkV`Yq{r#u8 z^}%O3k{Q`s;%iHcElL()D@TB!QoOlU2P{=qw^PJGV;tF_fJ|SQ&meL_;t8iInJYU= zbA7*cQRH~$@X338?oa+ayXS9`5GHS2R6UVws)f29Kqt1Rm#M^XvF_C=S*Q^T4B#4y z%ggx05lDzf#Ou$qkl9+2lp{~`!jRpICt@gKSV52TdU5CG|i;uz%1{*wIqwb9C zdrw}o`4F{ZVesU}%tTB?v9tZCh8p)KS2joKNVTCJizYj%8t9g#H2-L!IXE9wIz&f78y6yG* zhVgeHH$@y|OidL+@VQ$<+N6i{M5Ym8jO7mFVJeO))#~;qcQ)tEIxx#PyFp$A`b_ zpYiE$`a!lwh4m<5rM32Z{VS?c^mh= z>$PkjyyWy(fnv3+&)wnK|M?eq@!LNKryh^KfF^=j-0~}+*;Dbf3x1cPEG!fsHLKzG z4uRt(NiloDu2Y>K1jvYFL{@8FR4mIo;zTX^bHTFZ_ZSnb;y}xqij;d5d0@lsk6q`d zzxp4s`-vAh&L^zvV%fb^_GRJi@>bq4zsXkb;U9G>biigUBenTl6!L&A=O=k`S-oU1--XS!GU~QVC6Ijb^v-7bZ zaqU5fw9b{aGpPC+y$?d;1F#<9)v8irs+tH?NfZR?$~lJt;P~=`md1VuQO*=u&|V4^ zW1v+PEr~*P$FlWBC>{PYmHoiaid^uZ%5mn# zKmI&-f8ZH}N~tTgtmIYQ(P13`Z@+kh-Se-Icf#S>yG)W;r7+bQa%D*ea*07%L#H`a z@@jipNjgy*K3OU<*l5Bb4{20A;&%!pX)ixtaA^>+2UC?;j zas;rP57Zyc&NcZ#NPB>|;GpE%!{dzG)6e_g)m>i4!i}GMhI(EoIa8AXpp|pBUvNKp zJDICBghwF!Kr7)g!ZINVD?c76?m1Q^BnFQG^mrx%0Z2d85Y(FuyJyZh+TO<_U;I{- z$|T9_a6u%)dd>r1_j(@r^^a3-?vc&Z<2{qY?ByyoF<+U<$1~^4Is0

fQ5FHNkzT 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 P;O_{s%2=IB|{^eNK2Fzi(_sUHC7Zmyg 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

D!GQ(Yn!w{jmD6$IKDgL@5dPDj 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%0D%)$y{=PleuikcB(UfY! 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
6nG
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

oTLA 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%0D<~nhfz4iIwi*@noZqeFYvENHIlfyx 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 CRwH2m literal 0 HcmV?d00001 diff --git a/VibeTunnel/Assets.xcassets/menubar.imageset/menubar@2x.png b/VibeTunnel/Assets.xcassets/menubar.imageset/menubar@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc156c1f72f109d82d3c579b1bb3864c4f54eed0 GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}EvXTnX}-P; zT0k}j11qBt12aeo5Hc`IF|dN!3=Ce3(r|VVqXtwB69YqgCIbspO%#v@0S_Ps>W0$H z3m6e5E?|PIR#?D{V1u;9@8SOdq&N#aB8wRqxP?KOkzv*x37~0_nIRD+5xzcF$@#f@ zi7EL>sd^Q;1t47vHWgMtW^QUpqC!P(PF}H9g{=};g%ywu64qBz04piUwpEJo4N!2- zFG^J~(=*UBP_pAvP*AWbN=dT{a&d!d2l8x{GD=Dctn~HE%ggo3jrH=2()A53EiLs8 zjP#9+bb%^#i!1X=5-W7`ij^UTz|3(;Elw`VEGWs$&r<-Io0ybeT4JlD1hNPYAnq*5 zOhed|R}A$Q(1ZFQ8GS=N1AVyJK&>_)Q7iwV%v7MwAoJ}EZNMr~#Gv-r=z}araty?$ zU{Rn~?YM08;lXCdB^mdSoq>U=!qdeuB!ctpwEcdffda?G1&-XfaPdZzgz$lLT`lg0 zi`IS&^;px;(p0`+k8bNUyA~lXLymvnf4@EV-1d#_?&@#Hj_%PWShFDmENHmpc5M-}-oliqAgH`{xCp@4fX~aCNa~j8Pij&;E@0?a7`(YWF9c z5B(whI>KOMbm`fy$qCOa{`G8A>D2plxMkV&J7x1Um+VwgIMntxX^oe=Mzz)F=3U!o z?wxM2>(}gcDrMDowwai9)vS{a65nmHc@rt#RhLJOF_t!6LcFZ*Eg$=6S%c%DVQXNgvz%2Lq`_RaTWd4K#^I$6_Cp)_mq zlY6yUI}`;^I57MFi-)hLdbiy@e{9ha z%MJQ3>J=62Y|lnNdpRks?Umk%nX=bkuYB;ePW`V>0jq-ReL#e4Dg;@7$K@k3&DqRCc!iTi|2DWtgC>sQRS$Y025WGDj@C4&Gy_(b{qP zXS+4ua>FMNKb1c={H$EQ%GCW*X>e)VABS5vYRz@q@87EHGk-DDO3b>{MO92fmc9L= gpRDJdvhuJ8{Aa@ZE~PI_Z2)CwPgg&ebxsLQ0DC3BegFUf literal 0 HcmV?d00001 diff --git a/VibeTunnel/Core/.DS_Store b/VibeTunnel/Core/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ee37917e721789cf7d86ca3050cfe89e575eb721 GIT binary patch literal 6148 zcmeHK!AiqG5S^(-B3|mvP@7~!0g-1&TJ+xo6If|@#L-=6OD){g9;Az&}Z?)){aH zoPi|+@_z_W!Q8M@jK2;v@dyAM!W;$txMu?Ig UpdateChannel { + // First check if this build was marked as a pre-release during build time + if let isPrereleaseValue = Bundle.main.object(forInfoDictionaryKey: "IS_PRERELEASE_BUILD"), + let isPrerelease = isPrereleaseValue as? Bool, + isPrerelease { + return .prerelease + } + + // Otherwise, check if the version string contains pre-release keywords + let prereleaseKeywords = ["beta", "alpha", "rc", "pre", "dev"] + let lowercaseVersion = appVersion.lowercased() + + for keyword in prereleaseKeywords where lowercaseVersion.contains(keyword) { + return .prerelease + } + + return .stable + } +} + +// MARK: - Identifiable Conformance + +extension UpdateChannel: Identifiable { + public var id: String { rawValue } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/AuthenticationMiddleware.swift b/VibeTunnel/Core/Services/AuthenticationMiddleware.swift new file mode 100644 index 00000000..2eb5bc84 --- /dev/null +++ b/VibeTunnel/Core/Services/AuthenticationMiddleware.swift @@ -0,0 +1,107 @@ +// +// AuthenticationMiddleware.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import Hummingbird +import HummingbirdCore +import Logging +import CryptoKit + +/// Simple authentication middleware for the tunnel server +struct AuthenticationMiddleware: RouterMiddleware { + private let logger = Logger(label: "VibeTunnel.AuthMiddleware") + private let apiKeyHeader = "X-API-Key" + private let bearerPrefix = "Bearer " + + // In production, this should be stored securely and configurable + private let validApiKeys: Set + + init() { + // Generate a default API key for development + // In production, this should be configurable via settings + let defaultKey = Self.generateAPIKey() + self.validApiKeys = [defaultKey] + + logger.info("Authentication initialized. Default API key: \(defaultKey)") + } + + init(apiKeys: Set) { + self.validApiKeys = apiKeys + } + + func handle(_ request: Request, context: Context, next: (Request, Context) async throws -> Response) async throws -> Response { + // Skip authentication for health check and WebSocket upgrade + if request.uri.path == "/health" || request.headers[.upgrade] == "websocket" { + return try await next(request, context) + } + + // Check for API key in header + if let apiKey = request.headers[apiKeyHeader] { + if validApiKeys.contains(apiKey) { + return try await next(request, context) + } + } + + // Check for Bearer token + if let authorization = request.headers[.authorization], + authorization.hasPrefix(bearerPrefix) { + let token = String(authorization.dropFirst(bearerPrefix.count)) + if validApiKeys.contains(token) { + return try await next(request, context) + } + } + + // No valid authentication found + logger.warning("Unauthorized request to \(request.uri.path)") + throw HTTPError(.unauthorized, message: "Invalid or missing API key") + } + + /// Generate a secure API key + static func generateAPIKey() -> String { + let randomBytes = SymmetricKey(size: .bits256) + let data = randomBytes.withUnsafeBytes { Data($0) } + return data.base64EncodedString() + .replacingOccurrences(of: "+", with: "-") + .replacingOccurrences(of: "/", with: "_") + .replacingOccurrences(of: "=", with: "") + } +} + +/// Extension to store and retrieve API keys from UserDefaults +extension AuthenticationMiddleware { + static let apiKeyStorageKey = "VibeTunnel.APIKeys" + + static func loadStoredAPIKeys() -> Set { + guard let data = UserDefaults.standard.data(forKey: apiKeyStorageKey), + let keys = try? JSONDecoder().decode(Set.self, from: data) else { + // Generate and store a default key if none exists + let defaultKey = generateAPIKey() + let keys = Set([defaultKey]) + saveAPIKeys(keys) + return keys + } + return keys + } + + static func saveAPIKeys(_ keys: Set) { + if let data = try? JSONEncoder().encode(keys) { + UserDefaults.standard.set(data, forKey: apiKeyStorageKey) + } + } + + static func addAPIKey(_ key: String) { + var keys = loadStoredAPIKeys() + keys.insert(key) + saveAPIKeys(keys) + } + + static func removeAPIKey(_ key: String) { + var keys = loadStoredAPIKeys() + keys.remove(key) + saveAPIKeys(keys) + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/SparkleUpdaterManager.swift b/VibeTunnel/Core/Services/SparkleUpdaterManager.swift new file mode 100644 index 00000000..85fd933f --- /dev/null +++ b/VibeTunnel/Core/Services/SparkleUpdaterManager.swift @@ -0,0 +1,334 @@ +import os +import Sparkle +import UserNotifications + +/// Manages the Sparkle auto-update framework integration for VibeTunnel. +/// +/// SparkleUpdaterManager provides: +/// - Automatic update checking and installation +/// - Update UI presentation and user interaction +/// - Delegate callbacks for update lifecycle events +/// - Configuration of update channels and behavior +/// +/// ## Features +/// - Automatic update checks based on configured interval +/// - Background downloads with gentle reminders +/// - Support for stable and pre-release update channels +/// - Critical update handling +/// - User notification integration +/// +/// ## Usage +/// ```swift +/// let updaterManager = SparkleUpdaterManager() +/// updaterManager.checkForUpdates() // Manual check +/// updaterManager.setUpdateChannel(.preRelease) // Switch channels +/// ``` +@MainActor +@Observable +public class SparkleUpdaterManager: NSObject, SPUUpdaterDelegate, SPUStandardUserDriverDelegate, UNUserNotificationCenterDelegate { + // MARK: Initialization + + private nonisolated static let staticLogger = Logger(subsystem: "com.amantus.vibetunnel", category: "updates") + + /// Initializes the updater manager and configures Sparkle + override init() { + super.init() + + Self.staticLogger.info("Initializing SparkleUpdaterManager") + + // Initialize the updater controller + initializeUpdaterController() + + // Set up notification center for gentle reminders + setupNotificationCenter() + + // Listen for update channel changes + setupUpdateChannelListener() + Self.staticLogger + .info("SparkleUpdaterManager initialized. Updater controller initialization completed.") + + // Only schedule startup update check in release builds + #if !DEBUG + scheduleStartupUpdateCheck() + #endif + } + + // MARK: Public + + // MARK: Properties + + /// The shared singleton instance of the updater manager + static let shared = SparkleUpdaterManager() + + /// The Sparkle updater controller instance + private(set) var updaterController: SPUStandardUpdaterController? + + /// The logger instance for update events + private let logger = Logger(subsystem: "com.amantus.vibetunnel", category: "updates") + + // Track update state + private var updateInProgress = false + private var lastUpdateCheckDate: Date? + private var gentleReminderTimer: Timer? + + // MARK: Methods + + /// Checks for updates immediately + func checkForUpdates() { + guard let updaterController = updaterController else { + logger.warning("Updater controller not available") + return + } + + logger.info("Manual update check initiated") + updaterController.checkForUpdates(nil) + } + + /// Configures the update channel and restarts if needed + func setUpdateChannel(_ channel: UpdateChannel) { + // Store the channel preference + UserDefaults.standard.set(channel.rawValue, forKey: "updateChannel") + + logger.info("Update channel changed to: \(channel.rawValue)") + + // Force a new update check with the new feed + checkForUpdates() + } + + // MARK: Private + + /// Initializes the Sparkle updater controller + private func initializeUpdaterController() { + updaterController = SPUStandardUpdaterController( + startingUpdater: true, + updaterDelegate: self, + userDriverDelegate: self + ) + + guard let updater = updaterController?.updater else { + logger.error("Failed to get updater from controller") + return + } + + // Configure updater settings + updater.automaticallyChecksForUpdates = true + updater.updateCheckInterval = 60 * 60 // 1 hour + updater.automaticallyDownloadsUpdates = true + + logger.info(""" + Updater configured: + - Automatic checks: \(updater.automaticallyChecksForUpdates) + - Check interval: \(updater.updateCheckInterval)s + - Auto download: \(updater.automaticallyDownloadsUpdates) + """) + } + + /// Sets up the notification center for gentle reminders + private func setupNotificationCenter() { + UNUserNotificationCenter.current().delegate = self + + // Request notification permissions + Task { + do { + let granted = try await UNUserNotificationCenter.current() + .requestAuthorization(options: [.alert, .sound]) + logger.info("Notification permission granted: \(granted)") + } catch { + logger.error("Failed to request notification permission: \(error.localizedDescription)") + } + } + } + + /// Sets up a listener for update channel changes + private func setupUpdateChannelListener() { + // Listen for channel changes via UserDefaults + UserDefaults.standard.addObserver( + self, + forKeyPath: "updateChannel", + options: [.new], + context: nil + ) + } + + /// Schedules an update check after app startup + private func scheduleStartupUpdateCheck() { + // Check for updates 5 seconds after app launch + DispatchQueue.main.asyncAfter(deadline: .now() + 5) { [weak self] in + self?.checkForUpdatesInBackground() + } + } + + /// Checks for updates in the background without UI + private func checkForUpdatesInBackground() { + logger.info("Starting background update check") + lastUpdateCheckDate = Date() + + // Sparkle will check in the background when automaticallyChecksForUpdates is true + // We don't need to explicitly call checkForUpdates for background checks + } + + /// Shows a gentle reminder notification for available updates + @MainActor + private func showGentleUpdateReminder() { + let content = UNMutableNotificationContent() + content.title = "Update Available" + content.body = "A new version of VibeTunnel is ready to install. Click to update now." + content.sound = .default + + let request = UNNotificationRequest( + identifier: "update-reminder", + content: content, + trigger: nil + ) + + Task { + do { + try await UNUserNotificationCenter.current().add(request) + logger.info("Gentle update reminder shown") + } catch { + logger.error("Failed to show update reminder: \(error.localizedDescription)") + } + } + } + + /// Schedules periodic gentle reminders for available updates + private func scheduleGentleReminders() { + // Cancel any existing timer + gentleReminderTimer?.invalidate() + + // Schedule reminders every 4 hours + gentleReminderTimer = Timer.scheduledTimer(withTimeInterval: 4 * 60 * 60, repeats: true) { + [weak self] _ in + Task { @MainActor in + self?.showGentleUpdateReminder() + } + } + + // Show first reminder after 1 hour + DispatchQueue.main.asyncAfter(deadline: .now() + 3600) { [weak self] in + Task { @MainActor in + self?.showGentleUpdateReminder() + } + } + } + + // MARK: - SPUUpdaterDelegate + + @objc public nonisolated func updater(_ updater: SPUUpdater, didFinishLoading appcast: SUAppcast) { + Task { @MainActor in + Self.staticLogger.info("Appcast loaded successfully: \(appcast.items.count) items") + } + } + + @objc public nonisolated func updaterDidNotFindUpdate(_ updater: SPUUpdater, error: Error) { + Task { @MainActor in + Self.staticLogger.info("No update found: \(error.localizedDescription)") + } + } + + @objc public nonisolated func updater(_ updater: SPUUpdater, didAbortWithError error: Error) { + Task { @MainActor in + Self.staticLogger.error("Update aborted with error: \(error.localizedDescription)") + } + } + + // Provide the feed URL dynamically based on update channel + @objc public nonisolated func feedURLString(for updater: SPUUpdater) -> String? { + return UpdateChannel.current.appcastURL.absoluteString + } + + // MARK: - SPUStandardUserDriverDelegate + + @objc public nonisolated func standardUserDriverWillHandleShowingUpdate( + _ handleShowingUpdate: Bool, + forUpdate update: SUAppcastItem, + state: SPUUserUpdateState + ) { + Task { @MainActor in + Self.staticLogger.info(""" + Will show update: + - Version: \(update.displayVersionString) + - Critical: \(update.isCriticalUpdate) + - Stage: \(state.stage.rawValue) + """) + } + } + + @objc public func standardUserDriverDidReceiveUserAttention(forUpdate update: SUAppcastItem) { + logger.info("User gave attention to update: \(update.displayVersionString)") + updateInProgress = true + + // Cancel gentle reminders since user is aware + gentleReminderTimer?.invalidate() + gentleReminderTimer = nil + } + + @objc public func standardUserDriverWillFinishUpdateSession() { + logger.info("Update session finishing") + updateInProgress = false + } + + // MARK: - Background update handling + + @objc public func updater( + _ updater: SPUUpdater, + willDownloadUpdate item: SUAppcastItem, + with request: NSMutableURLRequest + ) { + logger.info("Will download update: \(item.displayVersionString)") + } + + @objc public func updater(_ updater: SPUUpdater, didDownloadUpdate item: SUAppcastItem) { + logger.info("Update downloaded: \(item.displayVersionString)") + + // For background downloads, schedule gentle reminders + if !updateInProgress { + scheduleGentleReminders() + } + } + + @objc public func updater( + _ updater: SPUUpdater, + willInstallUpdate item: SUAppcastItem + ) { + logger.info("Will install update: \(item.displayVersionString)") + } + + // MARK: - UNUserNotificationCenterDelegate + + @objc public func userNotificationCenter( + _ center: UNUserNotificationCenter, + didReceive response: UNNotificationResponse, + withCompletionHandler completionHandler: @escaping () -> Void + ) { + if response.notification.request.identifier == "update-reminder" { + logger.info("User clicked update reminder notification") + + // Trigger the update UI + checkForUpdates() + } + + completionHandler() + } + + // MARK: - KVO + + public override func observeValue( + forKeyPath keyPath: String?, + of object: Any?, + change: [NSKeyValueChangeKey: Any]?, + context: UnsafeMutableRawPointer? + ) { + if keyPath == "updateChannel" { + logger.info("Update channel changed via UserDefaults") + setUpdateChannel(UpdateChannel.current) + } + } + + // MARK: - Cleanup + + deinit { + UserDefaults.standard.removeObserver(self, forKeyPath: "updateChannel") + // Timer is cleaned up automatically when the object is deallocated + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/StartupManager.swift b/VibeTunnel/Core/Services/StartupManager.swift new file mode 100644 index 00000000..fea90095 --- /dev/null +++ b/VibeTunnel/Core/Services/StartupManager.swift @@ -0,0 +1,41 @@ +import Foundation +import ServiceManagement +import os + +/// Protocol defining the interface for managing launch at login functionality. +@MainActor +public protocol StartupControlling: Sendable { + func setLaunchAtLogin(enabled: Bool) + var isLaunchAtLoginEnabled: Bool { get } +} + +/// Default implementation of startup management using ServiceManagement framework. +/// +/// This struct handles: +/// - Enabling/disabling launch at login +/// - Checking current launch at login status +/// - Integration with macOS ServiceManagement APIs +@MainActor +public struct StartupManager: StartupControlling { + private let logger = Logger(subsystem: "com.amantus.vibetunnel", category: "startup") + + public init() {} + + public func setLaunchAtLogin(enabled: Bool) { + do { + if enabled { + try SMAppService.mainApp.register() + logger.info("Successfully registered for launch at login.") + } else { + try SMAppService.mainApp.unregister() + logger.info("Successfully unregistered for launch at login.") + } + } catch { + logger.error("Failed to \(enabled ? "register" : "unregister") for launch at login: \(error.localizedDescription)") + } + } + + public var isLaunchAtLoginEnabled: Bool { + SMAppService.mainApp.status == .enabled + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/TerminalManager.swift b/VibeTunnel/Core/Services/TerminalManager.swift new file mode 100644 index 00000000..d32c5e7e --- /dev/null +++ b/VibeTunnel/Core/Services/TerminalManager.swift @@ -0,0 +1,163 @@ +// +// TerminalManager.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import Logging +import Combine + +/// Manages terminal sessions and command execution +actor TerminalManager { + private var sessions: [UUID: TunnelSession] = [:] + private var processes: [UUID: Process] = [:] + private var pipes: [UUID: (stdin: Pipe, stdout: Pipe, stderr: Pipe)] = [:] + private let logger = Logger(label: "VibeTunnel.TerminalManager") + + /// Create a new terminal session + func createSession(request: CreateSessionRequest) throws -> TunnelSession { + let session = TunnelSession() + sessions[session.id] = session + + // Set up process and pipes + let process = Process() + let stdinPipe = Pipe() + let stdoutPipe = Pipe() + let stderrPipe = Pipe() + + // Configure the process + process.executableURL = URL(fileURLWithPath: request.shell ?? "/bin/zsh") + process.standardInput = stdinPipe + process.standardOutput = stdoutPipe + process.standardError = stderrPipe + + if let workingDirectory = request.workingDirectory { + process.currentDirectoryURL = URL(fileURLWithPath: workingDirectory) + } + + if let environment = request.environment { + process.environment = ProcessInfo.processInfo.environment.merging(environment) { _, new in new } + } + + // Start the process + do { + try process.run() + processes[session.id] = process + pipes[session.id] = (stdinPipe, stdoutPipe, stderrPipe) + + logger.info("Created session \(session.id) with process \(process.processIdentifier)") + } catch { + sessions.removeValue(forKey: session.id) + throw error + } + + return session + } + + /// Execute a command in a session + func executeCommand(sessionId: UUID, command: String) async throws -> (output: String, error: String) { + guard var session = sessions[sessionId], + let process = processes[sessionId], + let (stdin, stdout, stderr) = pipes[sessionId], + process.isRunning else { + throw TunnelError.sessionNotFound + } + + // Update session activity + session.updateActivity() + sessions[sessionId] = session + + // Send command to stdin + let commandData = (command + "\n").data(using: .utf8)! + stdin.fileHandleForWriting.write(commandData) + + // Read output with timeout + let outputData = try await withTimeout(seconds: 5) { + stdout.fileHandleForReading.availableData + } + + let errorData = try await withTimeout(seconds: 0.1) { + stderr.fileHandleForReading.availableData + } + + let output = String(data: outputData, encoding: .utf8) ?? "" + let error = String(data: errorData, encoding: .utf8) ?? "" + + return (output, error) + } + + /// Get all active sessions + func listSessions() -> [TunnelSession] { + return Array(sessions.values) + } + + /// Get a specific session + func getSession(id: UUID) -> TunnelSession? { + return sessions[id] + } + + /// Close a session + func closeSession(id: UUID) { + if let process = processes[id] { + process.terminate() + processes.removeValue(forKey: id) + } + pipes.removeValue(forKey: id) + sessions.removeValue(forKey: id) + + logger.info("Closed session \(id)") + } + + /// Clean up inactive sessions + func cleanupInactiveSessions(olderThan minutes: Int = 30) { + let cutoffDate = Date().addingTimeInterval(-Double(minutes * 60)) + + for (id, session) in sessions { + if session.lastActivity < cutoffDate { + closeSession(id: id) + logger.info("Cleaned up inactive session \(id)") + } + } + } + + // Helper function for timeout + private func withTimeout(seconds: TimeInterval, operation: @escaping () async throws -> T) async throws -> T { + try await withThrowingTaskGroup(of: T.self) { group in + group.addTask { + try await operation() + } + + group.addTask { + try await Task.sleep(nanoseconds: UInt64(seconds * 1_000_000_000)) + throw TunnelError.timeout + } + + let result = try await group.next()! + group.cancelAll() + return result + } + } +} + +/// Errors that can occur in tunnel operations +enum TunnelError: LocalizedError { + case sessionNotFound + case commandExecutionFailed(String) + case timeout + case invalidRequest + + var errorDescription: String? { + switch self { + case .sessionNotFound: + return "Session not found" + case .commandExecutionFailed(let message): + return "Command execution failed: \(message)" + case .timeout: + return "Operation timed out" + case .invalidRequest: + return "Invalid request" + } + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/TunnelClient.swift b/VibeTunnel/Core/Services/TunnelClient.swift new file mode 100644 index 00000000..14d0f7e1 --- /dev/null +++ b/VibeTunnel/Core/Services/TunnelClient.swift @@ -0,0 +1,271 @@ +// +// TunnelClient.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import Combine + +/// Client SDK for interacting with the VibeTunnel server +public class TunnelClient { + private let baseURL: URL + private let apiKey: String + private var session: URLSession + private let decoder = JSONDecoder() + private let encoder = JSONEncoder() + + public init(baseURL: URL = URL(string: "http://localhost:8080")!, apiKey: String) { + self.baseURL = baseURL + self.apiKey = apiKey + + let config = URLSessionConfiguration.default + config.httpAdditionalHeaders = ["X-API-Key": apiKey] + self.session = URLSession(configuration: config) + + decoder.dateDecodingStrategy = .iso8601 + encoder.dateEncodingStrategy = .iso8601 + } + + // MARK: - Health Check + + public func checkHealth() async throws -> Bool { + let url = baseURL.appendingPathComponent("health") + let (_, response) = try await session.data(from: url) + + guard let httpResponse = response as? HTTPURLResponse else { + throw TunnelClientError.invalidResponse + } + + return httpResponse.statusCode == 200 + } + + // MARK: - Session Management + + public func createSession(workingDirectory: String? = nil, + environment: [String: String]? = nil, + shell: String? = nil) async throws -> CreateSessionResponse { + let url = baseURL.appendingPathComponent("sessions") + let request = CreateSessionRequest( + workingDirectory: workingDirectory, + environment: environment, + shell: shell + ) + + return try await post(to: url, body: request) + } + + public func listSessions() async throws -> [SessionInfo] { + let url = baseURL.appendingPathComponent("sessions") + let response: ListSessionsResponse = try await get(from: url) + return response.sessions + } + + public func getSession(id: String) async throws -> SessionInfo { + let url = baseURL.appendingPathComponent("sessions/\(id)") + return try await get(from: url) + } + + public func closeSession(id: String) async throws { + let url = baseURL.appendingPathComponent("sessions/\(id)") + try await delete(from: url) + } + + // MARK: - Command Execution + + public func executeCommand(sessionId: String, command: String, args: [String]? = nil) async throws -> CommandResponse { + let url = baseURL.appendingPathComponent("execute") + let request = CommandRequest( + sessionId: sessionId, + command: command, + args: args, + environment: nil + ) + + return try await post(to: url, body: request) + } + + // MARK: - WebSocket Connection + + public func connectWebSocket(sessionId: String? = nil) -> TunnelWebSocketClient { + var wsURL = baseURL + wsURL.scheme = wsURL.scheme == "https" ? "wss" : "ws" + wsURL = wsURL.appendingPathComponent("ws/terminal") + + return TunnelWebSocketClient(url: wsURL, apiKey: apiKey, sessionId: sessionId) + } + + // MARK: - Private Helpers + + private func get(from url: URL) async throws -> T { + let (data, response) = try await session.data(from: url) + + guard let httpResponse = response as? HTTPURLResponse else { + throw TunnelClientError.invalidResponse + } + + guard httpResponse.statusCode == 200 else { + throw TunnelClientError.httpError(statusCode: httpResponse.statusCode) + } + + return try decoder.decode(T.self, from: data) + } + + private func post(to url: URL, body: T) async throws -> R { + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.httpBody = try encoder.encode(body) + + let (data, response) = try await session.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse else { + throw TunnelClientError.invalidResponse + } + + guard (200...299).contains(httpResponse.statusCode) else { + throw TunnelClientError.httpError(statusCode: httpResponse.statusCode) + } + + return try decoder.decode(R.self, from: data) + } + + private func delete(from url: URL) async throws { + var request = URLRequest(url: url) + request.httpMethod = "DELETE" + + let (_, response) = try await session.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse else { + throw TunnelClientError.invalidResponse + } + + guard httpResponse.statusCode == 204 else { + throw TunnelClientError.httpError(statusCode: httpResponse.statusCode) + } + } +} + +/// WebSocket client for real-time terminal communication +public class TunnelWebSocketClient: NSObject { + private let url: URL + private let apiKey: String + private var sessionId: String? + private var webSocketTask: URLSessionWebSocketTask? + private let messageSubject = PassthroughSubject() + + public var messages: AnyPublisher { + messageSubject.eraseToAnyPublisher() + } + + init(url: URL, apiKey: String, sessionId: String? = nil) { + self.url = url + self.apiKey = apiKey + self.sessionId = sessionId + super.init() + } + + public func connect() { + let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil) + var request = URLRequest(url: url) + request.setValue(apiKey, forHTTPHeaderField: "X-API-Key") + + webSocketTask = session.webSocketTask(with: request) + webSocketTask?.resume() + + // Send initial connection message if session ID is provided + if let sessionId = sessionId { + send(WSMessage(type: .connect, sessionId: sessionId)) + } + + // Start receiving messages + receiveMessage() + } + + public func send(_ message: WSMessage) { + guard let webSocketTask = webSocketTask else { return } + + do { + let data = try JSONEncoder().encode(message) + let text = String(data: data, encoding: .utf8) ?? "{}" + let message = URLSessionWebSocketTask.Message.string(text) + + webSocketTask.send(message) { error in + if let error = error { + print("WebSocket send error: \(error)") + } + } + } catch { + print("Failed to encode message: \(error)") + } + } + + public func sendCommand(_ command: String) { + guard let sessionId = sessionId else { return } + send(WSMessage(type: .command, sessionId: sessionId, data: command)) + } + + public func disconnect() { + webSocketTask?.cancel(with: .goingAway, reason: nil) + } + + private func receiveMessage() { + webSocketTask?.receive { [weak self] result in + switch result { + case .success(let message): + switch message { + case .string(let text): + if let data = text.data(using: .utf8), + let wsMessage = try? JSONDecoder().decode(WSMessage.self, from: data) { + self?.messageSubject.send(wsMessage) + } + case .data(let data): + if let wsMessage = try? JSONDecoder().decode(WSMessage.self, from: data) { + self?.messageSubject.send(wsMessage) + } + @unknown default: + break + } + + // Continue receiving messages + self?.receiveMessage() + + case .failure(let error): + print("WebSocket receive error: \(error)") + } + } + } +} + +// MARK: - URLSessionWebSocketDelegate + +extension TunnelWebSocketClient: URLSessionWebSocketDelegate { + public func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didOpenWithProtocol protocol: String?) { + print("WebSocket connected") + } + + public func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didCloseWith closeCode: URLSessionWebSocketTask.CloseCode, reason: Data?) { + print("WebSocket disconnected") + messageSubject.send(completion: .finished) + } +} + +// MARK: - Errors + +public enum TunnelClientError: LocalizedError { + case invalidResponse + case httpError(statusCode: Int) + case decodingError(Error) + + public var errorDescription: String? { + switch self { + case .invalidResponse: + return "Invalid response from server" + case .httpError(let statusCode): + return "HTTP error: \(statusCode)" + case .decodingError(let error): + return "Decoding error: \(error.localizedDescription)" + } + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/TunnelServer.swift b/VibeTunnel/Core/Services/TunnelServer.swift new file mode 100644 index 00000000..01d87347 --- /dev/null +++ b/VibeTunnel/Core/Services/TunnelServer.swift @@ -0,0 +1,259 @@ +// +// TunnelServer.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import AppKit +import Combine +import Logging +import os +import Hummingbird +import HummingbirdCore +import HummingbirdWebSocket +import NIOCore +import NIOHTTP1 + +/// Main tunnel server implementation using Hummingbird +@MainActor +final class TunnelServer: ObservableObject { + private let port: Int + private let logger = Logger(label: "VibeTunnel.TunnelServer") + private var app: Application? + private let terminalManager = TerminalManager() + + @Published var isRunning = false + @Published var lastError: Error? + @Published var connectedClients = 0 + + init(port: Int = 8080) { + self.port = port + } + + func start() async throws { + logger.info("Starting tunnel server on port \(port)") + + do { + // Build the Hummingbird application + let app = try await buildApplication() + self.app = app + + // Start the server + try await app.run() + + await MainActor.run { + self.isRunning = true + } + } catch { + await MainActor.run { + self.lastError = error + self.isRunning = false + } + throw error + } + } + + func stop() async { + logger.info("Stopping tunnel server") + + if let app = app { + await app.stop() + self.app = nil + } + + await MainActor.run { + self.isRunning = false + } + } + + private func buildApplication() async throws -> Application { + // Create router + var router = RouterBuilder() + + // Add middleware + router.middlewares.add(LogRequestsMiddleware(logLevel: .info)) + router.middlewares.add(CORSMiddleware()) + router.middlewares.add(AuthenticationMiddleware(apiKeys: AuthenticationMiddleware.loadStoredAPIKeys())) + + // Configure routes + configureRoutes(&router) + + // Add WebSocket routes + router.addWebSocketRoutes(terminalManager: terminalManager) + + // Create application configuration + let configuration = ApplicationConfiguration( + address: .hostname("127.0.0.1", port: port), + serverName: "VibeTunnel" + ) + + // Create and configure the application + let app = Application( + router: router.buildRouter(), + configuration: configuration, + logger: logger + ) + + // Add cleanup task + app.services.add(CleanupService(terminalManager: terminalManager)) + + return app + } + + private func configureRoutes(_ router: inout RouterBuilder) { + // Health check endpoint + router.get("/health") { request, context -> HTTPResponse.Status in + return .ok + } + + // Server info endpoint + router.get("/info") { request, context -> [String: Any] in + return [ + "name": "VibeTunnel", + "version": Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0.0", + "uptime": ProcessInfo.processInfo.systemUptime, + "sessions": await self.terminalManager.listSessions().count + ] + } + + // Session management endpoints + router.group("sessions") { sessions in + // List all sessions + sessions.get("/") { request, context -> ListSessionsResponse in + let sessions = await self.terminalManager.listSessions() + let sessionInfos = sessions.map { session in + SessionInfo( + id: session.id.uuidString, + createdAt: session.createdAt, + lastActivity: session.lastActivity, + isActive: session.isActive + ) + } + return ListSessionsResponse(sessions: sessionInfos) + } + + // Create new session + sessions.post("/") { request, context -> CreateSessionResponse in + let createRequest = try await request.decode(as: CreateSessionRequest.self, context: context) + let session = try await self.terminalManager.createSession(request: createRequest) + + return CreateSessionResponse( + sessionId: session.id.uuidString, + createdAt: session.createdAt + ) + } + + // Get session info + sessions.get(":sessionId") { request, context -> SessionInfo in + guard let sessionIdString = request.parameters.get("sessionId"), + let sessionId = UUID(uuidString: sessionIdString), + let session = await self.terminalManager.getSession(id: sessionId) else { + throw HTTPError(.notFound) + } + + return SessionInfo( + id: session.id.uuidString, + createdAt: session.createdAt, + lastActivity: session.lastActivity, + isActive: session.isActive + ) + } + + // Close session + sessions.delete(":sessionId") { request, context -> HTTPResponse.Status in + guard let sessionIdString = request.parameters.get("sessionId"), + let sessionId = UUID(uuidString: sessionIdString) else { + throw HTTPError(.badRequest) + } + + await self.terminalManager.closeSession(id: sessionId) + return .noContent + } + } + + // Command execution endpoint + router.post("/execute") { request, context -> CommandResponse in + let commandRequest = try await request.decode(as: CommandRequest.self, context: context) + + guard let sessionId = UUID(uuidString: commandRequest.sessionId) else { + throw HTTPError(.badRequest, message: "Invalid session ID") + } + + do { + let (output, error) = try await self.terminalManager.executeCommand( + sessionId: sessionId, + command: commandRequest.command + ) + + return CommandResponse( + sessionId: commandRequest.sessionId, + output: output.isEmpty ? nil : output, + error: error.isEmpty ? nil : error, + exitCode: nil, + timestamp: Date() + ) + } catch { + throw HTTPError(.internalServerError, message: error.localizedDescription) + } + } + } + + // Service for periodic cleanup + struct CleanupService: Service { + let terminalManager: TerminalManager + + func run() async throws { + // Run cleanup every 5 minutes + while !Task.isCancelled { + await terminalManager.cleanupInactiveSessions(olderThan: 30) + try await Task.sleep(nanoseconds: 5 * 60 * 1_000_000_000) // 5 minutes + } + } + } +} + +// MARK: - Middleware + +/// CORS middleware for browser-based clients +struct CORSMiddleware: RouterMiddleware { + func handle(_ request: Request, context: Context, next: (Request, Context) async throws -> Response) async throws -> Response { + var response = try await next(request, context) + + response.headers[.accessControlAllowOrigin] = "*" + response.headers[.accessControlAllowMethods] = "GET, POST, PUT, DELETE, OPTIONS" + response.headers[.accessControlAllowHeaders] = "Content-Type, Authorization" + + return response + } +} + +// MARK: - Integration with AppDelegate + +extension AppDelegate { + func startTunnelServer() { + Task { + do { + let port = UserDefaults.standard.integer(forKey: "serverPort") + let tunnelServer = TunnelServer(port: port > 0 ? port : 8080) + + // Store reference if needed + // self.tunnelServer = tunnelServer + + try await tunnelServer.start() + } catch { + print("Failed to start tunnel server: \(error)") + + // Show error alert + await MainActor.run { + let alert = NSAlert() + alert.messageText = "Failed to Start Server" + alert.informativeText = error.localizedDescription + alert.alertStyle = .critical + alert.runModal() + } + } + } + } +} \ No newline at end of file diff --git a/VibeTunnel/Core/Services/TunnelServerDemo.swift b/VibeTunnel/Core/Services/TunnelServerDemo.swift new file mode 100644 index 00000000..1a06e1b5 --- /dev/null +++ b/VibeTunnel/Core/Services/TunnelServerDemo.swift @@ -0,0 +1,151 @@ +// +// TunnelServerDemo.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import Combine + +/// Demo code showing how to use the VibeTunnel server +class TunnelServerDemo { + + static func runDemo() async { + // Get the API key (in production, this should be managed securely) + let apiKeys = AuthenticationMiddleware.loadStoredAPIKeys() + guard let apiKey = apiKeys.first else { + print("No API key found") + return + } + + print("Using API key: \(apiKey)") + + // Create client + let client = TunnelClient(apiKey: apiKey) + + do { + // Check server health + let isHealthy = try await client.checkHealth() + print("Server healthy: \(isHealthy)") + + // Create a new session + let session = try await client.createSession( + workingDirectory: "/tmp", + shell: "/bin/zsh" + ) + print("Created session: \(session.sessionId)") + + // Execute a command + let response = try await client.executeCommand( + sessionId: session.sessionId, + command: "echo 'Hello from VibeTunnel!'" + ) + print("Command output: \(response.output ?? "none")") + + // List all sessions + let sessions = try await client.listSessions() + print("Active sessions: \(sessions.count)") + + // Close the session + try await client.closeSession(id: session.sessionId) + print("Session closed") + + } catch { + print("Demo error: \(error)") + } + } + + static func runWebSocketDemo() async { + let apiKeys = AuthenticationMiddleware.loadStoredAPIKeys() + guard let apiKey = apiKeys.first else { + print("No API key found") + return + } + + let client = TunnelClient(apiKey: apiKey) + + do { + // Create a session first + let session = try await client.createSession() + print("Created session for WebSocket: \(session.sessionId)") + + // Connect WebSocket + let wsClient = client.connectWebSocket(sessionId: session.sessionId) + wsClient.connect() + + // Subscribe to messages + let cancellable = wsClient.messages.sink { message in + switch message.type { + case .output: + print("Output: \(message.data ?? "")") + case .error: + print("Error: \(message.data ?? "")") + default: + print("Message: \(message.type) - \(message.data ?? "")") + } + } + + // Send some commands + try await Task.sleep(nanoseconds: 1_000_000_000) // 1 second + wsClient.sendCommand("pwd") + + try await Task.sleep(nanoseconds: 1_000_000_000) // 1 second + wsClient.sendCommand("ls -la") + + try await Task.sleep(nanoseconds: 2_000_000_000) // 2 seconds + + // Disconnect + wsClient.disconnect() + cancellable.cancel() + + } catch { + print("WebSocket demo error: \(error)") + } + } +} + +// MARK: - cURL Examples + +/* + Here are some example cURL commands to test the server: + + # Set your API key + export API_KEY="your-api-key-here" + + # Health check (no auth required) + curl http://localhost:8080/health + + # Get server info + curl -H "X-API-Key: $API_KEY" http://localhost:8080/info + + # Create a new session + curl -X POST http://localhost:8080/sessions \ + -H "X-API-Key: $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "workingDirectory": "/tmp", + "shell": "/bin/zsh" + }' + + # List all sessions + curl -H "X-API-Key: $API_KEY" http://localhost:8080/sessions + + # Execute a command + curl -X POST http://localhost:8080/execute \ + -H "X-API-Key: $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "sessionId": "your-session-id", + "command": "ls -la" + }' + + # Get session info + curl -H "X-API-Key: $API_KEY" http://localhost:8080/sessions/your-session-id + + # Close a session + curl -X DELETE -H "X-API-Key: $API_KEY" http://localhost:8080/sessions/your-session-id + + # WebSocket connection (using websocat tool) + websocat -H "X-API-Key: $API_KEY" ws://localhost:8080/ws/terminal + */ \ No newline at end of file diff --git a/VibeTunnel/Core/Services/WebSocketHandler.swift b/VibeTunnel/Core/Services/WebSocketHandler.swift new file mode 100644 index 00000000..35507ce0 --- /dev/null +++ b/VibeTunnel/Core/Services/WebSocketHandler.swift @@ -0,0 +1,196 @@ +// +// WebSocketHandler.swift +// VibeTunnel +// +// Created by VibeTunnel on 15.06.25. +// + +import Foundation +import Hummingbird +import HummingbirdCore +import NIOCore +import NIOWebSocket +import Logging + +/// WebSocket message types for terminal communication +enum WSMessageType: String, Codable { + case connect = "connect" + case command = "command" + case output = "output" + case error = "error" + case ping = "ping" + case pong = "pong" + case close = "close" +} + +/// WebSocket message structure +struct WSMessage: Codable { + let type: WSMessageType + let sessionId: String? + let data: String? + let timestamp: Date + + init(type: WSMessageType, sessionId: String? = nil, data: String? = nil) { + self.type = type + self.sessionId = sessionId + self.data = data + self.timestamp = Date() + } +} + +/// Handles WebSocket connections for real-time terminal communication +final class WebSocketHandler { + private let terminalManager: TerminalManager + private let logger = Logger(label: "VibeTunnel.WebSocketHandler") + private var activeConnections: [UUID: WebSocketHandler.Connection] = [:] + + init(terminalManager: TerminalManager) { + self.terminalManager = terminalManager + } + + /// Handle incoming WebSocket connection + func handle(ws: WebSocket, context: some RequestContext) async { + let connectionId = UUID() + let connection = Connection(id: connectionId, websocket: ws) + + await MainActor.run { + activeConnections[connectionId] = connection + } + + logger.info("WebSocket connection established: \(connectionId)") + + // Set up message handlers + ws.onText { [weak self] ws, text in + await self?.handleTextMessage(text, connection: connection) + } + + ws.onBinary { [weak self] ws, buffer in + // Handle binary data if needed + self?.logger.debug("Received binary data: \(buffer.readableBytes) bytes") + } + + ws.onClose { [weak self] closeCode in + await self?.handleClose(connection: connection) + } + + // Send initial connection acknowledgment + await sendMessage(WSMessage(type: .connect, data: "Connected to VibeTunnel"), to: connection) + + // Keep connection alive with periodic pings + Task { + while !Task.isCancelled && !connection.isClosed { + await sendMessage(WSMessage(type: .ping), to: connection) + try? await Task.sleep(nanoseconds: 30 * 1_000_000_000) // 30 seconds + } + } + } + + private func handleTextMessage(_ text: String, connection: Connection) async { + guard let data = text.data(using: .utf8), + let message = try? JSONDecoder().decode(WSMessage.self, from: data) else { + logger.error("Failed to decode WebSocket message: \(text)") + await sendError("Invalid message format", to: connection) + return + } + + switch message.type { + case .connect: + // Handle session connection + if let sessionId = message.sessionId, + let uuid = UUID(uuidString: sessionId) { + connection.sessionId = uuid + await sendMessage(WSMessage(type: .output, sessionId: sessionId, data: "Session connected"), to: connection) + } + + case .command: + // Execute command in terminal session + guard let sessionId = connection.sessionId, + let command = message.data else { + await sendError("Session ID and command required", to: connection) + return + } + + do { + let (output, error) = try await terminalManager.executeCommand(sessionId: sessionId, command: command) + + if !output.isEmpty { + await sendMessage(WSMessage(type: .output, sessionId: sessionId.uuidString, data: output), to: connection) + } + + if !error.isEmpty { + await sendMessage(WSMessage(type: .error, sessionId: sessionId.uuidString, data: error), to: connection) + } + } catch { + await sendError(error.localizedDescription, to: connection) + } + + case .ping: + // Respond to ping with pong + await sendMessage(WSMessage(type: .pong), to: connection) + + case .close: + // Close the session + if let sessionId = connection.sessionId { + await terminalManager.closeSession(id: sessionId) + } + try? await connection.websocket.close() + + default: + logger.warning("Unhandled message type: \(message.type)") + } + } + + private func handleClose(connection: Connection) async { + logger.info("WebSocket connection closed: \(connection.id)") + + await MainActor.run { + activeConnections.removeValue(forKey: connection.id) + } + + // Clean up associated session if any + if let sessionId = connection.sessionId { + await terminalManager.closeSession(id: sessionId) + } + + connection.isClosed = true + } + + private func sendMessage(_ message: WSMessage, to connection: Connection) async { + do { + let data = try JSONEncoder().encode(message) + let text = String(data: data, encoding: .utf8) ?? "{}" + try await connection.websocket.send(text: text) + } catch { + logger.error("Failed to send WebSocket message: \(error)") + } + } + + private func sendError(_ error: String, to connection: Connection) async { + await sendMessage(WSMessage(type: .error, data: error), to: connection) + } + + /// WebSocket connection wrapper + class Connection { + let id: UUID + let websocket: WebSocket + var sessionId: UUID? + var isClosed = false + + init(id: UUID, websocket: WebSocket) { + self.id = id + self.websocket = websocket + } + } +} + +/// Extension to add WebSocket routes to the router +extension RouterBuilder { + mutating func addWebSocketRoutes(terminalManager: TerminalManager) { + let wsHandler = WebSocketHandler(terminalManager: terminalManager) + + // WebSocket endpoint for terminal streaming + ws("/ws/terminal") { request, ws, context in + await wsHandler.handle(ws: ws, context: context) + } + } +} \ No newline at end of file diff --git a/VibeTunnel/Info.plist b/VibeTunnel/Info.plist new file mode 100644 index 00000000..bb782998 --- /dev/null +++ b/VibeTunnel/Info.plist @@ -0,0 +1,61 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2024 Amantus AI. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + NSSupportsAutomaticTermination + + LSUIElement + + NSSupportsSuddenTermination + + SUFeedURL + https://vibetunnel.sh/appcast.xml + SUPublicEDKey + YOUR_PUBLIC_ED_KEY_HERE + SUEnableAutomaticChecks + + SUScheduledCheckInterval + 86400 + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + vibetunnel.sh + + NSExceptionAllowsInsecureHTTPLoads + + NSIncludesSubdomains + + + + + + \ No newline at end of file diff --git a/VibeTunnel/Presentation/.DS_Store b/VibeTunnel/Presentation/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5df21517da35d124896aed286d04bc28b669bec6 GIT binary patch literal 6148 zcmeHKO-jR15T2(U^#aP{F|nLyw4Gv?Bwvh?CmXF{2qlz-i=6N}Xcli90e7%0ZooA(**X-CtK some View { + content + .background( + RoundedRectangle(cornerRadius: cornerRadius) + .fill(material)) + } +} + +// MARK: - Standard Padding Modifier + +/// Applies standard horizontal and vertical padding used throughout the app. +struct StandardPaddingModifier: ViewModifier { + let horizontal: CGFloat + let vertical: CGFloat + + init(horizontal: CGFloat = 16, vertical: CGFloat = 14) { + self.horizontal = horizontal + self.vertical = vertical + } + + func body(content: Content) -> some View { + content + .padding(.horizontal, horizontal) + .padding(.vertical, vertical) + } +} + +// MARK: - Card Style Modifier + +/// Combines material background with standard padding for card-like components. +struct CardStyleModifier: ViewModifier { + let cornerRadius: CGFloat + let horizontalPadding: CGFloat + let verticalPadding: CGFloat + + init( + cornerRadius: CGFloat = 10, + horizontalPadding: CGFloat = 14, + verticalPadding: CGFloat = 10) { + self.cornerRadius = cornerRadius + self.horizontalPadding = horizontalPadding + self.verticalPadding = verticalPadding + } + + func body(content: Content) -> some View { + content + .padding(.horizontal, horizontalPadding) + .padding(.vertical, verticalPadding) + .materialBackground(cornerRadius: cornerRadius) + } +} + +// MARK: - View Extensions + +public extension View { + /// Applies a material background with rounded corners. + /// + /// - Parameters: + /// - cornerRadius: Corner radius for the rounded rectangle (default: 10) + /// - material: Material type to use (default: .thickMaterial) + func materialBackground( + cornerRadius: CGFloat = 10, + material: Material = .thickMaterial) -> some View { + modifier(MaterialBackgroundModifier(cornerRadius: cornerRadius, material: material)) + } + + /// Applies standard padding used throughout the app. + /// + /// - Parameters: + /// - horizontal: Horizontal padding (default: 16) + /// - vertical: Vertical padding (default: 14) + func standardPadding( + horizontal: CGFloat = 16, + vertical: CGFloat = 14) -> some View { + modifier(StandardPaddingModifier(horizontal: horizontal, vertical: vertical)) + } + + /// Applies card styling with material background and padding. + /// + /// - Parameters: + /// - cornerRadius: Corner radius for the card (default: 10) + /// - horizontalPadding: Horizontal padding (default: 14) + /// - verticalPadding: Vertical padding (default: 10) + func cardStyle( + cornerRadius: CGFloat = 10, + horizontalPadding: CGFloat = 14, + verticalPadding: CGFloat = 10) -> some View { + modifier(CardStyleModifier( + cornerRadius: cornerRadius, + horizontalPadding: horizontalPadding, + verticalPadding: verticalPadding)) + } +} + +// MARK: - Previews + +#Preview("Material Backgrounds") { + VStack(spacing: 20) { + Text("Thick Material") + .standardPadding() + .materialBackground(material: .thickMaterial) + + Text("Regular Material") + .standardPadding() + .materialBackground(material: .regular) + + Text("Thin Material") + .standardPadding() + .materialBackground(material: .thin) + + Text("Ultra Thin Material") + .standardPadding() + .materialBackground(material: .ultraThin) + } + .padding() + .frame(width: 300) + .background(Color(NSColor.windowBackgroundColor)) +} + +#Preview("Card Styles") { + VStack(spacing: 16) { + VStack(alignment: .leading, spacing: 8) { + Text("Default Card Style") + .font(.headline) + Text("With standard padding and corner radius") + .font(.caption) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, alignment: .leading) + .cardStyle() + + VStack(alignment: .leading, spacing: 8) { + Text("Custom Card Style") + .font(.headline) + Text("With larger padding and corner radius") + .font(.caption) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, alignment: .leading) + .cardStyle(cornerRadius: 16, horizontalPadding: 20, verticalPadding: 16) + } + .padding() + .frame(width: 350) + .background(Color(NSColor.windowBackgroundColor)) +} + +#Preview("Standard Padding") { + VStack(spacing: 16) { + HStack { + Text("Default Padding") + Spacer() + Text("16pt H, 14pt V") + .font(.caption) + .foregroundStyle(.secondary) + } + .standardPadding() + .background(Color.blue.opacity(0.1)) + + HStack { + Text("Custom Padding") + Spacer() + Text("24pt H, 20pt V") + .font(.caption) + .foregroundStyle(.secondary) + } + .standardPadding(horizontal: 24, vertical: 20) + .background(Color.green.opacity(0.1)) + } + .padding() + .frame(width: 400) + .background(Color(NSColor.windowBackgroundColor)) +} \ No newline at end of file diff --git a/VibeTunnel/Presentation/Utilities/View+Cursor.swift b/VibeTunnel/Presentation/Utilities/View+Cursor.swift new file mode 100644 index 00000000..13795e58 --- /dev/null +++ b/VibeTunnel/Presentation/Utilities/View+Cursor.swift @@ -0,0 +1,59 @@ +import SwiftUI + +extension View { + func pressEvents(onPress: @escaping () -> Void, onRelease: @escaping () -> Void) -> some View { + modifier(PressEventModifier(onPress: onPress, onRelease: onRelease)) + } + + func pointingHandCursor() -> some View { + modifier(PointingHandCursorModifier()) + } +} + +/// View modifier for handling press events on buttons. +struct PressEventModifier: ViewModifier { + let onPress: () -> Void + let onRelease: () -> Void + + func body(content: Content) -> some View { + content + .simultaneousGesture( + DragGesture(minimumDistance: 0) + .onChanged { _ in onPress() } + .onEnded { _ in onRelease() }) + } +} + +/// View modifier for showing pointing hand cursor on hover. +struct PointingHandCursorModifier: ViewModifier { + func body(content: Content) -> some View { + content + .background( + CursorTrackingView() + .allowsHitTesting(false)) + } +} + +/// NSViewRepresentable that handles cursor changes properly +struct CursorTrackingView: NSViewRepresentable { + func makeNSView(context _: Context) -> CursorTrackingNSView { + CursorTrackingNSView() + } + + func updateNSView(_: CursorTrackingNSView, context _: Context) { + // No updates needed + } +} + +/// Custom NSView that properly handles cursor tracking +class CursorTrackingNSView: NSView { + override func resetCursorRects() { + super.resetCursorRects() + addCursorRect(bounds, cursor: .pointingHand) + } + + override func viewDidMoveToWindow() { + super.viewDidMoveToWindow() + window?.invalidateCursorRects(for: self) + } +} \ No newline at end of file diff --git a/VibeTunnel/Presentation/Views/AboutView.swift b/VibeTunnel/Presentation/Views/AboutView.swift new file mode 100644 index 00000000..05c08224 --- /dev/null +++ b/VibeTunnel/Presentation/Views/AboutView.swift @@ -0,0 +1,180 @@ +import AppKit +import SwiftUI + +/// About view displaying application information, version details, and credits. +/// +/// This view provides information about VibeTunnel including version numbers, +/// build details, developer credits, and links to external resources like +/// GitHub repository and support channels. +struct AboutView: View { + var appName: String { + Bundle.main.infoDictionary?["CFBundleDisplayName"] as? String ?? + Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "VibeTunnel" + } + + var appVersion: String { + let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown" + let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown" + return "\(version) (\(build))" + } + + var body: some View { + NavigationStack { + ScrollView { + VStack(spacing: 24) { + appInfoSection + descriptionSection + linksSection + + Spacer(minLength: 40) + + copyrightSection + } + .frame(maxWidth: .infinity) + .standardPadding() + } + .scrollContentBackground(.hidden) + .navigationTitle("About \(appName)") + } + } + + private var appInfoSection: some View { + VStack(spacing: 16) { + InteractiveAppIcon() + + Text(appName) + .font(.largeTitle) + .fontWeight(.medium) + + Text("Version \(appVersion)") + .font(.footnote) + .foregroundStyle(.secondary) + } + .padding(.top, 20) + } + + private var descriptionSection: some View { + Text("Connect to AI providers with a unified interface") + .font(.body) + .foregroundStyle(.secondary) + } + + private var linksSection: some View { + VStack(spacing: 12) { + HoverableLink(url: "https://github.com/amantus-ai/vibetunnel", title: "View on GitHub", icon: "link") + HoverableLink( + url: "https://github.com/amantus-ai/vibetunnel/issues", + title: "Report an Issue", + icon: "exclamationmark.bubble") + HoverableLink(url: "https://x.com/steipete", title: "Follow @steipete on Twitter", icon: "bird") + } + } + + private var copyrightSection: some View { + Text("© 2025 Amantus AI • MIT Licensed") + .font(.footnote) + .foregroundStyle(.secondary) + .padding(.bottom, 32) + } +} + +/// Hoverable link component with underline animation. +/// +/// This component displays a link with an icon that shows an underline on hover +/// and changes the cursor to a pointing hand for better user experience. +struct HoverableLink: View { + let url: String + let title: String + let icon: String + + @State + private var isHovering = false + + var body: some View { + Link(destination: URL(string: url)!) { + Label(title, systemImage: icon) + .underline(isHovering, color: .accentColor) + } + .buttonStyle(.link) + .pointingHandCursor() + .onHover { hovering in + withAnimation(.easeInOut(duration: 0.2)) { + isHovering = hovering + } + } + } +} + +/// Interactive app icon component with shadow effects and website link. +/// +/// This component displays the VibeTunnel app icon with dynamic shadow effects that respond +/// to user interaction. It includes hover effects for visual feedback and opens the +/// VibeTunnel website when clicked. +struct InteractiveAppIcon: View { + @State + private var isHovering = false + @State + private var isPressed = false + @Environment(\.colorScheme) + private var colorScheme + + var body: some View { + ZStack { + Image(nsImage: NSApp.applicationIconImage) + .resizable() + .frame(width: 128, height: 128) + .clipShape(RoundedRectangle(cornerRadius: 22)) + .scaleEffect(isPressed ? 0.95 : (isHovering ? 1.05 : 1.0)) + .shadow( + color: shadowColor, + radius: shadowRadius, + x: 0, + y: shadowOffset) + .animation(.easeInOut(duration: 0.2), value: isHovering) + .animation(.easeInOut(duration: 0.1), value: isPressed) + + // Invisible button overlay for click handling + Button(action: openWebsite) { + Rectangle() + .fill(Color.clear) + .frame(width: 128, height: 128) + } + .buttonStyle(PlainButtonStyle()) + } + .pointingHandCursor() + .onHover { hovering in + isHovering = hovering + } + .pressEvents( + onPress: { isPressed = true }, + onRelease: { isPressed = false }) + } + + private var shadowColor: Color { + if colorScheme == .dark { + .black.opacity(isHovering ? 0.6 : 0.4) + } else { + .black.opacity(isHovering ? 0.3 : 0.2) + } + } + + private var shadowRadius: CGFloat { + isHovering ? 20 : 12 + } + + private var shadowOffset: CGFloat { + isHovering ? 8 : 4 + } + + private func openWebsite() { + guard let url = URL(string: "https://vibetunnel.ai") else { return } + NSWorkspace.shared.open(url) + } +} + +// MARK: - Preview + +#Preview("About View") { + AboutView() + .frame(width: 570, height: 600) +} \ No newline at end of file diff --git a/VibeTunnel/SettingsView.swift b/VibeTunnel/SettingsView.swift new file mode 100644 index 00000000..7abae15b --- /dev/null +++ b/VibeTunnel/SettingsView.swift @@ -0,0 +1,279 @@ +// +// SettingsView.swift +// VibeTunnel +// +// Created by Peter Steinberger on 15.06.25. +// + +import SwiftUI + +struct SettingsView: View { + var body: some View { + TabView { + GeneralSettingsView() + .tabItem { + Label("General", systemImage: "gear") + } + + AdvancedSettingsView() + .tabItem { + Label("Advanced", systemImage: "gearshape.2") + } + } + .frame(minWidth: 600, idealWidth: 700, minHeight: 400, idealHeight: 500) + } +} + +struct GeneralSettingsView: View { + @AppStorage("autostart") private var autostart = false + @AppStorage("showNotifications") private var showNotifications = true + @AppStorage("showInDock") private var showInDock = false + + private let startupManager = StartupManager() + + var body: some View { + NavigationStack { + Form { + Section { + // Launch at Login + VStack(alignment: .leading, spacing: 4) { + Toggle("Launch at Login", isOn: launchAtLoginBinding) + Text("Automatically start VibeTunnel when you log into your Mac.") + .font(.caption) + .foregroundStyle(.secondary) + } + + // Show Notifications + VStack(alignment: .leading, spacing: 4) { + Toggle("Show notifications", isOn: $showNotifications) + Text("Display notifications for important events.") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("Application") + .font(.headline) + } + + Section { + // Show in Dock + VStack(alignment: .leading, spacing: 4) { + Toggle("Show in Dock", isOn: showInDockBinding) + Text("Display VibeTunnel in the Dock. When disabled, VibeTunnel runs as a menu bar app only.") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("Appearance") + .font(.headline) + } + } + .formStyle(.grouped) + .scrollContentBackground(.hidden) + .navigationTitle("General Settings") + } + .task { + // Sync launch at login status + autostart = startupManager.isLaunchAtLoginEnabled + } + } + + private var launchAtLoginBinding: Binding { + Binding( + get: { autostart }, + set: { newValue in + autostart = newValue + startupManager.setLaunchAtLogin(enabled: newValue) + }) + } + + private var showInDockBinding: Binding { + Binding( + get: { showInDock }, + set: { newValue in + showInDock = newValue + NSApp.setActivationPolicy(newValue ? .regular : .accessory) + }) + } +} + +struct AdvancedSettingsView: View { + @AppStorage("debugMode") private var debugMode = false + @AppStorage("serverPort") private var serverPort = "8080" + @AppStorage("updateChannel") private var updateChannelRaw = UpdateChannel.stable.rawValue + + @State private var isCheckingForUpdates = false + @StateObject private var tunnelServer: TunnelServer + + init() { + let port = Int(UserDefaults.standard.string(forKey: "serverPort") ?? "8080") ?? 8080 + _tunnelServer = StateObject(wrappedValue: TunnelServer(port: port)) + } + + var updateChannel: UpdateChannel { + UpdateChannel(rawValue: updateChannelRaw) ?? .stable + } + + var body: some View { + NavigationStack { + Form { + Section { + // Update Channel + VStack(alignment: .leading, spacing: 4) { + HStack { + Text("Update Channel") + Spacer() + Picker("", selection: updateChannelBinding) { + ForEach(UpdateChannel.allCases) { channel in + Text(channel.displayName).tag(channel) + } + } + .pickerStyle(.menu) + .labelsHidden() + } + Text(updateChannel.description) + .font(.caption) + .foregroundStyle(.secondary) + } + + // Check for Updates + HStack { + VStack(alignment: .leading, spacing: 4) { + Text("Check for Updates") + Text("Check for new versions of VibeTunnel") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Button("Check Now") { + checkForUpdates() + } + .buttonStyle(.bordered) + .disabled(isCheckingForUpdates) + } + .padding(.top, 8) + } header: { + Text("Updates") + .font(.headline) + } + + Section { + // Tunnel Server + VStack(alignment: .leading, spacing: 8) { + HStack { + VStack(alignment: .leading, spacing: 4) { + HStack { + Text("Tunnel Server") + if tunnelServer.isRunning { + Circle() + .fill(.green) + .frame(width: 8, height: 8) + } + } + Text(tunnelServer.isRunning ? "Server is running on port \(serverPort)" : "Server is stopped") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Button(tunnelServer.isRunning ? "Stop" : "Start") { + toggleServer() + } + .buttonStyle(.bordered) + .tint(tunnelServer.isRunning ? .red : .blue) + } + + if tunnelServer.isRunning { + Link("Open in Browser", destination: URL(string: "http://localhost:\(serverPort)")!) + .font(.caption) + } + } + + VStack(alignment: .leading, spacing: 4) { + HStack { + Text("Server port:") + TextField("", text: $serverPort) + .frame(width: 80) + .disabled(tunnelServer.isRunning) + } + Text("The port used for the local tunnel server. Restart server to apply changes.") + .font(.caption) + .foregroundStyle(.secondary) + } + .padding(.top, 8) + } header: { + Text("Server") + .font(.headline) + } + + Section { + VStack(alignment: .leading, spacing: 4) { + Toggle("Debug mode", isOn: $debugMode) + Text("Enable additional logging and debugging features.") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("Advanced") + .font(.headline) + } + } + .formStyle(.grouped) + .scrollContentBackground(.hidden) + .navigationTitle("Advanced Settings") + } + } + + private var updateChannelBinding: Binding { + Binding( + get: { updateChannel }, + set: { newValue in + updateChannelRaw = newValue.rawValue + // Notify the updater manager about the channel change + NotificationCenter.default.post( + name: Notification.Name("UpdateChannelChanged"), + object: nil, + userInfo: ["channel": newValue] + ) + }) + } + + private func checkForUpdates() { + isCheckingForUpdates = true + NotificationCenter.default.post(name: Notification.Name("checkForUpdates"), object: nil) + + // Reset after a delay + Task { + try? await Task.sleep(for: .seconds(2)) + isCheckingForUpdates = false + } + } + + private func toggleServer() { + Task { + if tunnelServer.isRunning { + await tunnelServer.stop() + } else { + do { + try await tunnelServer.start() + } catch { + // Show error alert + await MainActor.run { + let alert = NSAlert() + alert.messageText = "Failed to Start Server" + alert.informativeText = error.localizedDescription + alert.alertStyle = .critical + alert.runModal() + } + } + } + } + } +} + +#Preview { + SettingsView() +} \ No newline at end of file diff --git a/VibeTunnel/Utilities/AboutWindow.swift b/VibeTunnel/Utilities/AboutWindow.swift new file mode 100644 index 00000000..d5e91024 --- /dev/null +++ b/VibeTunnel/Utilities/AboutWindow.swift @@ -0,0 +1,39 @@ +import SwiftUI +import AppKit + +/// Window controller for the About window +final class AboutWindowController { + static let shared = AboutWindowController() + + private var window: NSWindow? + + private init() {} + + func showWindow() { + // Check if About window is already open + if let existingWindow = window, existingWindow.isVisible { + existingWindow.makeKeyAndOrderFront(nil) + NSApp.activate(ignoringOtherApps: true) + return + } + + // Create new About window + let aboutView = AboutView() + let hostingController = NSHostingController(rootView: aboutView) + + let newWindow = NSWindow(contentViewController: hostingController) + newWindow.identifier = NSUserInterfaceItemIdentifier("AboutWindow") + newWindow.title = "About VibeTunnel" + newWindow.styleMask = [.titled, .closable, .miniaturizable] + newWindow.setContentSize(NSSize(width: 570, height: 600)) + newWindow.center() + newWindow.isReleasedWhenClosed = false + + // Store reference to window + self.window = newWindow + + // Show window + newWindow.makeKeyAndOrderFront(nil) + NSApp.activate(ignoringOtherApps: true) + } +} \ No newline at end of file diff --git a/VibeTunnel/VibeTunnelApp.swift b/VibeTunnel/VibeTunnelApp.swift new file mode 100644 index 00000000..5464fc20 --- /dev/null +++ b/VibeTunnel/VibeTunnelApp.swift @@ -0,0 +1,183 @@ +// +// VibeTunnelApp.swift +// VibeTunnel +// +// Created by Peter Steinberger on 15.06.25. +// + +import SwiftUI +import AppKit + +@main +struct VibeTunnelApp: App { + @NSApplicationDelegateAdaptor(AppDelegate.self) + var appDelegate + + var body: some Scene { + #if os(macOS) + Settings { + SettingsView() + } + .commands { + CommandGroup(after: .appInfo) { + Button("About VibeTunnel") { + AboutWindowController.shared.showWindow() + } + } + } + #endif + } +} + +// MARK: - App Delegate + +@MainActor +final class AppDelegate: NSObject, NSApplicationDelegate { + private(set) var sparkleUpdaterManager: SparkleUpdaterManager? + private var statusItem: NSStatusItem? + + /// Distributed notification name used to ask an existing instance to show the Settings window. + private static let showSettingsNotification = Notification.Name("com.amantus.vibetunnel.showSettings") + + func applicationDidFinishLaunching(_ notification: Notification) { + let processInfo = ProcessInfo.processInfo + let isRunningInTests = processInfo.environment["XCTestConfigurationFilePath"] != nil + let isRunningInPreview = processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" + let isRunningInDebug = processInfo.environment["DYLD_INSERT_LIBRARIES"]?.contains("libMainThreadChecker.dylib") ?? false + + // Handle single instance check before doing anything else + if !isRunningInPreview, !isRunningInTests, !isRunningInDebug { + handleSingleInstanceCheck() + registerForDistributedNotifications() + } + + // Initialize Sparkle updater manager + sparkleUpdaterManager = SparkleUpdaterManager() + + // Configure activation policy based on settings (default to menu bar only) + let showInDock = UserDefaults.standard.bool(forKey: "showInDock") + NSApp.setActivationPolicy(showInDock ? .regular : .accessory) + + // Setup status item (menu bar icon) + setupStatusItem() + + // Show settings on first launch or when no window is open + if !showInDock { + // For menu bar apps, we need to ensure the settings window is accessible + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + if NSApp.windows.isEmpty || NSApp.windows.allSatisfy({ !$0.isVisible }) { + NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil) + } + } + } + + // Listen for update check requests + NotificationCenter.default.addObserver( + self, + selector: #selector(handleCheckForUpdatesNotification), + name: Notification.Name("checkForUpdates"), + object: nil) + } + + private func handleSingleInstanceCheck() { + let runningApps = NSRunningApplication + .runningApplications(withBundleIdentifier: Bundle.main.bundleIdentifier ?? "") + + if runningApps.count > 1 { + // Send notification to existing instance to show settings + DistributedNotificationCenter.default().post(name: Self.showSettingsNotification, object: nil) + + // Show alert that another instance is running + DispatchQueue.main.async { + let alert = NSAlert() + alert.messageText = "VibeTunnel is already running" + alert.informativeText = "Another instance of VibeTunnel is already running. This instance will now quit." + alert.alertStyle = .informational + alert.addButton(withTitle: "OK") + alert.runModal() + + // Terminate this instance + NSApp.terminate(nil) + } + return + } + } + + private func registerForDistributedNotifications() { + DistributedNotificationCenter.default().addObserver( + self, + selector: #selector(handleShowSettingsNotification), + name: Self.showSettingsNotification, + object: nil) + } + + /// Shows the Settings window when another VibeTunnel instance asks us to. + @objc + private func handleShowSettingsNotification(_ notification: Notification) { + NSApp.activate(ignoringOtherApps: true) + NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil) + } + + @objc private func handleCheckForUpdatesNotification() { + sparkleUpdaterManager?.checkForUpdates() + } + + func applicationWillTerminate(_ notification: Notification) { + // Remove distributed notification observer + let processInfo = ProcessInfo.processInfo + let isRunningInTests = processInfo.environment["XCTestConfigurationFilePath"] != nil + let isRunningInPreview = processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" + let isRunningInDebug = processInfo.environment["DYLD_INSERT_LIBRARIES"]?.contains("libMainThreadChecker.dylib") ?? false + + if !isRunningInPreview, !isRunningInTests, !isRunningInDebug { + DistributedNotificationCenter.default().removeObserver( + self, + name: Self.showSettingsNotification, + object: nil) + } + + // Remove update check notification observer + NotificationCenter.default.removeObserver( + self, + name: Notification.Name("checkForUpdates"), + object: nil) + } + + // MARK: - Status Item + + private func setupStatusItem() { + statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) + + if let button = statusItem?.button { + button.image = NSImage(named: "menubar") + button.image?.isTemplate = true + button.action = #selector(statusItemClicked) + button.target = self + } + + // Create menu + let menu = NSMenu() + + menu.addItem(NSMenuItem(title: "Settings...", action: #selector(showSettings), keyEquivalent: ",")) + menu.addItem(NSMenuItem.separator()) + menu.addItem(NSMenuItem(title: "About VibeTunnel", action: #selector(showAbout), keyEquivalent: "")) + menu.addItem(NSMenuItem.separator()) + menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")) + + statusItem?.menu = menu + } + + @objc private func statusItemClicked() { + // Left click shows menu + } + + @objc private func showSettings() { + NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil) + NSApp.activate(ignoringOtherApps: true) + } + + @objc private func showAbout() { + AboutWindowController.shared.showWindow() + NSApp.activate(ignoringOtherApps: true) + } +} diff --git a/VibeTunnel/app-config.plist b/VibeTunnel/app-config.plist new file mode 100644 index 00000000..38005119 --- /dev/null +++ b/VibeTunnel/app-config.plist @@ -0,0 +1,20 @@ + + + + + AppDomain + vibetunnel.sh + GitHubURL + https://github.com/amantus-ai/vibetunnel + AppcastURL + https://vibetunnel.sh/appcast.xml + AppName + VibeTunnel + CompanyName + Amantus AI + SupportEmail + support@amantus.ai + WebsiteURL + https://vibetunnel.sh + + \ No newline at end of file diff --git a/VibeTunnel/sparkle-public-ed-key.txt b/VibeTunnel/sparkle-public-ed-key.txt new file mode 100644 index 00000000..8e522883 --- /dev/null +++ b/VibeTunnel/sparkle-public-ed-key.txt @@ -0,0 +1,12 @@ +# Sparkle Public EdDSA Key +# This file should contain your Sparkle public EdDSA key for app updates +# +# To generate a key pair: +# 1. Download Sparkle from https://sparkle-project.org/ +# 2. Run: ./bin/generate_keys +# 3. Replace the placeholder below with your actual public key +# 4. Update the SUPublicEDKey in Info.plist with this key +# +# IMPORTANT: Keep your private key secure and never commit it to version control! + +YOUR_PUBLIC_ED_KEY_HERE \ No newline at end of file diff --git a/VibeTunnel/version.xcconfig b/VibeTunnel/version.xcconfig new file mode 100644 index 00000000..4e8b8cdd --- /dev/null +++ b/VibeTunnel/version.xcconfig @@ -0,0 +1,12 @@ +// VibeTunnel Version Configuration +// This file contains the version and build number for the app + +MARKETING_VERSION = 0.1 +CURRENT_PROJECT_VERSION = 100 + +// Domain and GitHub configuration +APP_DOMAIN = vibetunnel.sh +GITHUB_URL = https://github.com/amantus-ai/vibetunnel + +// Bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.amantus.vibetunnel \ No newline at end of file diff --git a/VibeTunnelTests/VibeTunnelTests.swift b/VibeTunnelTests/VibeTunnelTests.swift new file mode 100644 index 00000000..da02a649 --- /dev/null +++ b/VibeTunnelTests/VibeTunnelTests.swift @@ -0,0 +1,17 @@ +// +// VibeTunnelTests.swift +// VibeTunnelTests +// +// Created by Peter Steinberger on 15.06.25. +// + +import Testing +@testable import VibeTunnel + +struct VibeTunnelTests { + + @Test func example() async throws { + // Write your test here and use APIs like `#expect(...)` to check expected conditions. + } + +} diff --git a/VibeTunnelUITests/VibeTunnelUITests.swift b/VibeTunnelUITests/VibeTunnelUITests.swift new file mode 100644 index 00000000..f06bf311 --- /dev/null +++ b/VibeTunnelUITests/VibeTunnelUITests.swift @@ -0,0 +1,41 @@ +// +// VibeTunnelUITests.swift +// VibeTunnelUITests +// +// Created by Peter Steinberger on 15.06.25. +// + +import XCTest + +final class VibeTunnelUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + @MainActor + func testLaunchPerformance() throws { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/VibeTunnelUITests/VibeTunnelUITestsLaunchTests.swift b/VibeTunnelUITests/VibeTunnelUITestsLaunchTests.swift new file mode 100644 index 00000000..68b69959 --- /dev/null +++ b/VibeTunnelUITests/VibeTunnelUITestsLaunchTests.swift @@ -0,0 +1,33 @@ +// +// VibeTunnelUITestsLaunchTests.swift +// VibeTunnelUITests +// +// Created by Peter Steinberger on 15.06.25. +// + +import XCTest + +final class VibeTunnelUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/docs/hummingbird-integration.md b/docs/hummingbird-integration.md new file mode 100644 index 00000000..00e087ec --- /dev/null +++ b/docs/hummingbird-integration.md @@ -0,0 +1,188 @@ +# Hummingbird Integration Guide for VibeTunnel + +This guide explains the Hummingbird web framework integration in VibeTunnel for creating the tunnel server functionality. + +## Current Status + +✅ **IMPLEMENTED** - The VibeTunnel server is now fully implemented with: +- HTTP REST API endpoints for terminal session management +- WebSocket support for real-time terminal communication +- Authentication via API keys +- Session management with automatic cleanup +- Client SDK for easy integration +- Comprehensive error handling + +## Architecture Overview + +The VibeTunnel server is built with the following components: + +### Core Components + +1. **TunnelServer** (`/VibeTunnel/Core/Services/TunnelServer.swift`) + - Main server implementation using Hummingbird + - Manages HTTP endpoints and WebSocket connections + - Handles server lifecycle and configuration + +2. **TerminalManager** (`/VibeTunnel/Core/Services/TerminalManager.swift`) + - Actor-based terminal session management + - Handles process creation and command execution + - Manages pipes for stdin/stdout/stderr communication + - Automatic cleanup of inactive sessions + +3. **WebSocketHandler** (`/VibeTunnel/Core/Services/WebSocketHandler.swift`) + - Real-time bidirectional communication + - JSON-based message protocol + - Session-based terminal streaming + +4. **AuthenticationMiddleware** (`/VibeTunnel/Core/Services/AuthenticationMiddleware.swift`) + - API key-based authentication + - Secure key generation and storage + - Protects all endpoints except health check + +5. **TunnelClient** (`/VibeTunnel/Core/Services/TunnelClient.swift`) + - Swift SDK for server interaction + - Async/await based API + - WebSocket client for real-time communication + +### Data Models + +- **TunnelSession** - Represents a terminal session +- **CreateSessionRequest/Response** - Session creation +- **CommandRequest/Response** - Command execution +- **WSMessage** - WebSocket message format + +## API Endpoints + +### REST API + +- `GET /health` - Health check (no auth required) +- `GET /info` - Server information +- `GET /sessions` - List all active sessions +- `POST /sessions` - Create new terminal session +- `GET /sessions/:id` - Get session details +- `DELETE /sessions/:id` - Close a session +- `POST /execute` - Execute command in session + +### WebSocket + +- `WS /ws/terminal` - Real-time terminal communication + +## Example Implementation + +```swift +import Foundation +import Hummingbird +import HummingbirdCore +import Logging +import NIOCore + +// Basic server implementation +struct TunnelServerApp { + let logger = Logger(label: "VibeTunnel.Server") + + func buildApplication() -> some ApplicationProtocol { + let router = Router() + + // Health check endpoint + router.get("/health") { request, context -> [String: Any] in + return [ + "status": "ok", + "timestamp": Date().timeIntervalSince1970 + ] + } + + // Command endpoint + router.post("/tunnel/command") { request, context -> Response in + struct CommandRequest: Decodable { + let command: String + let args: [String]? + } + + let commandRequest = try await request.decode( + as: CommandRequest.self, + context: context + ) + + // Process command here + logger.info("Received command: \(commandRequest.command)") + + return Response( + status: .ok, + headers: HTTPFields([ + .contentType: "application/json" + ]), + body: .data(Data("{\"success\":true}".utf8)) + ) + } + + let app = Application( + router: router, + configuration: .init( + address: .hostname("127.0.0.1", port: 8080) + ) + ) + + return app + } +} +``` + +## WebSocket Support + +For real-time communication with Claude Code, you'll want to add WebSocket support: + +```swift +// Add HummingbirdWebSocket dependency first +import HummingbirdWebSocket + +// Then add WebSocket routes +router.ws("/tunnel/stream") { request, ws, context in + ws.onText { ws, text in + // Handle incoming text messages + logger.info("Received: \(text)") + + // Echo back or process command + try await ws.send(text: "Acknowledged: \(text)") + } + + ws.onBinary { ws, buffer in + // Handle binary data if needed + } + + ws.onClose { closeCode in + logger.info("WebSocket closed: \(closeCode)") + } +} +``` + +## Integration Steps + +1. **Update the Package Dependencies**: Make sure to include any additional Hummingbird modules you need (like HummingbirdWebSocket). + +2. **Replace the Placeholder**: Update `TunnelServer.swift` with the actual Hummingbird implementation. + +3. **Handle Concurrency**: Since the server runs asynchronously, ensure proper handling of the server lifecycle with the SwiftUI app lifecycle. + +4. **Add Security**: Implement authentication and secure communication for production use. + +## Testing the Server + +Once implemented, you can test the server with curl: + +```bash +# Health check +curl http://localhost:8080/health + +# Send a command +curl -X POST http://localhost:8080/tunnel/command \ + -H "Content-Type: application/json" \ + -d '{"command":"ls","args":["-la"]}' +``` + +## Next Steps + +1. Implement actual command execution logic +2. Add authentication/authorization +3. Implement WebSocket support for real-time communication +4. Add SSL/TLS support for secure connections +5. Create client SDK for easy integration \ No newline at end of file diff --git a/docs/modern-swift.md b/docs/modern-swift.md new file mode 100644 index 00000000..c25162fb --- /dev/null +++ b/docs/modern-swift.md @@ -0,0 +1,165 @@ +# Modern Swift Development + +Write idiomatic SwiftUI code following Apple's latest architectural recommendations and best practices. + +## Core Philosophy + +- SwiftUI is the default UI paradigm for Apple platforms - embrace its declarative nature +- Avoid legacy UIKit patterns and unnecessary abstractions +- Focus on simplicity, clarity, and native data flow +- Let SwiftUI handle the complexity - don't fight the framework + +## Architecture Guidelines + +### 1. Embrace Native State Management + +Use SwiftUI's built-in property wrappers appropriately: +- `@State` - Local, ephemeral view state +- `@Binding` - Two-way data flow between views +- `@Observable` - Shared state (iOS 17+) +- `@ObservableObject` - Legacy shared state (pre-iOS 17) +- `@Environment` - Dependency injection for app-wide concerns + +### 2. State Ownership Principles + +- Views own their local state unless sharing is required +- State flows down, actions flow up +- Keep state as close to where it's used as possible +- Extract shared state only when multiple views need it + +### 3. Modern Async Patterns + +- Use `async/await` as the default for asynchronous operations +- Leverage `.task` modifier for lifecycle-aware async work +- Avoid Combine unless absolutely necessary +- Handle errors gracefully with try/catch + +### 4. View Composition + +- Build UI with small, focused views +- Extract reusable components naturally +- Use view modifiers to encapsulate common styling +- Prefer composition over inheritance + +### 5. Code Organization + +- Organize by feature, not by type (avoid Views/, Models/, ViewModels/ folders) +- Keep related code together in the same file when appropriate +- Use extensions to organize large files +- Follow Swift naming conventions consistently + +## Implementation Patterns + +### Simple State Example +```swift +struct CounterView: View { + @State private var count = 0 + + var body: some View { + VStack { + Text("Count: \(count)") + Button("Increment") { + count += 1 + } + } + } +} +``` + +### Shared State with @Observable +```swift +@Observable +class UserSession { + var isAuthenticated = false + var currentUser: User? + + func signIn(user: User) { + currentUser = user + isAuthenticated = true + } +} + +struct MyApp: App { + @State private var session = UserSession() + + var body: some Scene { + WindowGroup { + ContentView() + .environment(session) + } + } +} +``` + +### Async Data Loading +```swift +struct ProfileView: View { + @State private var profile: Profile? + @State private var isLoading = false + @State private var error: Error? + + var body: some View { + Group { + if isLoading { + ProgressView() + } else if let profile { + ProfileContent(profile: profile) + } else if let error { + ErrorView(error: error) + } + } + .task { + await loadProfile() + } + } + + private func loadProfile() async { + isLoading = true + defer { isLoading = false } + + do { + profile = try await ProfileService.fetch() + } catch { + self.error = error + } + } +} +``` + +## Best Practices + +### DO: +- Write self-contained views when possible +- Use property wrappers as intended by Apple +- Test logic in isolation, preview UI visually +- Handle loading and error states explicitly +- Keep views focused on presentation +- Use Swift's type system for safety + +### DON'T: +- Create ViewModels for every view +- Move state out of views unnecessarily +- Add abstraction layers without clear benefit +- Use Combine for simple async operations +- Fight SwiftUI's update mechanism +- Overcomplicate simple features + +## Testing Strategy + +- Unit test business logic and data transformations +- Use SwiftUI Previews for visual testing +- Test @Observable classes independently +- Keep tests simple and focused +- Don't sacrifice code clarity for testability + +## Modern Swift Features + +- Use Swift Concurrency (async/await, actors) +- Leverage Swift 6 data race safety when available +- Utilize property wrappers effectively +- Embrace value types where appropriate +- Use protocols for abstraction, not just for testing + +## Summary + +Write SwiftUI code that looks and feels like SwiftUI. The framework has matured significantly - trust its patterns and tools. Focus on solving user problems rather than implementing architectural patterns from other platforms. \ No newline at end of file diff --git a/docs/swiftui.md b/docs/swiftui.md new file mode 100644 index 00000000..9d466dfd --- /dev/null +++ b/docs/swiftui.md @@ -0,0 +1,68899 @@ + + +# https://developer.apple.com/documentation/swiftui/ + +Framework + +# SwiftUI + +Declare the user interface and behavior for your app on every platform. + +## Overview + +SwiftUI provides views, controls, and layout structures for declaring your app’s user interface. The framework provides event handlers for delivering taps, gestures, and other types of input to your app, and tools to manage the flow of data from your app’s models down to the views and controls that users see and interact with. + +Define your app structure using the `App` protocol, and populate it with scenes that contain the views that make up your app’s user interface. Create your own custom views that conform to the `View` protocol, and compose them with SwiftUI views for displaying text, images, and custom shapes using stacks, lists, and more. Apply powerful modifiers to built-in views and your own views to customize their rendering and interactivity. Share code between apps on multiple platforms with views and controls that adapt to their context and presentation. + +You can integrate SwiftUI views with objects from the UIKit, AppKit, and WatchKit frameworks to take further advantage of platform-specific functionality. You can also customize accessibility support in SwiftUI, and localize your app’s interface for different languages, countries, or cultural regions. + +### Featured samples + +![An image with a background of Mount Fuji, and in the foreground screenshots of the landmark detail view for Mount Fuji in the Landmarks app, in an iPad and iPhone.\\ +\\ +Landmarks: Building an app with Liquid Glass \\ +\\ +Enhance your app experience with system-provided and custom Liquid Glass.\\ +\\ +](https://developer.apple.com/documentation/swiftui/landmarks-building-an-app-with-liquid-glass) + +![\\ +\\ +Destination Video \\ +\\ +Leverage SwiftUI to build an immersive media experience in a multiplatform app.\\ +\\ +](https://developer.apple.com/documentation/visionOS/destination-video) + +![\\ +\\ +BOT-anist \\ +\\ +Build a multiplatform app that uses windows, volumes, and animations to create a robot botanist’s greenhouse.\\ +\\ +](https://developer.apple.com/documentation/visionOS/BOT-anist) + +![A screenshot displaying the document launch experience on iPad with a robot and plant accessory to the left and right of the title view, respectively.\\ +\\ +Building a document-based app with SwiftUI \\ +\\ +Create, save, and open documents in a multiplatform app.\\ +\\ +](https://developer.apple.com/documentation/swiftui/building-a-document-based-app-with-swiftui) + +## Topics + +### Essentials + +Adopting Liquid Glass + +Find out how to bring the new material to your app. + +Learning SwiftUI + +Discover tips and techniques for building multiplatform apps with this set of conceptual articles and sample code. + +Exploring SwiftUI Sample Apps + +Explore these SwiftUI samples using Swift Playgrounds on iPad or in Xcode to learn about defining user interfaces, responding to user interactions, and managing data flow. + +SwiftUI updates + +Learn about important changes to SwiftUI. + +Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +### Data and storage + +Manage the data that your app uses to drive its interface. + +Share data throughout a view hierarchy using the environment. + +Indicate configuration preferences from views to their container views. + +Store data for use across sessions of your app. + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Enhance the legibility of content in your app’s interface. + +Improve access to actions that your app can undertake. + +Describe interface elements to help people understand what they represent. + +Enable users to navigate to specific user interface elements using rotors. + +### Framework integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +Use SwiftUI views that other Apple frameworks provide. + +### Tool support + +Generate dynamic, interactive previews of your custom views. + +Expose custom views and modifiers in the Xcode library. + +Measure and improve your app’s responsiveness. + +--- + +# https://developer.apple.com/documentation/swiftui + +Framework + +# SwiftUI + +Declare the user interface and behavior for your app on every platform. + +## Overview + +SwiftUI provides views, controls, and layout structures for declaring your app’s user interface. The framework provides event handlers for delivering taps, gestures, and other types of input to your app, and tools to manage the flow of data from your app’s models down to the views and controls that users see and interact with. + +Define your app structure using the `App` protocol, and populate it with scenes that contain the views that make up your app’s user interface. Create your own custom views that conform to the `View` protocol, and compose them with SwiftUI views for displaying text, images, and custom shapes using stacks, lists, and more. Apply powerful modifiers to built-in views and your own views to customize their rendering and interactivity. Share code between apps on multiple platforms with views and controls that adapt to their context and presentation. + +You can integrate SwiftUI views with objects from the UIKit, AppKit, and WatchKit frameworks to take further advantage of platform-specific functionality. You can also customize accessibility support in SwiftUI, and localize your app’s interface for different languages, countries, or cultural regions. + +### Featured samples + +![An image with a background of Mount Fuji, and in the foreground screenshots of the landmark detail view for Mount Fuji in the Landmarks app, in an iPad and iPhone.\\ +\\ +Landmarks: Building an app with Liquid Glass \\ +\\ +Enhance your app experience with system-provided and custom Liquid Glass.\\ +\\ +](https://developer.apple.com/documentation/swiftui/landmarks-building-an-app-with-liquid-glass) + +![\\ +\\ +Destination Video \\ +\\ +Leverage SwiftUI to build an immersive media experience in a multiplatform app.\\ +\\ +](https://developer.apple.com/documentation/visionOS/destination-video) + +![\\ +\\ +BOT-anist \\ +\\ +Build a multiplatform app that uses windows, volumes, and animations to create a robot botanist’s greenhouse.\\ +\\ +](https://developer.apple.com/documentation/visionOS/BOT-anist) + +![A screenshot displaying the document launch experience on iPad with a robot and plant accessory to the left and right of the title view, respectively.\\ +\\ +Building a document-based app with SwiftUI \\ +\\ +Create, save, and open documents in a multiplatform app.\\ +\\ +](https://developer.apple.com/documentation/swiftui/building-a-document-based-app-with-swiftui) + +## Topics + +### Essentials + +Adopting Liquid Glass + +Find out how to bring the new material to your app. + +Learning SwiftUI + +Discover tips and techniques for building multiplatform apps with this set of conceptual articles and sample code. + +Exploring SwiftUI Sample Apps + +Explore these SwiftUI samples using Swift Playgrounds on iPad or in Xcode to learn about defining user interfaces, responding to user interactions, and managing data flow. + +SwiftUI updates + +Learn about important changes to SwiftUI. + +Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +### Data and storage + +Manage the data that your app uses to drive its interface. + +Share data throughout a view hierarchy using the environment. + +Indicate configuration preferences from views to their container views. + +Store data for use across sessions of your app. + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Enhance the legibility of content in your app’s interface. + +Improve access to actions that your app can undertake. + +Describe interface elements to help people understand what they represent. + +Enable users to navigate to specific user interface elements using rotors. + +### Framework integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +Use SwiftUI views that other Apple frameworks provide. + +### Tool support + +Generate dynamic, interactive previews of your custom views. + +Expose custom views and modifiers in the Xcode library. + +Measure and improve your app’s responsiveness. + +--- + +# https://developer.apple.com/documentation/swiftui/app + +- SwiftUI +- App + +Protocol + +# App + +A type that represents the structure and behavior of an app. + +@MainActor @preconcurrency +protocol App + +## Mentioned in + +Migrating to the SwiftUI life cycle + +## Overview + +Create an app by declaring a structure that conforms to the `App` protocol. Implement the required `body` computed property to define the app’s content: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +Text("Hello, world!") +} +} +} + +Precede the structure’s declaration with the @main attribute to indicate that your custom `App` protocol conformer provides the entry point into your app. The protocol provides a default implementation of the `main()` method that the system calls to launch your app. You can have exactly one entry point among all of your app’s files. + +Compose the app’s body from instances that conform to the `Scene` protocol. Each scene contains the root view of a view hierarchy and has a life cycle managed by the system. SwiftUI provides some concrete scene types to handle common scenarios, like for displaying documents or settings. You can also create custom scenes. + +@main +struct Mail: App { +var body: some Scene { +WindowGroup { +MailViewer() +} +Settings { +SettingsView() +} +} +} + +You can declare state in your app to share across all of its scenes. For example, you can use the `StateObject` attribute to initialize a data model, and then provide that model on a view input as an `ObservedObject` or through the environment as an `EnvironmentObject` to scenes in the app: + +@main +struct Mail: App { +@StateObject private var model = MailModel() + +var body: some Scene { +WindowGroup { +MailViewer() +.environmentObject(model) // Passed through the environment. +} +Settings { +SettingsView(model: model) // Passed as an observed object. +} +} +} + +A type conforming to this protocol inherits `@preconcurrency @MainActor` isolation from the protocol if the conformance is included in the type’s base declaration: + +struct MyCustomType: Transition { +// `@preconcurrency @MainActor` isolation by default +} + +Isolation to the main actor is the default, but it’s not required. Declare the conformance in an extension to opt out of main actor isolation: + +extension MyCustomType: Transition { +// `nonisolated` by default +} + +## Topics + +### Implementing an app + +`var body: Self.Body` + +The content and behavior of the app. + +**Required** + +`associatedtype Body : Scene` + +The type of scene representing the content of the app. + +### Running an app + +`init()` + +Creates an instance of the app using the body that you define for its content. + +`static func main()` + +Initializes and runs the app. + +## See Also + +### Creating an app + +Destination Video + +Leverage SwiftUI to build an immersive media experience in a multiplatform app. + +Hello World + +Use windows, volumes, and immersive spaces to teach people about the Earth. + +Backyard Birds: Building an app with SwiftData and widgets + +Create an app with persistent data, interactive widgets, and an all new in-app purchase experience. + +Food Truck: Building a SwiftUI multiplatform app + +Create a single codebase and app target for Mac, iPad, and iPhone. + +Fruta: Building a Feature-Rich App with SwiftUI + +Create a shared codebase to build a multiplatform app that offers widgets and an App Clip. + +Use a scene-based life cycle in SwiftUI while keeping your existing codebase. + +--- + +# https://developer.apple.com/documentation/swiftui/view + +- SwiftUI +- View + +Protocol + +# View + +A type that represents part of your app’s user interface and provides modifiers that you use to configure views. + +@MainActor @preconcurrency +protocol View + +## Mentioned in + +Declaring a custom view + +Configuring views + +Reducing view modifier maintenance + +Migrating to the SwiftUI life cycle + +Displaying data in lists + +## Overview + +You create custom views by declaring types that conform to the `View` protocol. Implement the required `body` computed property to provide the content for your custom view. + +struct MyView: View { +var body: some View { +Text("Hello, World!") +} +} + +Assemble the view’s body by combining one or more of the built-in views provided by SwiftUI, like the `Text` instance in the example above, plus other custom views that you define, into a hierarchy of views. For more information about creating custom views, see Declaring a custom view. + +The `View` protocol provides a set of modifiers — protocol methods with default implementations — that you use to configure views in the layout of your app. Modifiers work by wrapping the view instance on which you call them in another view with the specified characteristics, as described in Configuring views. For example, adding the `opacity(_:)` modifier to a text view returns a new view with some amount of transparency: + +Text("Hello, World!") +.opacity(0.5) // Display partially transparent text. + +The complete list of default modifiers provides a large set of controls for managing views. For example, you can fine tune Layout modifiers, add Accessibility modifiers information, and respond to Input and event modifiers. You can also collect groups of default modifiers into new, custom view modifiers for easy reuse. + +A type conforming to this protocol inherits `@preconcurrency @MainActor` isolation from the protocol if the conformance is declared in its original declaration. Isolation to the main actor is the default, but it’s not required. Declare the conformance in an extension to opt-out the isolation. + +## Topics + +### Implementing a custom view + +`var body: Self.Body` + +The content and behavior of the view. + +**Required** Default implementations provided. + +`associatedtype Body : View` + +The type of view representing the body of this view. + +**Required** + +Applies a modifier to a view and returns a new view. + +Generate dynamic, interactive previews of your custom views. + +### Configuring view elements + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Configure a view’s foreground and background styles, controls, and visibility. + +Manage the rendering, selection, and entry of text in your view. + +Add and configure supporting views, like toolbars and context menus. + +Configure charts that you declare with Swift Charts. + +### Drawing views + +Apply built-in styles to different types of views. + +Tell a view how to arrange itself within a view hierarchy by adjusting its size, position, alignment, padding, and so on. + +Affect the way the system draws a view, for example by scaling or masking a view, or by applying graphical effects. + +### Providing interactivity + +Supply actions for a view to perform in response to user input and system events. + +Enable people to search for content in your app. + +Define additional views for the view to present under specified conditions. + +Access storage and provide child views with configuration data. + +### Deprecated modifiers + +Review unsupported modifiers and their replacements. + +### Instance Methods + +Adds multiple accessibility actions to the view with a specific category. Actions allow assistive technologies, such as VoiceOver, to interact with the view by invoking the action and are grouped by their category. When multiple action modifiers with an equal category are applied to the view, the actions are combined together. + +Defines a region in which default accessibility focus is evaluated by assigning a value to a given accessibility focus state binding. + +Beta + +`func accessibilityScrollStatus(_:isEnabled:)` + +Changes the announcement provided by accessibility technologies when a user scrolls a scroll view within this view. + +The view modifier that can be applied to `AccessoryWidgetGroup` to specify the shape the three content views will be masked with. The value of `style` is set to `.automatic`, which is `.circular` by default. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Configures gestures in this view hierarchy to handle events that activate the containing window. + +Constrains this view’s dimensions to the specified 3D aspect ratio. + +Configures the view’s icon for purposes of navigation. + +`func attributedTextFormattingDefinition(_:)` + +Apply a text formatting definition to all nested editor views. + +Presents a modal view that enables users to add devices to their organization. + +Adds the background extension effect to the view. The view will be duplicated into mirrored copies which will be placed around the view on any edge with available safe area. Additionally, a blur effect will be applied on top to blur out the copies. + +Ensures that the view is always visible to the user, even when other content is occluding it, like 3D models. + +Displays a certificate sheet using the provided certificate trust. + +`func chart3DPose(_:)` Beta + +Sets the visibility of the z axis. + +Configures the z-axis for 3D charts in the view. + +`func chartZAxisLabel(_:position:alignment:spacing:)` + +Adds z axis label for charts in the view. It effects 3D charts only. + +Modally present UI which allows the user to select which contacts your app has access to. + +Sets a particular container value of a view. + +`func contentToolbar(for:content:)` + +Populates the toolbar of the specified content view type with the views you provide. + +A `continuityDevicePicker` should be used to discover and connect nearby continuity device through a button interface or other form of activation. On tvOS, this presents a fullscreen continuity device picker experience when selected. The modal view covers as much the screen of `self` as possible when a given condition is true. + +`func controlWidgetActionHint(_:)` + +The action hint of the control described by the modified label. + +`func controlWidgetStatus(_:)` + +The status of the control described by the modified label. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Whether the alert or confirmation dialog prevents the app from being quit/terminated by the system or app termination menu item. + +Adds to a `DocumentLaunchView` actions that accept a list of selected files as their parameter. + +Configures a drag session. + +A container with draggable views. The drag payload is based on the current selection. + +`func dragContainer(for:id:in:selection:_:)` + +A container with single item selection and draggable views. The drag payload is based on the current selection and provided identifiers. + +A container with draggable views. The drag payload is identifiable. To form the payload, use the identifier of the dragged view inside the container. + +`func dragContainer(for:in:selection:_:)` + +A container with multiple selection and draggable views. The drag payload is identifiable and is based on the current selection. + +Describes the way dragged previews are visually composed. + +Activates this view as the source of a drag and drop operation. A view can be dragged separately, or as an element of a drag container. + +Inside a drag container, activates this view as the source of a drag and drop operation. Supports lazy drag containers. + +Activates this view as the source of a drag-and-drop operation. + +Configures a drop session. + +Defines the destination of a drag and drop operation that provides a drop operation proposal and handles the dropped content with a closure that you specify. + +Describes the way previews for a drop are composed. + +Sets the style for forms in a view hierarchy. + +Presents a modal view while the game synced directory loads. + +Fills the view’s background with a custom glass background effect and container-relative rounded rectangle shape. + +Fills the view’s background with a custom glass background effect and a shape that you specify. + +Applies the Liquid Glass effect to a view. + +Associates an identity value to Liquid Glass effects defined within this view. + +Associates a glass effect transition with any glass effects defined within this view. + +Associates any Liquid Glass effects defined within this view to a union with the provided identifier. + +Specifies how a view should be associated with the current SharePlay group activity. + +Assigns a hand gesture shortcut to the modified control. + +Sets the behavior of the hand pointer while the user is interacting with the view. + +Specifies the game controllers events which should be delivered through the GameController framework when the view, or one of its descendants has focus. + +Specifies the game controllers events which should be delivered through the GameController framework when the view or one of its descendants has focus. + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +Requests permission to read the specified HealthKit data types. + +Requests permission to save and read the specified HealthKit data types. + +Sets the generation style for an image playground. + +Policy determining whether to support the usage of people in the playground or not. + +Presents the system sheet to create images from the specified input. + +Add menu items to open immersive spaces from a media player’s environment picker. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Presents a visual picker interface that contains events and images that a person can select to retrieve more information. + +Set the spacing between the icon and title in labels. + +Set the width reserved for icons in labels. + +Sets a style for labeled content. + +Controls the visibility of labels of any controls contained within this view. + +A modifier for the default line height in the view hierarchy. + +Sets the insets of rows in a list on the specified edges. + +Changes the visibility of the list section index. + +Set the section margins for the specific edges. + +Applies a managed content style to the view. + +Allows this view to be manipulated using common hand gestures. + +Applies the given 3D affine transform to the view and allows it to be manipulated using common hand gestures. + +Allows the view to be manipulated using a manipulation gesture attached to a different view. + +Adds a manipulation gesture to this view without allowing this view to be manipulable itself. + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +Configures all Map controls in the environment to have the specified visibility + +Configures all `Map` views in the associated environment to have standard size and position controls + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Specifies which map features should have selection disabled. + +Presents a map item detail popover. + +Presents a map item detail sheet. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies the map style to be used. + +Identifies this view as the source of a navigation transition, such as a zoom transition. + +Sets an explicit active appearance for materials in this view. + +A modifier for the default text alignment strategy in the view hierarchy. + +Configures whether navigation links show a disclosure indicator. + +Sets the navigation transition style for this view. + +Registers a handler to invoke in response to the specified app intent that your app receives. + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +`func onCameraCaptureEvent(isEnabled:defaultSoundDisabled:action:)` + +Used to register an action triggered by system capture events. + +`func onCameraCaptureEvent(isEnabled:defaultSoundDisabled:primaryAction:secondaryAction:)` + +Used to register actions triggered by system capture events. + +Specifies an action to perform on each update of an ongoing dragging operation activated by `draggable(_:)` or other drag modifiers. + +Specifies an action to perform on each update of an ongoing drop operation activated by `dropDestination(_:)` or other drop modifiers. + +`func onGeometryChange3D(for:of:action:)` + +Returns a new view that arranges to call `action(value)` whenever the value computed by `transform(proxy)` changes, where `proxy` provides access to the view’s 3D geometry properties. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Sets an `OpenURLAction` that prefers opening URL with an in-app browser. It’s equivalent to calling `.onOpenURL(_:)` + +`func onWorldRecenter(action:)` + +Adds an action to perform when recentering the view with the digital crown. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the features that should be allowed to show on the payment buttons. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Presents a popover tip on the modified view. + +`func postToPhotosSharedAlbumSheet(isPresented:items:photoLibrary:defaultAlbumIdentifier:completion:)` + +Presents an “Add to Shared Album” sheet that allows the user to post the given items to a shared album. + +Selects a subscription offer to apply to a purchase that a customer makes from a subscription store view, a store view, or a product view. + +`func preferredWindowClippingMargins(_:_:)` + +Requests additional margins for drawing beyond the bounds of the window. + +Changes the way the enclosing presentation breaks through content occluding it. + +Whether a presentation prevents the app from being terminated/quit by the system or app termination menu item. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Adds gestures that control the position and direction of a virtual camera. + +Controls the frame sizing and content alignment behavior for `RealityView` + +Rotates a view with impacts to its frame in a containing layout + +`func rotation3DLayout(_:axis:)` + +`func safeAreaBar(edge:alignment:spacing:content:)` + +Renders the provided content appropriately to be displayed as a custom bar. + +Scales this view to fill its parent. + +Scales this view to fit its parent. + +Disables any scroll edge effects for scroll views within this hierarchy. + +Configures the scroll edge effect style for scroll views within this hierarchy. + +Enables or disables scrolling in scrollable views when using particular inputs. + +Configures the behavior for search in the toolbar. + +`func sectionIndexLabel(_:)` + +Sets the label that is used in a section index to point to this section, typically only a single character long. + +Sets the style used for displaying the control (see `SignInWithAppleButton.Style`). + +Adds secondary views within the 3D bounds of this view. + +Uses the specified preference value from the view to produce another view occupying the same 3D space of the first view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +Selects the introductory offer eligibility preference to apply to a purchase a customer makes from a subscription store view. + +Selects a promotional offer to apply to a purchase a customer makes from a subscription store view. + +Deprecated + +Declares the view as dependent on the status of an auto-renewable subscription group, and returns a modified view. + +Configures subscription store view instances within a view to use the provided button label. + +`func subscriptionStoreControlBackground(_:)` + +Set a standard effect to use for the background of subscription store view controls within the view. + +Sets a view to use to decorate individual subscription options within a subscription store view. + +Sets the control style for subscription store views within a view. + +Sets the control style and control placement for subscription store views within a view. + +Sets the style subscription store views within this view use to display groups of subscription options. + +Sets the background style for picker items of the subscription store view instances within a view. + +Sets the background shape and style for subscription store view picker items within a view. + +Configures a view as the destination for a policy button action in subscription store views. + +Configures a URL as the destination for a policy button action in subscription store views. + +Sets the style for the and buttons within a subscription store view. + +Sets the primary and secondary style for the and buttons within a subscription store view. + +Adds an action to perform when a person uses the sign-in button on a subscription store view within a view. + +Sets the color rendering mode for symbol images. + +Sets the variable value mode mode for symbol images within this view. + +Sets the behavior for tab bar minimization. + +Adds a tabletop game to a view. + +Supplies a closure which returns a new interaction whenever needed. + +`func textContentType(_:)` + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on macOS. + +Define which system text formatting controls are available. + +Returns a new view such that any text views within it will use `renderer` to draw themselves. + +Sets the direction of a selection or cursor relative to a text character. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the style for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +Hides an individual view within a control group toolbar item. + +Presents a picker that selects a collection of transactions. + +Provides a task to perform before this view appears + +Presents a translation popover when a given condition is true. + +Adds a task to perform before this view appears or when the translation configuration changes. + +Adds a task to perform before this view appears or when the specified source or target languages change. + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Determines whether horizontal swipe gestures trigger backward and forward page navigation. + +Specifies the visibility of the webpage’s natural background color within this view. + +Adds an item-based context menu to a WebView, replacing the default set of context menu items. + +Determines whether a web view can display content full screen. + +Determines whether pressing a link displays a preview of the destination for the link. + +Determines whether magnify gestures change the view’s magnification. + +Adds an action to be performed when a value, created from a scroll geometry, changes. + +Enables or disables scrolling in web views when using particular inputs. + +Associates a binding to a scroll position with the web view. + +Determines whether to allow people to select or otherwise interact with text. + +Sets the window anchor point used when the size of the view changes such that the window must resize. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +Presents a preview of the workout contents as a modal sheet + +A modifier for the default text writing direction strategy in the view hierarchy. + +Specifies whether the system should show the Writing Tools affordance for text input views affected by the environment. + +Specifies the Writing Tools behavior for text and text input in the environment. + +## Relationships + +### Inherited By + +- `DynamicViewContent` +- `InsettableShape` +- `NSViewControllerRepresentable` +- `NSViewRepresentable` +- `Shape` +- `ShapeView` +- `UIViewControllerRepresentable` +- `UIViewRepresentable` +- `WKInterfaceObjectRepresentable` + +### Conforming Types + +- `AngularGradient` +- `AnyShape` +- `AnyView` +- `AsyncImage` +- `Button` +- `ButtonBorderShape` +- `ButtonStyleConfiguration.Label` +- `Canvas` +Conforms when `Symbols` conforms to `View`. + +- `Capsule` +- `Circle` +- `Color` +- `ColorPicker` +- `ContainerRelativeShape` +- `ContentUnavailableView` +- `ControlGroup` +- `ControlGroupStyleConfiguration.Content` +- `ControlGroupStyleConfiguration.Label` +- `DatePicker` +- `DatePickerStyleConfiguration.Label` +- `DebugReplaceableView` +- `DefaultButtonLabel` +- `DefaultDateProgressLabel` +- `DefaultDocumentGroupLaunchActions` +- `DefaultSettingsLinkLabel` +- `DefaultShareLinkLabel` +- `DefaultTabLabel` +- `DefaultWindowVisibilityToggleLabel` +- `DisclosureGroup` +- `DisclosureGroupStyleConfiguration.Content` +- `DisclosureGroupStyleConfiguration.Label` +- `Divider` +- `DocumentLaunchView` +- `EditButton` +- `EditableCollectionContent` +Conforms when `Content` conforms to `View`, `Data` conforms to `Copyable`, and `Data` conforms to `Escapable`. + +- `Ellipse` +- `EllipticalGradient` +- `EmptyView` +- `EquatableView` +- `FillShapeView` +- `ForEach` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `View`. + +- `Form` +- `FormStyleConfiguration.Content` +- `Gauge` +- `GaugeStyleConfiguration.CurrentValueLabel` +- `GaugeStyleConfiguration.Label` +- `GaugeStyleConfiguration.MarkedValueLabel` +- `GaugeStyleConfiguration.MaximumValueLabel` +- `GaugeStyleConfiguration.MinimumValueLabel` +- `GeometryReader` +- `GeometryReader3D` +- `GlassBackgroundEffectConfiguration.Content` +- `GlassEffectContainer` +- `Grid` +Conforms when `Content` conforms to `View`. + +- `GridRow` +Conforms when `Content` conforms to `View`. + +- `Group` +Conforms when `Content` conforms to `View`. + +- `GroupBox` +- `GroupBoxStyleConfiguration.Content` +- `GroupBoxStyleConfiguration.Label` +- `GroupElementsOfContent` +- `GroupSectionsOfContent` +- `HSplitView` +- `HStack` +- `HelpLink` +- `Image` +- `KeyframeAnimator` +- `Label` +- `LabelStyleConfiguration.Icon` +- `LabelStyleConfiguration.Title` +- `LabeledContent` +Conforms when `Label` conforms to `View` and `Content` conforms to `View`. + +- `LabeledContentStyleConfiguration.Content` +- `LabeledContentStyleConfiguration.Label` +- `LabeledControlGroupContent` +- `LabeledToolbarItemGroupContent` +- `LazyHGrid` +- `LazyHStack` +- `LazyVGrid` +- `LazyVStack` +- `LinearGradient` +- `Link` +- `List` +- `Menu` +- `MenuButton` +- `MenuStyleConfiguration.Content` +- `MenuStyleConfiguration.Label` +- `MeshGradient` +- `ModifiedContent` +Conforms when `Content` conforms to `View` and `Modifier` conforms to `ViewModifier`. + +- `MultiDatePicker` +- `NavigationLink` +- `NavigationSplitView` +- `NavigationStack` +- `NavigationView` +- `NewDocumentButton` +- `OffsetShape` +- `OutlineGroup` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, `Parent` conforms to `View`, `Leaf` conforms to `View`, and `Subgroup` conforms to `View`. + +- `OutlineSubgroupChildren` +- `PasteButton` +- `Path` +- `PhaseAnimator` +- `Picker` +- `PlaceholderContentView` +- `PresentedWindowContent` +- `PreviewModifierContent` +- `PrimitiveButtonStyleConfiguration.Label` +- `ProgressView` +- `ProgressViewStyleConfiguration.CurrentValueLabel` +- `ProgressViewStyleConfiguration.Label` +- `RadialGradient` +- `Rectangle` +- `RenameButton` +- `RotatedShape` +- `RoundedRectangle` +- `ScaledShape` +- `ScrollView` +- `ScrollViewReader` +- `SearchUnavailableContent.Actions` +- `SearchUnavailableContent.Description` +- `SearchUnavailableContent.Label` +- `Section` +Conforms when `Parent` conforms to `View`, `Content` conforms to `View`, and `Footer` conforms to `View`. + +- `SectionConfiguration.Actions` +- `SecureField` +- `SettingsLink` +- `ShareLink` +- `Slider` +- `Spacer` +- `Stepper` +- `StrokeBorderShapeView` +- `StrokeShapeView` +- `SubscriptionView` +- `Subview` +- `SubviewsCollection` +- `SubviewsCollectionSlice` +- `TabContentBuilder.Content` +- `TabView` +- `Table` +- `Text` +- `TextEditor` +- `TextField` +- `TextFieldLink` +- `TimelineView` +Conforms when `Schedule` conforms to `TimelineSchedule` and `Content` conforms to `View`. + +- `Toggle` +- `ToggleStyleConfiguration.Label` +- `TransformedShape` +- `TupleView` +- `UnevenRoundedRectangle` +- `VSplitView` +- `VStack` +- `ViewThatFits` +- `WindowVisibilityToggle` +- `ZStack` +- `ZStackContent3D` +Conforms when `Content` conforms to `View`. + +## See Also + +### Creating a view + +Define views and assemble them into a view hierarchy. + +`struct ViewBuilder` + +A custom parameter attribute that constructs views from closures. + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-building-an-app-with-liquid-glass + +- SwiftUI +- Landmarks: Building an app with Liquid Glass Beta + +Sample Code + +# Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +Download + +Xcode 26.0+Beta + +## Overview + +Landmarks is a SwifUI app that demonstrates how to use the new dynamic and expressive design feature, Liquid Glass. The Landmarks app lets people explore interesting sites around the world. Whether it’s a national park near their home or a far-flung location on a different continent, the app provides a way for people to organize and mark their adventures and receive custom activity badges along the way. Landmarks runs on iPad, iPhone, and Mac. + +Landmarks uses a `NavigationSplitView` to organize and navigate to content in the app, and demonstrates several key concepts to optimize the use of Liquid Glass: + +- Stretching content behind the sidebar and inspector with the background extension effect. + +- Extending horizontal scroll views under a sidebar or inspector. + +- Leveraging the system-provided glass effect in toolbars. + +- Applying Liquid Glass effects to custom interface elements and animations. + +- Building a new app icon with Icon Composer. + +The sample also demonstrates several techniques to use when changing window sizes, and for adding global search. + +## Apply a background extension effect + +The sample applies a background extension effect to the featured landmark header in the top view, and the main image in the landmark detail view. This effect extends and blurs the image under the sidebar and inspector when they’re open, creating a full edge-to-edge experience. + +To achieve this effect, the sample creates and configures an `Image` that extends to both the leading and trailing edges of the containing view, and applies the `backgroundExtensionEffect()` modifier to the image. For the featured image, the sample adds an overlay with a headline and button after the modifier, so that only the image extends under the sidebar and inspector. + +For more information, see Landmarks: Applying a background extension effect. + +## Extend horizontal scrolling under the sidebar + +Within each continent section in `LandmarksView`, an instance of `LandmarkHorizontalListView` shows a horizontally scrolling list of landmark views. When open, the landmark views can scroll underneath the sidebar or inspector. + +To achieve this effect, the app aligns the scroll views next to the leading and trailing edges of the containing view. + +For more information, see Landmarks: Extending horizontal scrolling under a sidebar or inspector. + +## Refine the Liquid Glass in the toolbar + +In `LandmarkDetailView`, the sample adds toolbar items for: + +- sharing a landmark + +- adding or removing a landmark from a list of Favorites + +- adding or removing a landmark from Collections + +- showing or hiding the inspector + +The system applies Liquid Glass to toolbar items automatically: + +The sample also organizes the toolbar into related groups, instead of having all the buttons in one group. For more information, see Landmarks: Refining the system provided Liquid Glass effect in toolbars. + +## Display badges with Liquid Glass + +Badges provide people with a visual indicator of the activities they’ve recorded in the Landmarks app. When a person completes all four activities for a landmark, they earn that landmark’s badge. The sample uses custom Liquid Glass elements with badges, and shows how to coordinate animations with Liquid Glass. + +To create a custom Liquid Glass badge, Landmarks uses a view with an `Image` to display a system symbol image for the badge. The badge has a background hexagon `Image` filled with a custom color. The badge view uses the `glassEffect(_:in:isEnabled:)` modifier to apply Liquid Glass to the badge. + +To demonstrate the morphing effect that the system provides with Liquid Glass animations, the sample organizes the badges and the toggle button into a `GlassEffectContainer`, and assigns each badge a unique `glassEffectID(_:in:)`. + +For more information, see Landmarks: Displaying custom activity badges. For information about building custom views with Liquid Glass, see Applying Liquid Glass to custom views. + +## Create the app icon with Icon Composer + +Landmarks includes a dynamic and expressive app icon composed in Icon Composer. You build app icons with four layers that the system uses to produce specular highlights when a person moves their device, so that the icon responds as if light was reflecting off the glass. The Settings app allows people to personalize the icon by selecting light, dark, clear, or tinted variants of your app icon as well. + +For more information on creating a new app icon, see Creating your app icon using Icon Composer. + +## Topics + +### App features + +Landmarks: Applying a background extension effect + +Configure an image to blur and extend under a sidebar or inspector panel. + +Landmarks: Extending horizontal scrolling under a sidebar or inspector + +Improve your horizontal scrollbar’s appearance by extending it under a sidebar or inspector. + +Landmarks: Refining the system provided Liquid Glass effect in toolbars + +Organize toolbars into related groupings to improve their appearance and utility. + +Landmarks: Displaying custom activity badges + +Provide people with a way to mark their adventures by displaying animated custom activity badges. + +## See Also + +### Essentials + +Adopting Liquid Glass + +Find out how to bring the new material to your app. + +Learning SwiftUI + +Discover tips and techniques for building multiplatform apps with this set of conceptual articles and sample code. + +Exploring SwiftUI Sample Apps + +Explore these SwiftUI samples using Swift Playgrounds on iPad or in Xcode to learn about defining user interfaces, responding to user interactions, and managing data flow. + +SwiftUI updates + +Learn about important changes to SwiftUI. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/app-organization + +Collection + +- SwiftUI +- App organization + +API Collection + +# App organization + +Define the entry point and top-level structure of your app. + +## Overview + +Describe your app’s structure declaratively, much like you declare a view’s appearance. Create a type that conforms to the `App` protocol and use it to enumerate the Scenes that represent aspects of your app’s user interface. + +SwiftUI enables you to write code that works across all of Apple’s platforms. However, it also enables you to tailor your app to the specific capabilities of each platform. For example, if you need to respond to the callbacks that the system traditionally makes on a UIKit, AppKit, or WatchKit app’s delegate, define a delegate object and instantiate it in your app structure using an appropriate delegate adaptor property wrapper, like `UIApplicationDelegateAdaptor`. + +For platform-specific design guidance, see Getting started in the Human Interface Guidelines. + +## Topics + +### Creating an app + +Destination Video + +Leverage SwiftUI to build an immersive media experience in a multiplatform app. + +Hello World + +Use windows, volumes, and immersive spaces to teach people about the Earth. + +Backyard Birds: Building an app with SwiftData and widgets + +Create an app with persistent data, interactive widgets, and an all new in-app purchase experience. + +Food Truck: Building a SwiftUI multiplatform app + +Create a single codebase and app target for Mac, iPad, and iPhone. + +Fruta: Building a Feature-Rich App with SwiftUI + +Create a shared codebase to build a multiplatform app that offers widgets and an App Clip. + +Migrating to the SwiftUI life cycle + +Use a scene-based life cycle in SwiftUI while keeping your existing codebase. + +`protocol App` + +A type that represents the structure and behavior of an app. + +### Targeting iOS and iPadOS + +`UILaunchScreen` + +The user interface to show while an app launches. + +`UILaunchScreens` + +The user interfaces to show while an app launches in response to different URL schemes. + +`struct UIApplicationDelegateAdaptor` + +A property wrapper type that you use to create a UIKit app delegate. + +### Targeting macOS + +`struct NSApplicationDelegateAdaptor` + +A property wrapper type that you use to create an AppKit app delegate. + +### Targeting watchOS + +`struct WKApplicationDelegateAdaptor` + +A property wrapper that is used in `App` to provide a delegate from WatchKit. + +`struct WKExtensionDelegateAdaptor` + +A property wrapper type that you use to create a WatchKit extension delegate. + +### Targeting tvOS + +Creating a tvOS media catalog app in SwiftUI + +Build standard content lockups and rows of content shelves for your tvOS app. + +### Handling system recenter events + +`enum WorldRecenterPhase` + +A type that represents information associated with a phase of a system recenter event. Values of this type are passed to the closure specified in View.onWorldRecenter(action:). + +Beta + +## See Also + +### App structure + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/scenes + +Collection + +- SwiftUI +- Scenes + +API Collection + +# Scenes + +Declare the user interface groupings that make up the parts of your app. + +## Overview + +A scene represents a part of your app’s user interface that has a life cycle that the system manages. An `App` instance presents the scenes it contains, while each `Scene` acts as the root element of a `View` hierarchy. + +The system presents scenes in different ways depending on the type of scene, the platform, and the context. A scene might fill the entire display, part of the display, a window, a tab in a window, or something else. In some cases, your app might also be able to display more than one instance of the scene at a time, like when a user simultaneously opens multiple windows based on a single `WindowGroup` declaration in your app. For more information about the primary built-in scene types, see Windows and Documents. + +You configure scenes using modifiers, similar to how you configure views. For example, you can adjust the appearance of the window that contains a scene — if the scene happens to appear in a window — using the `windowStyle(_:)` modifier. Similarly, you can add menu commands that become available when the scene is in the foreground on certain platforms using the `commands(content:)` modifier. + +## Topics + +### Creating scenes + +`protocol Scene` + +A part of an app’s user interface with a life cycle managed by the system. + +`struct SceneBuilder` + +A result builder for composing a collection of scenes into a single composite scene. + +### Monitoring scene life cycle + +`var scenePhase: ScenePhase` + +The current phase of the scene. + +`enum ScenePhase` + +An indication of a scene’s operational state. + +### Managing a settings window + +`struct Settings` + +A scene that presents an interface for viewing and modifying an app’s settings. + +`struct SettingsLink` + +A view that opens the Settings scene defined by an app. + +`struct OpenSettingsAction` + +An action that presents the settings scene for an app. + +`var openSettings: OpenSettingsAction` + +A Settings presentation action stored in a view’s environment. + +### Building a menu bar + +Building and customizing the menu bar with SwiftUI + +Provide a seamless, cross-platform user experience by building a native menu bar for iPadOS and macOS. + +### Creating a menu bar extra + +`struct MenuBarExtra` + +A scene that renders itself as a persistent control in the system menu bar. + +Sets the style for menu bar extra created by this scene. + +`protocol MenuBarExtraStyle` + +A specification for the appearance and behavior of a menu bar extra scene. + +### Creating watch notifications + +`struct WKNotificationScene` + +A scene which appears in response to receiving the specified category of remote or local notifications. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/windows + +Collection + +- SwiftUI +- Windows + +API Collection + +# Windows + +Display user interface content in a window or a collection of windows. + +## Overview + +The most common way to present a view hierarchy in your app’s interface is with a `WindowGroup`, which produces a platform-specific behavior and appearance. + +On platforms that support it, people can open multiple windows from the group simultaneously. Each window relies on the same root view definition, but retains its own view state. On some platforms, you can also supplement your app’s user interface with a single-instance window using the `Window` scene type. + +Configure windows using scene modifiers that you add to the window declaration, like `windowStyle(_:)` or `defaultPosition(_:)`. You can also indicate how to configure new windows that you present from a view hierarchy by adding the `presentedWindowStyle(_:)` view modifier to a view in the hierarchy. + +For design guidance, see Windows in the Human Interface Guidelines. + +## Topics + +### Essentials + +Customizing window styles and state-restoration behavior in macOS + +Configure how your app’s windows look and function in macOS to provide an engaging and more coherent experience. + +Bringing multiple windows to your SwiftUI app + +Compose rich views by reacting to state changes and customize your app’s scene presentation and behavior on iPadOS and macOS. + +### Creating windows + +`struct WindowGroup` + +A scene that presents a group of identically structured windows. + +`struct Window` + +A scene that presents its content in a single, unique window. + +`struct UtilityWindow` + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +`protocol WindowStyle` + +A specification for the appearance and interaction of a window. + +Sets the style for windows created by this scene. + +### Styling the associated toolbar + +Sets the style for the toolbar defined within this scene. + +Sets the label style of items in a toolbar and enables user customization. + +Sets the label style of items in a toolbar. + +`protocol WindowToolbarStyle` + +A specification for the appearance and behavior of a window’s toolbar. + +### Opening windows + +Presenting windows and spaces + +Open and close the scenes that make up your app’s interface. + +`var supportsMultipleWindows: Bool` + +A Boolean value that indicates whether the current platform supports opening multiple windows. + +`var openWindow: OpenWindowAction` + +A window presentation action stored in a view’s environment. + +`struct OpenWindowAction` + +An action that presents a window. + +`struct PushWindowAction` + +An action that opens the requested window in place of the window the action is called from. + +### Closing windows + +`var dismissWindow: DismissWindowAction` + +A window dismissal action stored in a view’s environment. + +`struct DismissWindowAction` + +An action that dismisses a window associated to a particular scene. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +`struct DismissAction` + +An action that dismisses a presentation. + +`struct DismissBehavior` + +Programmatic window dismissal behaviors. + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +### Deprecated Types + +`enum ControlActiveState` + +The active appearance expected of controls in a window. + +Deprecated + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/immersive-spaces + +Collection + +- SwiftUI +- Immersive spaces + +API Collection + +# Immersive spaces + +Display unbounded content in a person’s surroundings. + +## Overview + +Use an immersive space in visionOS to present SwiftUI views outside of any containers. You can include any views in a space, although you typically use a `RealityView` to present RealityKit content. + +You can request one of three styles of spaces with the `immersionStyle(selection:in:)` scene modifier: + +- The `mixed` style blends your content with passthrough. This enables you to place virtual objects in a person’s surroundings. + +- The `full` style displays only your content, with passthrough turned off. This enables you to completely control the visual experience, like when you want to transport people to a new world. + +- The `progressive` style completely replaces passthrough in a portion of the display. You might use this style to keep people grounded in the real world while displaying a view into another world. + +When you open an immersive space, the system continues to display all of your app’s windows, but hides windows from other apps. The system supports displaying only one space at a time across all apps, so your app can only open a space if one isn’t already open. + +## Topics + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +`struct ProgressiveImmersionAspectRatio` Beta + +### Opening an immersive space + +`var openImmersiveSpace: OpenImmersiveSpaceAction` + +An action that presents an immersive space. + +`struct OpenImmersiveSpaceAction` + +### Closing the immersive space + +`var dismissImmersiveSpace: DismissImmersiveSpaceAction` + +An immersive space dismissal action stored in a view’s environment. + +`struct DismissImmersiveSpaceAction` + +An action that dismisses an immersive space. + +### Hiding upper limbs during immersion + +Sets the preferred visibility of the user’s upper limbs, while an `ImmersiveSpace` scene is presented. + +### Adjusting content brightness + +Sets the content brightness of an immersive space. + +`struct ImmersiveContentBrightness` + +The content brightness of an immersive space. + +### Responding to immersion changes + +Performs an action when the immersion state of your app changes. + +`struct ImmersionChangeContext` + +A structure that represents a state of immersion of your app. + +### Adding menu items to an immersive space + +Add menu items to open immersive spaces from a media player’s environment picker. + +### Handling remote immersive spaces + +`struct RemoteImmersiveSpace` + +A scene that presents its content in an unbounded space on a remote device. + +`struct RemoteDeviceIdentifier` + +An opaque type that identifies a remote device displaying scene content in a `RemoteImmersiveSpace`. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/documents + +Collection + +- SwiftUI +- Documents + +API Collection + +# Documents + +Enable people to open and manage documents. + +## Overview + +Create a user interface for opening and editing documents using the `DocumentGroup` scene type. + +You initialize the scene with a model that describes the organization of the document’s data, and a view hierarchy that SwiftUI uses to display the document’s contents to the user. You can use either a value type model, which you typically store as a structure, that conforms to the `FileDocument` protocol, or a reference type model you store in a class instance that conforms to the `ReferenceFileDocument` protocol. You can also use SwiftData-backed documents using an initializer like `init(editing:contentType:editor:prepareDocument:)`. + +SwiftUI supports standard behaviors that users expect from a document-based app, appropriate for each platform, like multiwindow support, open and save panels, drag and drop, and so on. For related design guidance, see Patterns in the Human Interface Guidelines. + +## Topics + +### Creating a document + +Building a document-based app with SwiftUI + +Create, save, and open documents in a multiplatform app. + +Building a document-based app using SwiftData + +Code along with the WWDC presenter to transform an app with SwiftData. + +`struct DocumentGroup` + +A scene that enables support for opening, creating, and saving documents. + +### Storing document data in a structure instance + +`protocol FileDocument` + +A type that you use to serialize documents to and from file. + +`struct FileDocumentConfiguration` + +The properties of an open file document. + +### Storing document data in a class instance + +`protocol ReferenceFileDocument` + +A type that you use to serialize reference type documents to and from file. + +`struct ReferenceFileDocumentConfiguration` + +The properties of an open reference file document. + +`var undoManager: UndoManager?` + +The undo manager used to register a view’s undo operations. + +### Accessing document configuration + +`var documentConfiguration: DocumentConfiguration?` + +The configuration of a document in a `DocumentGroup`. + +`struct DocumentConfiguration` + +### Reading and writing documents + +`struct FileDocumentReadConfiguration` + +The configuration for reading file contents. + +`struct FileDocumentWriteConfiguration` + +The configuration for serializing file contents. + +### Opening a document programmatically + +`var newDocument: NewDocumentAction` + +An action in the environment that presents a new document. + +`struct NewDocumentAction` + +An action that presents a new document. + +`var openDocument: OpenDocumentAction` + +An action in the environment that presents an existing document. + +`struct OpenDocumentAction` + +An action that presents an existing document. + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +### Renaming a document + +`struct RenameButton` + +A button that triggers a standard rename action. + +`func renameAction(_:)` + +Sets a closure to run for the rename action. + +`var rename: RenameAction?` + +An action that activates the standard rename interaction. + +`struct RenameAction` + +An action that activates a standard rename interaction. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/navigation + +Collection + +- SwiftUI +- Navigation + +API Collection + +# Navigation + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +## Overview + +Use navigation containers to provide structure to your app’s user interface, enabling people to easily move among the parts of your app. + +For example, people can move forward and backward through a stack of views using a `NavigationStack`, or choose which view to display from a tab bar using a `TabView`. + +Configure navigation containers by adding view modifiers like `navigationSplitViewStyle(_:)` to the container. Use other modifiers on the views inside the container to affect the container’s behavior when showing that view. For example, you can use `navigationTitle(_:)` on a view to provide a toolbar title to display when showing that view. + +## Topics + +### Essentials + +Understanding the navigation stack + +Learn about the navigation stack, links, and how to manage navigation types in your app’s structure. + +### Presenting views in columns + +Bringing robust navigation structure to your SwiftUI app + +Use navigation links, stacks, destinations, and paths to provide a streamlined experience for all platforms, as well as behaviors such as deep linking and state restoration. + +Migrating to new navigation types + +Improve navigation behavior in your app by replacing navigation views with navigation stacks and navigation split views. + +`struct NavigationSplitView` + +A view that presents views in two or three columns, where selections in leading columns control presentations in subsequent columns. + +Sets the style for navigation split views within this view. + +Sets a fixed, preferred width for the column containing this view. + +Sets a flexible, preferred width for the column containing this view. + +`struct NavigationSplitViewVisibility` + +The visibility of the leading columns in a navigation split view. + +`struct NavigationLink` + +A view that controls a navigation presentation. + +### Stacking views in one column + +`struct NavigationStack` + +A view that displays a root view and enables you to present additional views over the root view. + +`struct NavigationPath` + +A type-erased list of data representing the content of a navigation stack. + +Associates a destination view with a presented data type for use within a navigation stack. + +Associates a destination view with a binding that can be used to push the view onto a `NavigationStack`. + +`func navigationDestination(item: Binding>, destination: (D) -> C) -> some View` + +Associates a destination view with a bound value for use within a navigation stack or navigation split view + +### Managing column collapse + +`struct NavigationSplitViewColumn` + +A view that represents a column in a navigation split view. + +### Setting titles for navigation content + +`func navigationTitle(_:)` + +Configures the view’s title for purposes of navigation, using a string binding. + +`func navigationSubtitle(_:)` + +Configures the view’s subtitle for purposes of navigation. + +`func navigationDocument(_:)` + +Configures the view’s document for purposes of navigation. + +`func navigationDocument(_:preview:)` + +### Configuring the navigation bar + +Hides the navigation bar back button for the view. + +Configures the title display mode for this view. + +`struct NavigationBarItem` + +A configuration for a navigation bar that represents a view at the top of a navigation stack. + +### Configuring the sidebar + +`var sidebarRowSize: SidebarRowSize` + +The current size of sidebar rows. + +`enum SidebarRowSize` + +The standard sizes of sidebar rows. + +### Presenting views in tabs + +Enhancing your app’s content with tab navigation + +Keep your app content front and center while providing quick access to navigation using the tab bar. + +`struct TabView` + +A view that switches between multiple child views using interactive user interface elements. + +`struct Tab` + +The content for a tab and the tab’s associated tab item in a tab view. + +`struct TabRole` + +A value that defines the purpose of the tab. + +`struct TabSection` + +A container that you can use to add hierarchy within a tab view. + +Sets the style for the tab view within the current environment. + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +### Configuring a tab + +Adds custom actions to a section. + +`struct TabPlacement` + +A place that a tab can appear. + +`struct TabContentBuilder` + +A result builder that constructs tabs for a tab view that supports programmatic selection. This builder requires that all tabs in the tab view have the same selection type. + +`protocol TabContent` + +A type that provides content for programmatically selectable tabs in a tab view. + +`struct AnyTabContent` + +Type erased tab content. + +### Enabling tab customization + +Specifies the customizations to apply to the sidebar representation of the tab view. + +`struct TabViewCustomization` + +The customizations a person makes to an adaptable sidebar tab view. + +`struct TabCustomizationBehavior` + +The customization behavior of customizable tab view content. + +### Displaying views in multiple panes + +`struct HSplitView` + +A layout container that arranges its children in a horizontal line and allows the user to resize them using dividers placed between them. + +`struct VSplitView` + +A layout container that arranges its children in a vertical line and allows the user to resize them using dividers placed between them. + +### Deprecated Types + +`struct NavigationView` + +A view for presenting a stack of views that represents a visible path in a navigation hierarchy. + +Deprecated + +Sets the tab bar item associated with this view. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/modal-presentations + +Collection + +- SwiftUI +- Modal presentations + +API Collection + +# Modal presentations + +Present content in a separate view that offers focused interaction. + +## Overview + +To draw attention to an important, narrowly scoped task, you display a modal presentation, like an alert, popover, sheet, or confirmation dialog. + +In SwiftUI, you create a modal presentation using a view modifier that defines how the presentation looks and the condition under which SwiftUI presents it. SwiftUI detects when the condition changes and makes the presentation for you. Because you provide a `Binding` to the condition that initiates the presentation, SwiftUI can reset the underlying value when the user dismisses the presentation. + +For design guidance, see Modality in the Human Interface Guidelines. + +## Topics + +### Configuring a dialog + +`struct DialogSeverity` + +The severity of an alert or confirmation dialog. + +### Showing a sheet, cover, or popover + +Presents a sheet when a binding to a Boolean value that you provide is true. + +Presents a sheet using the given item as a data source for the sheet’s content. + +Presents a modal view that covers as much of the screen as possible when binding to a Boolean value you provide is true. + +Presents a modal view that covers as much of the screen as possible using the binding you provide as a data source for the sheet’s content. + +Presents a popover using the given item as a data source for the popover’s content. + +Presents a popover when a given condition is true. + +`enum PopoverAttachmentAnchor` + +An attachment anchor for a popover. + +### Adapting a presentation size + +Specifies how to adapt a presentation to horizontally and vertically compact size classes. + +Specifies how to adapt a presentation to compact size classes. + +`struct PresentationAdaptation` + +Strategies for adapting a presentation to a different size class. + +Sets the sizing of the containing presentation. + +`protocol PresentationSizing` + +A type that defines the size of the presentation content and how the presentation size adjusts to its content’s size changing. + +`struct PresentationSizingRoot` + +A proxy to a view provided to the presentation with a defined presentation size. + +`struct PresentationSizingContext` + +Contextual information about a presentation. + +### Configuring a sheet’s height + +Sets the available detents for the enclosing sheet. + +Sets the available detents for the enclosing sheet, giving you programmatic control of the currently selected detent. + +Configures the behavior of swipe gestures on a presentation. + +Sets the visibility of the drag indicator on top of a sheet. + +`struct PresentationDetent` + +A type that represents a height where a sheet naturally rests. + +`protocol CustomPresentationDetent` + +The definition of a custom detent with a calculated height. + +`struct PresentationContentInteraction` + +A behavior that you can use to influence how a presentation responds to swipe gestures. + +### Styling a sheet and its background + +Requests that the presentation have a specific corner radius. + +Sets the presentation background of the enclosing sheet using a shape style. + +Sets the presentation background of the enclosing sheet to a custom view. + +Controls whether people can interact with the view behind a presentation. + +`struct PresentationBackgroundInteraction` + +The kinds of interaction available to views behind a presentation. + +### Presenting an alert + +`struct AlertScene` + +A scene that renders itself as a standalone alert dialog. + +`func alert(_:isPresented:actions:)` + +Presents an alert when a given condition is true, using a text view for the title. + +`func alert(_:isPresented:presenting:actions:)` + +Presents an alert using the given data to produce the alert’s content and a text view as a title. + +Presents an alert when an error is present. + +`func alert(_:isPresented:actions:message:)` + +Presents an alert with a message when a given condition is true using a text view as a title. + +`func alert(_:isPresented:presenting:actions:message:)` + +Presents an alert with a message using the given data to produce the alert’s content and a text view for a title. + +Presents an alert with a message when an error is present. + +### Getting confirmation for an action + +`func confirmationDialog(_:isPresented:titleVisibility:actions:)` + +Presents a confirmation dialog when a given condition is true, using a text view for the title. + +`func confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)` + +Presents a confirmation dialog using data to produce the dialog’s content and a text view for the title. + +`func dismissalConfirmationDialog(_:shouldPresent:actions:)` + +Presents a confirmation dialog when a dismiss action has been triggered. + +### Showing a confirmation dialog with a message + +`func confirmationDialog(_:isPresented:titleVisibility:actions:message:)` + +Presents a confirmation dialog with a message when a given condition is true, using a text view for the title. + +`func confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)` + +Presents a confirmation dialog with a message using data to produce the dialog’s content and a text view for the message. + +`func dismissalConfirmationDialog(_:shouldPresent:actions:message:)` + +### Configuring a dialog + +Configures the icon used by dialogs within this view. + +Configures the icon used by alerts. + +Sets the severity for alerts. + +Enables user suppression of dialogs and alerts presented within `self`, with a default suppression message on macOS. Unused on other platforms. + +Enables user suppression of an alert with a custom suppression message. + +`func dialogSuppressionToggle(_:isSuppressed:)` + +Enables user suppression of dialogs and alerts presented within `self`, with a custom suppression message on macOS. Unused on other platforms. + +### Exporting to file + +`func fileExporter(isPresented:document:contentType:defaultFilename:onCompletion:)` + +Presents a system interface for exporting a document that’s stored in a value type, like a structure, to a file on disk. + +`func fileExporter(isPresented:documents:contentType:onCompletion:)` + +Presents a system interface for exporting a collection of value type documents to files on disk. + +`func fileExporter(isPresented:document:contentTypes:defaultFilename:onCompletion:onCancellation:)` + +Presents a system interface for allowing the user to export a `FileDocument` to a file on disk. + +`func fileExporter(isPresented:documents:contentTypes:onCompletion:onCancellation:)` + +Presents a system dialog for allowing the user to export a collection of documents that conform to `FileDocument` to files on disk. + +Presents a system interface allowing the user to export a `Transferable` item to file on disk. + +Presents a system interface allowing the user to export a collection of items to files on disk. + +`func fileExporterFilenameLabel(_:)` + +On macOS, configures the `fileExporter` with a label for the file name field. + +### Importing from file + +Presents a system interface for allowing the user to import multiple files. + +Presents a system interface for allowing the user to import an existing file. + +Presents a system dialog for allowing the user to import multiple files. + +### Moving a file + +Presents a system interface for allowing the user to move an existing file to a new location. + +Presents a system interface for allowing the user to move a collection of existing files to a new location. + +Presents a system dialog for allowing the user to move an existing file to a new location. + +Presents a system dialog for allowing the user to move a collection of existing files to a new location. + +### Configuring a file dialog + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` to provide a refined URL search experience: include or exclude hidden files, allow searching by tag, etc. + +`func fileDialogConfirmationLabel(_:)` + +On macOS, configures the the `fileExporter`, `fileImporter`, or `fileMover` with a custom confirmation button label. + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` to persist and restore the file dialog configuration. + +Configures the `fileExporter`, `fileImporter`, or `fileMover` to open with the specified default directory. + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` behavior when a user chooses an alias. + +`func fileDialogMessage(_:)` + +On macOS, configures the the `fileExporter`, `fileImporter`, or `fileMover` with a custom text that is presented to the user, similar to a title. + +On macOS, configures the the `fileImporter` or `fileMover` to conditionally disable presented URLs. + +`struct FileDialogBrowserOptions` + +The way that file dialogs present the file system. + +### Presenting an inspector + +Inserts an inspector at the applied position in the view hierarchy. + +Sets a fixed, preferred width for the inspector containing this view when presented as a trailing column. + +Sets a flexible, preferred width for the inspector in a trailing-column presentation. + +### Dismissing a presentation + +`var isPresented: Bool` + +A Boolean value that indicates whether the view associated with this environment is currently presented. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +`struct DismissAction` + +An action that dismisses a presentation. + +Conditionally prevents interactive dismissal of presentations like popovers, sheets, and inspectors. + +### Deprecated modal presentations + +`struct Alert` + +A representation of an alert presentation. + +Deprecated + +`struct ActionSheet` + +A representation of an action sheet presentation. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/toolbars + +Collection + +- SwiftUI +- Toolbars + +API Collection + +# Toolbars + +Provide immediate access to frequently used commands and controls. + +## Overview + +The system might present toolbars above or below your app’s content, depending on the platform and the context. + +Add items to a toolbar by applying the `toolbar(content:)` view modifier to a view in your app. You can also configure the toolbar using view modifiers. For example, you can set the visibility of a toolbar with the `toolbar(_:for:)` modifier. + +For design guidance, see Toolbars in the Human Interface Guidelines. + +## Topics + +### Populating a toolbar + +`func toolbar(content:)` + +Populates the toolbar or navigation bar with the specified items. + +`struct ToolbarItem` + +A model that represents an item which can be placed in the toolbar or navigation bar. + +`struct ToolbarItemGroup` + +A model that represents a group of `ToolbarItem` s which can be placed in the toolbar or navigation bar. + +`struct ToolbarItemPlacement` + +A structure that defines the placement of a toolbar item. + +`protocol ToolbarContent` + +Conforming types represent items that can be placed in various locations in a toolbar. + +`struct ToolbarContentBuilder` + +Constructs a toolbar item set from multi-expression closures. + +`struct ToolbarSpacer` + +A standard space item in toolbars. + +Beta + +`struct DefaultToolbarItem` + +A toolbar item that represents a system component. + +### Populating a customizable toolbar + +Populates the toolbar or navigation bar with the specified items, allowing for user customization. + +`protocol CustomizableToolbarContent` + +Conforming types represent items that can be placed in various locations in a customizable toolbar. + +`struct ToolbarCustomizationBehavior` + +The customization behavior of customizable toolbar content. + +`struct ToolbarCustomizationOptions` + +Options that influence the default customization behavior of customizable toolbar content. + +`struct SearchToolbarBehavior` + +The behavior of a search field in a toolbar. + +### Removing default items + +Remove a toolbar item present by default + +`struct ToolbarDefaultItemKind` + +A kind of toolbar item a `View` adds by default. + +### Setting toolbar visibility + +Specifies the visibility of a bar managed by SwiftUI. + +Specifies the preferred visibility of backgrounds on a bar managed by SwiftUI. + +`struct ToolbarPlacement` + +The placement of a toolbar. + +`struct ContentToolbarPlacement` + +### Specifying the role of toolbar content + +Configures the semantic role for the content populating the toolbar. + +`struct ToolbarRole` + +The purpose of content that populates the toolbar. + +### Styling a toolbar + +`func toolbarBackground(_:for:)` + +Specifies the preferred shape style of the background of a bar managed by SwiftUI. + +Specifies the preferred color scheme of a bar managed by SwiftUI. + +Specifies the preferred foreground style of bars managed by SwiftUI. + +Sets the style for the toolbar defined within this scene. + +`protocol WindowToolbarStyle` + +A specification for the appearance and behavior of a window’s toolbar. + +`var toolbarLabelStyle: ToolbarLabelStyle?` + +The label style to apply to controls within a toolbar. + +`struct ToolbarLabelStyle` + +The label style of a toolbar. + +`struct SpacerSizing` + +A type which defines how spacers should size themselves. + +### Configuring the toolbar title display mode + +Configures the toolbar title display mode for this view. + +`struct ToolbarTitleDisplayMode` + +A type that defines the behavior of title of a toolbar. + +### Setting the toolbar title menu + +Configure the title menu of a toolbar. + +`struct ToolbarTitleMenu` + +The title menu of a toolbar. + +### Creating an ornament + +`func ornament(visibility:attachmentAnchor:contentAlignment:ornament:)` + +Presents an ornament. + +`struct OrnamentAttachmentAnchor` + +An attachment anchor for an ornament. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Enable people to search for text or other content within your app. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/search + +Collection + +- SwiftUI +- Search + +API Collection + +# Search + +Enable people to search for text or other content within your app. + +## Overview + +To present a search field in your app, create and manage storage for search text and optionally for discrete search terms known as _tokens_. Then bind the storage to the search field by applying the searchable view modifier to a view in your app. + +As people interact with the field, they implicitly modify the underlying storage and, thereby, the search parameters. Your app correspondingly updates other parts of its interface. To enhance the search interaction, you can also: + +- Offer suggestions during search, for both text and tokens. + +- Implement search scopes that help people to narrow the search space. + +- Detect when people activate the search field, and programmatically dismiss the search field using environment values. + +For design guidance, see Searching in the Human Interface Guidelines. + +## Topics + +### Searching your app’s data model + +Adding a search interface to your app + +Present an interface that people can use to search for content in your app. + +Performing a search operation + +Update search results based on search text and optional tokens that you store. + +`func searchable(text:placement:prompt:)` + +Marks this view as searchable, which configures the display of a search field. + +`func searchable(text:tokens:placement:prompt:token:)` + +Marks this view as searchable with text and tokens. + +`func searchable(text:editableTokens:placement:prompt:token:)` + +`struct SearchFieldPlacement` + +The placement of a search field in a view hierarchy. + +### Making search suggestions + +Suggesting search terms + +Provide suggestions to people searching for content in your app. + +Configures the search suggestions for this view. + +Configures how to display search suggestions within this view. + +`func searchCompletion(_:)` + +Associates a fully formed string with the value of this view when used as a search suggestion. + +`func searchable(text:tokens:suggestedTokens:placement:prompt:token:)` + +Marks this view as searchable with text, tokens, and suggestions. + +`struct SearchSuggestionsPlacement` + +The ways that SwiftUI displays search suggestions. + +### Limiting search scope + +Scoping a search operation + +Divide the search space into a few broad categories. + +Configures the search scopes for this view. + +Configures the search scopes for this view with the specified activation strategy. + +`struct SearchScopeActivation` + +The ways that searchable modifiers can show or hide search scopes. + +### Detecting, activating, and dismissing search + +Managing search interface activation + +Programmatically detect and dismiss a search field. + +`var isSearching: Bool` + +A Boolean value that indicates when the user is searching. + +`var dismissSearch: DismissSearchAction` + +An action that ends the current search interaction. + +`struct DismissSearchAction` + +An action that can end a search interaction. + +`func searchable(text:isPresented:placement:prompt:)` + +Marks this view as searchable with programmatic presentation of the search field. + +`func searchable(text:tokens:isPresented:placement:prompt:token:)` + +Marks this view as searchable with text and tokens, as well as programmatic presentation. + +`func searchable(text:editableTokens:isPresented:placement:prompt:token:)` + +`func searchable(text:tokens:suggestedTokens:isPresented:placement:prompt:token:)` + +Marks this view as searchable with text, tokens, and suggestions, as well as programmatic presentation. + +### Displaying toolbar content during search + +Configures the search toolbar presentation behavior for any searchable modifiers within this view. + +`struct SearchPresentationToolbarBehavior` + +A type that defines how the toolbar behaves when presenting search. + +### Searching for text in a view + +Programmatically presents the find and replace interface for text editor views. + +Prevents find and replace operations in a text editor. + +Prevents replace operations in a text editor. + +`struct FindContext` + +The status of the find navigator for views which support text editing. + +Beta + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +--- + +# https://developer.apple.com/documentation/swiftui/app-extensions + +Collection + +- SwiftUI +- App extensions + +API Collection + +# App extensions + +Extend your app’s basic functionality to other parts of the system, like by adding a Widget. + +## Overview + +Use SwiftUI along with WidgetKit to add widgets to your app. + +Widgets provide quick access to relevant content from your app. Define a structure that conforms to the `Widget` protocol, and declare a view hierarchy for the widget. Configure the views inside the widget as you do other SwiftUI views, using view modifiers, including a few widget-specific modifiers. + +For design guidance, see Widgets in the Human Interface Guidelines. + +## Topics + +### Creating widgets + +Building Widgets Using WidgetKit and SwiftUI + +Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings. + +Creating a widget extension + +Display your app’s content in a convenient, informative widget on various devices. + +Keeping a widget up to date + +Plan your widget’s timeline to show timely, relevant information using dynamic views, and update the timeline when things change. + +Making a configurable widget + +Give people the option to customize their widgets by adding a custom app intent to your project. + +`protocol Widget` + +The configuration and content of a widget to display on the Home screen or in Notification Center. + +`protocol WidgetBundle` + +A container used to expose multiple widgets from a single widget extension. + +`struct LimitedAvailabilityConfiguration` + +A type-erased widget configuration. + +`protocol WidgetConfiguration` + +A type that describes a widget’s content. + +`struct EmptyWidgetConfiguration` + +An empty widget configuration. + +### Composing control widgets + +`protocol ControlWidget` + +The configuration and content of a control widget to display in system spaces such as Control Center, the Lock Screen, and the Action Button. + +`protocol ControlWidgetConfiguration` + +A type that describes a control widget’s content. + +`struct EmptyControlWidgetConfiguration` + +An empty control widget configuration. + +`struct ControlWidgetConfigurationBuilder` + +A custom attribute that constructs a control widget’s body. + +`protocol ControlWidgetTemplate` + +`struct EmptyControlWidgetTemplate` + +An empty control widget template. + +`struct ControlWidgetTemplateBuilder` + +A custom attribute that constructs a control widget template’s body. + +`func controlWidgetActionHint(_:)` + +The action hint of the control described by the modified label. + +`func controlWidgetStatus(_:)` + +The status of the control described by the modified label. + +### Labeling a widget + +`func widgetLabel(_:)` + +Returns a localized text label that displays additional content outside the accessory family widget’s main SwiftUI view. + +Creates a label for displaying additional content outside an accessory family widget’s main SwiftUI view. + +### Styling a widget group + +The view modifier that can be applied to `AccessoryWidgetGroup` to specify the shape the three content views will be masked with. The value of `style` is set to `.automatic`, which is `.circular` by default. + +### Controlling the accented group + +Adds the view and all of its subviews to the accented group. + +### Managing placement in the Dynamic Island + +Specifies the vertical placement for a view of an expanded Live Activity that appears in the Dynamic Island. + +## See Also + +### App structure + +Define the entry point and top-level structure of your app. + +Declare the user interface groupings that make up the parts of your app. + +Display user interface content in a window or a collection of windows. + +Display unbounded content in a person’s surroundings. + +Enable people to open and manage documents. + +Enable people to move between different parts of your app’s view hierarchy within a scene. + +Present content in a separate view that offers focused interaction. + +Provide immediate access to frequently used commands and controls. + +Enable people to search for text or other content within your app. + +--- + +# https://developer.apple.com/documentation/swiftui/model-data + +Collection + +- SwiftUI +- Model data + +API Collection + +# Model data + +Manage the data that your app uses to drive its interface. + +## Overview + +SwiftUI offers a declarative approach to user interface design. As you compose a hierarchy of views, you also indicate data dependencies for the views. When the data changes, either due to an external event or because of an action that the user performs, SwiftUI automatically updates the affected parts of the interface. As a result, the framework automatically performs most of the work that view controllers traditionally do. + +The framework provides tools, like state variables and bindings, for connecting your app’s data to the user interface. These tools help you maintain a single source of truth for every piece of data in your app, in part by reducing the amount of glue logic you write. Select the tool that best suits the task you need to perform: + +- Manage transient UI state locally within a view by wrapping value types as `State` properties. + +- Share a reference to a source of truth, like local state, using the `Binding` property wrapper. + +- Connect to and observe reference model data in views by applying the `Observable()` macro to the model data type. Instantiate an observable model data type directly in a view using a `State` property. Share the observable model data with other views in the hierarchy without passing a reference using the `Environment` property wrapper. + +### Leveraging property wrappers + +SwiftUI implements many data management types, like `State` and `Binding`, as Swift property wrappers. Apply a property wrapper by adding an attribute with the wrapper’s name to a property’s declaration. + +@State private var isVisible = true // Declares isVisible as a state variable. + +The property gains the behavior that the wrapper specifies. The state and data flow property wrappers in SwiftUI watch for changes in your data, and automatically update affected views as necessary. When you refer directly to the property in your code, you access the wrapped value, which for the `isVisible` state property in the example above is the stored Boolean. + +if isVisible == true { +Text("Hello") // Only renders when isVisible is true. +} + +Alternatively, you can access a property wrapper’s projected value by prefixing the property name with the dollar sign ( `$`). SwiftUI state and data flow property wrappers project a `Binding`, which is a two-way connection to the wrapped value, allowing another view to access and mutate a single source of truth. + +Toggle("Visible", isOn: $isVisible) // The toggle can update the stored value. + +For more information about property wrappers, see Property Wrappers in The Swift Programming Language. + +## Topics + +### Creating and sharing view state + +Managing user interface state + +Encapsulate view-specific data within your app’s view hierarchy to make your views reusable. + +`struct State` + +A property wrapper type that can read and write a value managed by SwiftUI. + +`struct Bindable` + +A property wrapper type that supports creating bindings to the mutable properties of observable objects. + +`struct Binding` + +A property wrapper type that can read and write a value owned by a source of truth. + +### Creating model data + +Managing model data in your app + +Create connections between your app’s data model and views. + +Migrating from the Observable Object protocol to the Observable macro + +Update your existing app to leverage the benefits of Observation in Swift. + +`@attached(member, names: named(_$observationRegistrar), named(access), named(withMutation), named(shouldNotifyObservers)) @attached(memberAttribute) @attached(extension, conformances: Observable) macro Observable()` + +Defines and implements conformance of the Observable protocol. + +Monitoring data changes in your app + +Show changes to data in your app’s user interface by using observable objects. + +`struct StateObject` + +A property wrapper type that instantiates an observable object. + +`struct ObservedObject` + +A property wrapper type that subscribes to an observable object and invalidates a view whenever the observable object changes. + +`protocol ObservableObject : AnyObject` + +A type of object with a publisher that emits before the object has changed. + +### Responding to data changes + +`func onChange(of:initial:_:)` + +Adds a modifier for this view that fires an action when a specific value changes. + +Adds an action to perform when this view detects data emitted by the given publisher. + +### Distributing model data throughout your app + +Supplies an observable object to a view’s hierarchy. + +Supplies an `ObservableObject` to a view subhierarchy. + +`struct EnvironmentObject` + +A property wrapper type for an observable object that a parent or ancestor view supplies. + +### Managing dynamic data + +`protocol DynamicProperty` + +An interface for a stored variable that updates an external property of a view. + +## See Also + +### Data and storage + +Share data throughout a view hierarchy using the environment. + +Indicate configuration preferences from views to their container views. + +Store data for use across sessions of your app. + +--- + +# https://developer.apple.com/documentation/swiftui/environment-values + +Collection + +- SwiftUI +- Environment values + +API Collection + +# Environment values + +Share data throughout a view hierarchy using the environment. + +## Overview + +Views in SwiftUI can react to configuration information that they read from the environment using an `Environment` property wrapper. + +A view inherits its environment from its container view, subject to explicit changes from an `environment(_:_:)` view modifier, or by implicit changes from one of the many modifiers that operate on environment values. As a result, you can configure a entire hierarchy of views by modifying the environment of the group’s container. + +You can find many built-in environment values in the `EnvironmentValues` structure. You can also create a custom `EnvironmentValues` property by defining a new property in an extension to the environment values structure and applying the `Entry()` macro to the variable declaration. + +## Topics + +### Accessing environment values + +`struct Environment` + +A property wrapper that reads a value from a view’s environment. + +`struct EnvironmentValues` + +A collection of environment values propagated through a view hierarchy. + +### Creating custom environment values + +`macro Entry()` + +Creates an environment values, transaction, container values, or focused values entry. + +`protocol EnvironmentKey` + +A key for accessing values in the environment. + +### Modifying the environment of a view + +Places an observable object in the view’s environment. + +Sets the environment value of the specified key path to the given value. + +Transforms the environment value of the specified key path with the given function. + +### Modifying the environment of a scene + +Places an observable object in the scene’s environment. + +## See Also + +### Data and storage + +Manage the data that your app uses to drive its interface. + +Indicate configuration preferences from views to their container views. + +Store data for use across sessions of your app. + +--- + +# https://developer.apple.com/documentation/swiftui/preferences + +Collection + +- SwiftUI +- Preferences + +API Collection + +# Preferences + +Indicate configuration preferences from views to their container views. + +## Overview + +Whereas you use the environment to configure the subviews of a view, you use preferences to send configuration information from subviews toward their container. However, unlike configuration information that flows down a view hierarchy from one container to many subviews, a single container needs to reconcile potentially conflicting preferences flowing up from its many subviews. + +When you use the `PreferenceKey` protocol to define a custom preference, you indicate how to merge preferences from multiple subviews. You can then set a value for the preference on a view using the `preference(key:value:)` view modifier. Many built-in modifiers, like `navigationTitle(_:)`, rely on preferences to send configuration information to their container. + +## Topics + +### Setting preferences + +Sets a value for the given preference. + +Applies a transformation to a preference value. + +### Creating custom preferences + +`protocol PreferenceKey` + +A named value produced by a view. + +### Setting preferences based on geometry + +Sets a value for the specified preference key, the value is a function of a geometry value tied to the current coordinate space, allowing readers of the value to convert the geometry to their local coordinates. + +Sets a value for the specified preference key, the value is a function of the key’s current value and a geometry value tied to the current coordinate space, allowing readers of the value to convert the geometry to their local coordinates. + +### Responding to changes in preferences + +Adds an action to perform when the specified preference key’s value changes. + +### Generating backgrounds and overlays from preferences + +Reads the specified preference value from the view, using it to produce a second view that is applied as the background of the original view. + +Reads the specified preference value from the view, using it to produce a second view that is applied as an overlay to the original view. + +## See Also + +### Data and storage + +Manage the data that your app uses to drive its interface. + +Share data throughout a view hierarchy using the environment. + +Store data for use across sessions of your app. + +--- + +# https://developer.apple.com/documentation/swiftui/persistent-storage + +Collection + +- SwiftUI +- Persistent storage + +API Collection + +# Persistent storage + +Store data for use across sessions of your app. + +## Overview + +The operating system provides ways to store data when your app closes, so that when people open your app again later, they can continue working without interruption. The mechanism that you use depends on factors like what and how much you need to store, whether you need serialized or random access to the data, and so on. + +You use the same kinds of storage in a SwiftUI app that you use in any other app. For example, you can access files on disk using the `FileManager` interface. However, SwiftUI also provides conveniences that make it easier to use certain kinds of persistent storage in a declarative environment. For example, you can use `FetchRequest` and `FetchedResults` to interact with a Core Data model. + +## Topics + +### Saving state across app launches + +Restoring Your App’s State with SwiftUI + +Provide app continuity for users by preserving their current activities. + +The default store used by `AppStorage` contained within the view. + +`struct AppStorage` + +A property wrapper type that reflects a value from `UserDefaults` and invalidates a view on a change in value in that user default. + +`struct SceneStorage` + +A property wrapper type that reads and writes to persisted, per-scene storage. + +### Accessing Core Data + +Loading and Displaying a Large Data Feed + +Consume data in the background, and lower memory use by batching imports and preventing duplicate records. + +`var managedObjectContext: NSManagedObjectContext` + +`struct FetchRequest` + +A property wrapper type that retrieves entities from a Core Data persistent store. + +`struct FetchedResults` + +A collection of results retrieved from a Core Data store. + +`struct SectionedFetchRequest` + +A property wrapper type that retrieves entities, grouped into sections, from a Core Data persistent store. + +`struct SectionedFetchResults` + +A collection of results retrieved from a Core Data persistent store, grouped into sections. + +## See Also + +### Data and storage + +Manage the data that your app uses to drive its interface. + +Share data throughout a view hierarchy using the environment. + +Indicate configuration preferences from views to their container views. + +--- + +# https://developer.apple.com/documentation/swiftui/view-fundamentals + +Collection + +- SwiftUI +- View fundamentals + +API Collection + +# View fundamentals + +Define the visual elements of your app using a hierarchy of views. + +## 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 + +Define views and assemble them into a view hierarchy. + +`protocol View` + +A type that represents part of your app’s user interface and provides modifiers that you use to configure views. + +`struct ViewBuilder` + +A custom parameter attribute that constructs views from closures. + +### Modifying a view + +Configuring views + +Adjust the characteristics of a view by applying view modifiers. + +Reducing view modifier maintenance + +Bundle view modifiers that you regularly reuse into a custom view modifier. + +Applies a modifier to a view and returns a new view. + +`protocol ViewModifier` + +A modifier that you apply to a view or another view modifier, producing a different version of the original value. + +`struct EmptyModifier` + +An empty, or identity, modifier, used during development to switch modifiers at compile time. + +`struct ModifiedContent` + +A value with a modifier applied to it. + +`protocol EnvironmentalModifier` + +A modifier that must resolve to a concrete modifier in an environment before use. + +`struct ManipulableModifier` Beta + +`struct ManipulableResponderModifier` Beta + +`struct ManipulableTransformBindingModifier` Beta + +`struct ManipulationGeometryModifier` Beta + +`struct ManipulationGestureModifier` Beta + +`struct ManipulationUsingGestureStateModifier` Beta + +`enum Manipulable` + +A namespace for various manipulable related types. + +Beta + +### Responding to view life cycle updates + +Adds an action to perform before this view appears. + +Adds an action to perform after this view disappears. + +Adds an asynchronous task to perform before this view appears. + +Adds a task to perform before this view appears or when a specified value changes. + +### Managing the view hierarchy + +Binds a view’s identity to the given proxy value. + +Sets the unique tag value of this view. + +Prevents the view from updating its child view when its new value is the same as its old value. + +### Supporting view types + +`struct AnyView` + +A type-erased view. + +`struct EmptyView` + +A view that doesn’t contain any content. + +`struct EquatableView` + +A view type that compares itself against its previous value and prevents its child updating if its new value is the same as its old value. + +`struct SubscriptionView` + +A view that subscribes to a publisher with an action. + +`struct TupleView` + +A View created from a swift tuple of View values. + +## See Also + +### Views + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/view-configuration + +Collection + +- SwiftUI +- View configuration + +API Collection + +# View configuration + +Adjust the characteristics of views in a hierarchy. + +## Overview + +SwiftUI enables you to tune the appearance and behavior of views using view modifiers. + +Many modifiers apply to specific kinds of views or behaviors, but some apply more generally. For example, you can conditionally hide any view by dynamically setting its opacity, display contextual help when people hover over a view, or request the light or dark appearance for a view. + +## Topics + +### Hiding views + +Sets the transparency of this view. + +Hides this view unconditionally. + +### Hiding system elements + +Hides the labels of any controls contained within this view. + +Controls the visibility of labels of any controls contained within this view. + +`var labelsVisibility: Visibility` + +The labels visibility set by `labelsVisibility(_:)`. + +Sets the menu indicator visibility for controls within this view. + +Sets the visibility of the status bar. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +`enum Visibility` + +The visibility of a UI element, chosen automatically based on the platform, current context, and other factors. + +### Managing view interaction + +Adds a condition that controls whether users can interact with this view. + +`var isEnabled: Bool` + +A Boolean value that indicates whether the view associated with this environment allows user interaction. + +Sets a tag that you use for tracking interactivity. + +Mark the receiver as their content might be invalidated. + +### Providing contextual help + +`func help(_:)` + +Adds help text to a view using a text view that you provide. + +### Detecting and requesting the light or dark appearance + +Sets the preferred color scheme for this presentation. + +`var colorScheme: ColorScheme` + +The color scheme of this environment. + +`enum ColorScheme` + +The possible color schemes, corresponding to the light and dark appearances. + +### Getting the color scheme contrast + +`var colorSchemeContrast: ColorSchemeContrast` + +The contrast associated with the color scheme of this environment. + +`enum ColorSchemeContrast` + +The contrast between the app’s foreground and background colors. + +### Configuring passthrough + +Applies an effect to passthrough video. + +`struct SurroundingsEffect` + +Effects that the system can apply to passthrough video. + +`struct BreakthroughEffect` Beta + +### Redacting private content + +Designing your app for the Always On state + +Customize your watchOS app’s user interface for continuous display. + +Marks the view as containing sensitive, private user data. + +Adds a reason to apply a redaction to this view hierarchy. + +Removes any reason to apply a redaction to this view hierarchy. + +`var redactionReasons: RedactionReasons` + +The current redaction reasons applied to the view hierarchy. + +`var isSceneCaptured: Bool` + +The current capture state. + +`struct RedactionReasons` + +The reasons to apply a redaction to data displayed on screen. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/view-styles + +Collection + +- SwiftUI +- View styles + +API Collection + +# View styles + +Apply built-in and custom appearances and behaviors to different types of views. + +## Overview + +SwiftUI defines built-in styles for certain kinds of views and automatically selects the appropriate style for a particular presentation context. For example, a `Label` might appear as an icon, a string title, or both, depending on factors like the platform, whether the view appears in a toolbar, and so on. + +You can override the automatic style by using one of the style view modifiers. These modifiers typically propagate throughout a container view, so that you can wrap a view hierarchy in a style modifier to affect all the views of the given type within the hierarchy. + +Any of the style protocols that define a `makeBody(configuration:)` method, like `ToggleStyle`, also enable you to define custom styles. Create a type that conforms to the corresponding style protocol and implement its `makeBody(configuration:)` method. Then apply the new style using a style view modifier exactly like a built-in style. + +## Topics + +### Styling views with Liquid Glass + +Applying Liquid Glass to custom views + +Configure, combine, and morph views using Liquid Glass effects. + +Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +Applies the Liquid Glass effect to a view. + +Beta + +Returns a copy of the structure configured to be interactive. + +`struct GlassEffectContainer` + +A view that combines multiple Liquid Glass shapes into a single shape that can morph individual shapes into one another. + +`struct GlassEffectTransition` + +A structure that describes changes to apply when a glass effect is added or removed from the view hierarchy. + +`struct GlassButtonStyle` + +A button style that applies glass border artwork based on the button’s context. + +### Styling buttons + +`func buttonStyle(_:)` + +Sets the style for buttons within this view to a button style with a custom appearance and standard interaction behavior. + +`protocol ButtonStyle` + +A type that applies standard interaction behavior and a custom appearance to all buttons within a view hierarchy. + +`struct ButtonStyleConfiguration` + +The properties of a button. + +`protocol PrimitiveButtonStyle` + +A type that applies custom interaction behavior and a custom appearance to all buttons within a view hierarchy. + +`struct PrimitiveButtonStyleConfiguration` + +Sets the style used for displaying the control (see `SignInWithAppleButton.Style`). + +### Styling pickers + +Sets the style for pickers within this view. + +`protocol PickerStyle` + +A type that specifies the appearance and interaction of all pickers within a view hierarchy. + +Sets the style for date pickers within this view. + +`protocol DatePickerStyle` + +A type that specifies the appearance and interaction of all date pickers within a view hierarchy. + +### Styling menus + +Sets the style for menus within this view. + +`protocol MenuStyle` + +A type that applies standard interaction behavior and a custom appearance to all menus within a view hierarchy. + +`struct MenuStyleConfiguration` + +A configuration of a menu. + +### Styling toggles + +Sets the style for toggles in a view hierarchy. + +`protocol ToggleStyle` + +The appearance and behavior of a toggle. + +`struct ToggleStyleConfiguration` + +The properties of a toggle instance. + +### Styling indicators + +Sets the style for gauges within this view. + +`protocol GaugeStyle` + +Defines the implementation of all gauge instances within a view hierarchy. + +`struct GaugeStyleConfiguration` + +The properties of a gauge instance. + +Sets the style for progress views in this view. + +`protocol ProgressViewStyle` + +A type that applies standard interaction behavior to all progress views within a view hierarchy. + +`struct ProgressViewStyleConfiguration` + +The properties of a progress view instance. + +### Styling views that display text + +Sets the style for labels within this view. + +`protocol LabelStyle` + +A type that applies a custom appearance to all labels within a view. + +`struct LabelStyleConfiguration` + +The properties of a label. + +Sets the style for text fields within this view. + +`protocol TextFieldStyle` + +A specification for the appearance and interaction of a text field. + +Sets the style for text editors within this view. + +`protocol TextEditorStyle` + +A specification for the appearance and interaction of a text editor. + +`struct TextEditorStyleConfiguration` + +The properties of a text editor. + +### Styling collection views + +Sets the style for lists within this view. + +`protocol ListStyle` + +A protocol that describes the behavior and appearance of a list. + +Sets the style for tables within this view. + +`protocol TableStyle` + +A type that applies a custom appearance to all tables within a view. + +`struct TableStyleConfiguration` + +The properties of a table. + +Sets the style for disclosure groups within this view. + +`protocol DisclosureGroupStyle` + +A type that specifies the appearance and interaction of disclosure groups within a view hierarchy. + +### Styling navigation views + +Sets the style for navigation split views within this view. + +`protocol NavigationSplitViewStyle` + +A type that specifies the appearance and interaction of navigation split views within a view hierarchy. + +Sets the style for the tab view within the current environment. + +`protocol TabViewStyle` + +A specification for the appearance and interaction of a tab view. + +### Styling groups + +Sets the style for control groups within this view. + +`protocol ControlGroupStyle` + +Defines the implementation of all control groups within a view hierarchy. + +`struct ControlGroupStyleConfiguration` + +The properties of a control group. + +Sets the style for forms in a view hierarchy. + +`protocol FormStyle` + +The appearance and behavior of a form. + +`struct FormStyleConfiguration` + +The properties of a form instance. + +Sets the style for group boxes within this view. + +`protocol GroupBoxStyle` + +A type that specifies the appearance and interaction of all group boxes within a view hierarchy. + +`struct GroupBoxStyleConfiguration` + +The properties of a group box instance. + +Sets the style for the index view within the current environment. + +`protocol IndexViewStyle` + +Defines the implementation of all `IndexView` instances within a view hierarchy. + +Sets a style for labeled content. + +`protocol LabeledContentStyle` + +The appearance and behavior of a labeled content instance.. + +`struct LabeledContentStyleConfiguration` + +The properties of a labeled content instance. + +### Styling windows from a view inside the window + +Sets the style for windows created by interacting with this view. + +Sets the style for the toolbar in windows created by interacting with this view. + +### Adding a glass background on views in visionOS + +Fills the view’s background with an automatic glass background effect and container-relative rounded rectangle shape. + +Fills the view’s background with an automatic glass background effect and a shape that you specify. + +`enum GlassBackgroundDisplayMode` + +The display mode of a glass background. + +`protocol GlassBackgroundEffect` + +A specification for the appearance of a glass background. + +`struct AutomaticGlassBackgroundEffect` + +The automatic glass background effect. + +`struct GlassBackgroundEffectConfiguration` + +A configuration used to build a custom effect. + +`struct FeatheredGlassBackgroundEffect` + +The feathered glass background effect. + +`struct PlateGlassBackgroundEffect` + +The plate glass background effect. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/animations + +Collection + +- SwiftUI +- Animations + +API Collection + +# Animations + +Create smooth visual updates in response to state changes. + +## Overview + +You tell SwiftUI how to draw your app’s user interface for different states, and then rely on SwiftUI to make interface updates when the state changes. + +To avoid abrupt visual transitions when the state changes, add animation in one of the following ways: + +- Animate all of the visual changes for a state change by changing the state inside a call to the `withAnimation(_:_:)` global function. + +- Add animation to a particular view when a specific value changes by applying the `animation(_:value:)` view modifier to the view. + +- Animate changes to a `Binding` by using the binding’s `animation(_:)` method. + +SwiftUI animates the effects that many built-in view modifiers produce, like those that set a scale or opacity value. You can animate other values by making your custom views conform to the `Animatable` protocol, and telling SwiftUI about the value you want to animate. + +When an animated state change results in adding or removing a view to or from the view hierarchy, you can tell SwiftUI how to transition the view into or out of place using built-in transitions that `AnyTransition` defines, like `slide` or `scale`. You can also create custom transitions. + +For design guidance, see Motion in the Human Interface Guidelines. + +## Topics + +### Adding state-based animation to an action + +Returns the result of recomputing the view’s body with the provided animation. + +Returns the result of recomputing the view’s body with the provided animation, and runs the completion when all animations are complete. + +`struct AnimationCompletionCriteria` + +The criteria that determines when an animation is considered finished. + +`struct Animation` + +The way a view changes over time to create a smooth visual transition from one state to another. + +### Adding state-based animation to a view + +`func animation(_:)` + +Applies the given animation to this view when this view changes. + +Applies the given animation to this view when the specified value changes. + +Applies the given animation to all animatable values within the `body` closure. + +### Creating phase-based animation + +Controlling the timing and movements of your animations + +Build sophisticated animations that you control using phase and keyframe animators. + +Animates effects that you apply to a view over a sequence of phases that change continuously. + +Animates effects that you apply to a view over a sequence of phases that change based on a trigger. + +`struct PhaseAnimator` + +A container that animates its content by automatically cycling through a collection of phases that you provide, each defining a discrete step within an animation. + +### Creating keyframe-based animation + +Loops the given keyframes continuously, updating the view using the modifiers you apply in `body`. + +Plays the given keyframes when the given trigger value changes, updating the view using the modifiers you apply in `body`. + +`struct KeyframeAnimator` + +A container that animates its content with keyframes. + +`protocol Keyframes` + +A type that defines changes to a value over time. + +`struct KeyframeTimeline` + +A description of how a value changes over time, modeled using keyframes. + +`struct KeyframeTrack` + +A sequence of keyframes animating a single property of a root type. + +`struct KeyframeTrackContentBuilder` + +The builder that creates keyframe track content from the keyframes that you define within a closure. + +`struct KeyframesBuilder` + +A builder that combines keyframe content values into a single value. + +`protocol KeyframeTrackContent` + +A group of keyframes that define an interpolation curve of an animatable value. + +`struct CubicKeyframe` + +A keyframe that uses a cubic curve to smoothly interpolate between values. + +`struct LinearKeyframe` + +A keyframe that uses simple linear interpolation. + +`struct MoveKeyframe` + +A keyframe that immediately moves to the given value without interpolating. + +`struct SpringKeyframe` + +A keyframe that uses a spring function to interpolate to the given value. + +### Creating custom animations + +`protocol CustomAnimation` + +A type that defines how an animatable value changes over time. + +`struct AnimationContext` + +Contextual values that a custom animation can use to manage state and access a view’s environment. + +`struct AnimationState` + +A container that stores the state for a custom animation. + +`protocol AnimationStateKey` + +A key for accessing animation state values. + +`struct UnitCurve` + +A function defined by a two-dimensional curve that maps an input progress in the range \[0,1\] to an output progress that is also in the range \[0,1\]. By changing the shape of the curve, the effective speed of an animation or other interpolation can be changed. + +`struct Spring` + +A representation of a spring’s motion. + +### Making data animatable + +`protocol Animatable` + +A type that describes how to animate a property of a view. + +`struct AnimatableValues` Beta + +`struct AnimatablePair` + +A pair of animatable values, which is itself animatable. + +`protocol VectorArithmetic` + +A type that can serve as the animatable data of an animatable type. + +`struct EmptyAnimatableData` + +An empty type for animatable data. + +### Updating a view on a schedule + +Updating watchOS apps with timelines + +Seamlessly schedule updates to your user interface, even while it’s inactive. + +`struct TimelineView` + +A view that updates according to a schedule that you provide. + +`protocol TimelineSchedule` + +A type that provides a sequence of dates for use as a schedule. + +`typealias TimelineViewDefaultContext` + +Information passed to a timeline view’s content callback. + +### Synchronizing geometries + +Defines a group of views with synchronized geometry using an identifier and namespace that you provide. + +`struct MatchedGeometryProperties` + +A set of view properties that may be synchronized between views using the `View.matchedGeometryEffect()` function. + +`protocol GeometryEffect` + +An effect that changes the visual appearance of a view, largely without changing its ancestors or descendants. + +`struct Namespace` + +A dynamic property type that allows access to a namespace defined by the persistent identity of the object containing the property (e.g. a view). + +Isolates the geometry (e.g. position and size) of the view from its parent view. + +### Defining transitions + +`func transition(_:)` + +Associates a transition with the view. + +`protocol Transition` + +A description of view changes to apply when a view is added to and removed from the view hierarchy. + +`struct TransitionProperties` + +The properties a `Transition` can have. + +`enum TransitionPhase` + +An indication of which the current stage of a transition. + +`struct AsymmetricTransition` + +A composite `Transition` that uses a different transition for insertion versus removal. + +`struct AnyTransition` + +A type-erased transition. + +Modifies the view to use a given transition as its method of animating changes to the contents of its views. + +`var contentTransition: ContentTransition` + +The current method of animating the contents of views. + +`var contentTransitionAddsDrawingGroup: Bool` + +A Boolean value that controls whether views that render content transitions use GPU-accelerated rendering. + +`struct ContentTransition` + +A kind of transition that applies to the content within a single view, rather than to the insertion or removal of a view. + +`struct PlaceholderContentView` + +A placeholder used to construct an inline modifier, transition, or other helper type. + +Sets the navigation transition style for this view. + +`protocol NavigationTransition` + +A type that defines the transition to use when navigating to a view. + +Identifies this view as the source of a navigation transition, such as a zoom transition. + +`protocol MatchedTransitionSourceConfiguration` + +A configuration that defines the appearance of a matched transition source. + +`struct EmptyMatchedTransitionSourceConfiguration` + +An unstyled matched transition source configuration. + +### Moving an animation to another view + +Executes a closure with the specified transaction and returns the result. + +Executes a closure with the specified transaction key path and value and returns the result. + +Applies the given transaction mutation function to all animations used within the view. + +Applies the given transaction mutation function to all animations used within the `body` closure. + +`struct Transaction` + +The context of the current state-processing update. + +`macro Entry()` + +Creates an environment values, transaction, container values, or focused values entry. + +`protocol TransactionKey` + +A key for accessing values in a transaction. + +### Deprecated types + +`protocol AnimatableModifier` + +A modifier that can create another modifier with animation. + +Deprecated + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/text-input-and-output + +Collection + +- SwiftUI +- Text input and output + +API Collection + +# Text input and output + +Display formatted text and get text input from the user. + +## Overview + +To display read-only text, or read-only text paired with an image, use the built-in `Text` or `Label` views, respectively. When you need to collect text input from the user, use an appropriate text input view, like `TextField` or `TextEditor`. + +You add view modifiers to control the text’s font, selectability, alignment, layout direction, and so on. These modifiers also affect other views that display text, like the labels on controls, even if you don’t define an explicit `Text` view. + +For design guidance, see Typography in the Human Interface Guidelines. + +## Topics + +### Displaying text + +`struct Text` + +A view that displays one or more lines of read-only text. + +`struct Label` + +A standard label for user interface items, consisting of an icon with a title. + +Sets the style for labels within this view. + +### Getting text input + +Building rich SwiftUI text experiences + +Build an editor for formatted text using SwiftUI text editor views and attributed strings. + +`struct TextField` + +A control that displays an editable text interface. + +Sets the style for text fields within this view. + +`struct SecureField` + +A control into which people securely enter private text. + +`struct TextEditor` + +A view that can display and edit long-form text. + +### Selecting text + +Controls whether people can select text within this view. + +`protocol TextSelectability` + +A type that describes the ability to select text. + +`struct TextSelection` + +Represents a selection of text. + +Sets the direction of a selection or cursor relative to a text character. + +`var textSelectionAffinity: TextSelectionAffinity` + +A representation of the direction or association of a selection or cursor relative to a text character. This concept becomes much more prominent when dealing with bidirectional text (text that contains both LTR and RTL scripts, like English and Arabic combined). + +`enum TextSelectionAffinity` + +`struct AttributedTextSelection` + +Represents a selection of attributed text. + +Beta + +### Setting a font + +Applying custom fonts to text + +Add and use a font in your app that scales with Dynamic Type. + +Sets the default font for text in this view. + +Sets the font design of the text in this view. + +Sets the font weight of the text in this view. + +Sets the font width of the text in this view. + +`var font: Font?` + +The default font of this environment. + +`struct Font` + +An environment-dependent font. + +### Adjusting text size + +Applies a text scale to text in the view. + +`func dynamicTypeSize(_:)` + +Sets the Dynamic Type size within the view to the given value. + +`var dynamicTypeSize: DynamicTypeSize` + +The current Dynamic Type size. + +`enum DynamicTypeSize` + +A Dynamic Type size, which specifies how large scalable content should be. + +`struct ScaledMetric` + +A dynamic property that scales a numeric value. + +`protocol TextVariantPreference` + +A protocol for controlling the size variant of text views. + +`struct FixedTextVariant` + +The default text variant preference that chooses the largest available variant. + +`struct SizeDependentTextVariant` + +The size dependent variant preference allows the text to take the available space into account when choosing the variant to display. + +### Controlling text style + +Applies a bold font weight to the text in this view. + +Applies italics to the text in this view. + +Applies an underline to the text in this view. + +Applies a strikethrough to the text in this view. + +Sets a transform for the case of the text contained in this view when displayed. + +`var textCase: Text.Case?` + +A stylistic override to transform the case of `Text` when displayed, using the environment’s locale. + +Modifies the fonts of all child views to use the fixed-width variant of the current font, if possible. + +Modifies the fonts of all child views to use fixed-width digits, if possible, while leaving other characters proportionally spaced. + +`protocol AttributedTextFormattingDefinition` + +A protocol for defining how text can be styled in a certain context, e.g. a `TextEditor`. + +`protocol AttributedTextValueConstraint` + +A protocol for defining a constraint on the value of a certain attribute. + +`enum AttributedTextFormatting` + +A namespace for types related to attributed text formatting definitions. + +### Managing text layout + +Sets the truncation mode for lines of text that are too long to fit in the available space. + +`var truncationMode: Text.TruncationMode` + +A value that indicates how the layout truncates the last line of text to fit into the available space. + +Sets whether text in this view can compress the space between characters when necessary to fit text in a line. + +`var allowsTightening: Bool` + +A Boolean value that indicates whether inter-character spacing should tighten to fit the text into the available space. + +Sets the minimum amount that text in this view scales down to fit in the available space. + +`var minimumScaleFactor: CGFloat` + +The minimum permissible proportion to shrink the font size to fit the text into the available space. + +Sets the vertical offset for the text relative to its baseline in this view. + +Sets the spacing, or kerning, between characters for the text in this view. + +Sets the tracking for the text in this view. + +Sets whether this view mirrors its contents horizontally when the layout direction is right-to-left. + +`enum TextAlignment` + +An alignment position for text along the horizontal axis. + +### Rendering text + +Creating visual effects with SwiftUI + +Add scroll effects, rich color treatments, custom transitions, and advanced effects using shaders and a text renderer. + +`protocol TextAttribute` + +A value that you can attach to text views and that text renderers can query. + +Returns a new view such that any text views within it will use `renderer` to draw themselves. + +`protocol TextRenderer` + +A value that can replace the default text view rendering behavior. + +`struct TextProxy` + +A proxy for a text view that custom text renderers use. + +### Limiting line count for multiline text + +`func lineLimit(_:)` + +Sets to a closed range the number of lines that text can occupy in this view. + +Sets a limit for the number of lines text can occupy in this view. + +`var lineLimit: Int?` + +The maximum number of lines that text can occupy in a view. + +### Formatting multiline text + +Sets the amount of space between lines of text in this view. + +`var lineSpacing: CGFloat` + +The distance in points between the bottom of one line fragment and the top of the next. + +Sets the alignment of a text view that contains multiple lines of text. + +`var multilineTextAlignment: TextAlignment` + +An environment value that indicates how a text view aligns its lines when the content wraps or contains newlines. + +### Formatting date and time + +`enum SystemFormatStyle` + +A namespace for format styles that implement designs used across Apple’s platformes. + +`struct TimeDataSource` + +A source of time related data. + +### Managing text entry + +Sets whether to disable autocorrection for this view. + +`var autocorrectionDisabled: Bool` + +A Boolean value that determines whether the view hierarchy has auto-correction enabled. + +Sets the keyboard type for this view. + +Configures the behavior in which scrollable content interacts with the software keyboard. + +`func textContentType(_:)` + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on macOS. + +Sets how often the shift key in the keyboard is automatically enabled. + +`struct TextInputAutocapitalization` + +The kind of autocapitalization behavior applied during text input. + +Associates a fully formed string with the value of this view when used as a text input suggestion + +Configures the text input suggestions for this view. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on a watchOS device. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on an iOS or tvOS device. + +`struct TextInputFormattingControlPlacement` + +A structure defining the system text formatting controls available on each platform. + +### Dictating text + +Configures the dictation behavior for any search fields configured by the searchable modifier. + +`struct TextInputDictationActivation` + +`struct TextInputDictationBehavior` + +### Configuring the Writing Tools behavior + +Specifies the Writing Tools behavior for text and text input in the environment. + +`struct WritingToolsBehavior` + +The Writing Tools editing experience for text and text input. + +### Specifying text equivalents + +`func typeSelectEquivalent(_:)` + +Sets an explicit type select equivalent text in a collection, such as a list or table. + +### Localizing text + +Preparing views for localization + +Specify hints and add strings to localize your SwiftUI views. + +`struct LocalizedStringKey` + +The key used to look up an entry in a strings file or strings dictionary file. + +`var locale: Locale` + +The current locale that views should use. + +`func typesettingLanguage(_:isEnabled:)` + +Specifies the language for typesetting. + +`struct TypesettingLanguage` + +Defines how typesetting language is determined for text. + +### Deprecated types + +`enum ContentSizeCategory` + +The sizes that you can specify for content. + +Deprecated + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/images + +Collection + +- SwiftUI +- Images + +API Collection + +# Images + +Add images and symbols to your app’s user interface. + +## Overview + +Display images, including SF Symbols, images that you store in an asset catalog, and images that you store on disk, using an `Image` view. + +For images that take time to retrieve — for example, when you load an image from a network endpoint — load the image asynchronously using `AsyncImage`. You can instruct that view to display a placeholder during the load operation. + +For design guidance, see Images in the Human Interface Guidelines. + +## Topics + +### Creating an image + +`struct Image` + +A view that displays an image. + +### Configuring an image + +Fitting images into available space + +Adjust the size and shape of images in your app’s user interface by applying view modifiers. + +Scales images within the view according to one of the relative sizes available including small, medium, and large images sizes. + +`var imageScale: Image.Scale` + +The image scale for this environment. + +`enum Scale` + +A scale to apply to vector images relative to text. + +`enum Orientation` + +The orientation of an image. + +`enum ResizingMode` + +The modes that SwiftUI uses to resize an image to fit within its containing view. + +### Loading images asynchronously + +`struct AsyncImage` + +A view that asynchronously loads and displays an image. + +`enum AsyncImagePhase` + +The current phase of the asynchronous image loading operation. + +### Setting a symbol variant + +Makes symbols within the view show a particular variant. + +`var symbolVariants: SymbolVariants` + +The symbol variant to use in this environment. + +`struct SymbolVariants` + +A variant of a symbol. + +### Managing symbol effects + +Returns a new view with a symbol effect added to it. + +Returns a new view with its inherited symbol image effects either removed or left unchanged. + +`struct SymbolEffectTransition` + +Creates a transition that applies the Appear, Disappear, DrawOn or DrawOff symbol animation to symbol images within the inserted or removed view hierarchy. + +### Setting symbol rendering modes + +Sets the rendering mode for symbol images within this view. + +`var symbolRenderingMode: SymbolRenderingMode?` + +The current symbol rendering mode, or `nil` denoting that the mode is picked automatically using the current image and foreground style as parameters. + +`struct SymbolRenderingMode` + +A symbol rendering mode. + +`struct SymbolColorRenderingMode` + +A method of filling a layer in a symbol image. + +Beta + +`struct SymbolVariableValueMode` + +A method of rendering the variable value of a symbol image. + +### Rendering images from views + +`class ImageRenderer` + +An object that creates images from SwiftUI views. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/controls-and-indicators + +Collection + +- SwiftUI +- Controls and indicators + +API Collection + +# Controls and indicators + +Display values and get user selections. + +## Overview + +SwiftUI provides controls that enable user interaction specific to each platform and context. For example, people can initiate events with buttons and links, or choose among a set of discrete values with different kinds of pickers. You can also display information to the user with indicators like progress views and gauges. + +Use these built-in controls and indicators when composing custom views, and style them to match the needs of your app’s user interface. For design guidance, see Menus and actions, Selection and input, and Status in the Human Interface Guidelines. + +## Topics + +### Creating buttons + +`struct Button` + +A control that initiates an action. + +`func buttonStyle(_:)` + +Sets the style for buttons within this view to a button style with a custom appearance and standard interaction behavior. + +Sets the border shape for buttons in this view. + +Sets whether buttons in this view should repeatedly trigger their actions on prolonged interactions. + +`var buttonRepeatBehavior: ButtonRepeatBehavior` + +Whether buttons with this associated environment should repeatedly trigger their actions on prolonged interactions. + +`struct ButtonBorderShape` + +A shape used to draw a button’s border. + +`struct ButtonRole` + +A value that describes the purpose of a button. + +`struct ButtonRepeatBehavior` + +The options for controlling the repeatability of button actions. + +`struct ButtonSizing` Beta + +### Creating special-purpose buttons + +`struct EditButton` + +A button that toggles the edit mode environment value. + +`struct PasteButton` + +A system button that reads items from the pasteboard and delivers it to a closure. + +`struct RenameButton` + +A button that triggers a standard rename action. + +### Linking to other content + +`struct Link` + +A control for navigating to a URL. + +`struct ShareLink` + +A view that controls a sharing presentation. + +`struct SharePreview` + +A representation of a type to display in a share preview. + +`struct TextFieldLink` + +A control that requests text input from the user when pressed. + +`struct HelpLink` + +A button with a standard appearance that opens app-specific help documentation. + +### Getting numeric inputs + +`struct Slider` + +A control for selecting a value from a bounded linear range of values. + +`struct Stepper` + +A control that performs increment and decrement actions. + +`struct Toggle` + +A control that toggles between on and off states. + +Sets the style for toggles in a view hierarchy. + +### Choosing from a set of options + +`struct Picker` + +A control for selecting from a set of mutually exclusive values. + +Sets the style for pickers within this view. + +Sets the style for radio group style pickers within this view to be horizontally positioned with the radio buttons inside the layout. + +Sets the default wheel-style picker item height. + +`var defaultWheelPickerItemHeight: CGFloat` + +The default height of an item in a wheel-style picker, such as a date picker. + +Specifies the selection effect to apply to a palette item. + +`struct PaletteSelectionEffect` + +The selection effect to apply to a palette item. + +### Choosing dates + +`struct DatePicker` + +A control for selecting an absolute date. + +Sets the style for date pickers within this view. + +`struct MultiDatePicker` + +A control for picking multiple dates. + +`var calendar: Calendar` + +The current calendar that views should use when handling dates. + +`var timeZone: TimeZone` + +The current time zone that views should use when handling dates. + +### Choosing a color + +`struct ColorPicker` + +A control used to select a color from the system color picker UI. + +### Indicating a value + +`struct Gauge` + +A view that shows a value within a range. + +Sets the style for gauges within this view. + +`struct ProgressView` + +A view that shows the progress toward completion of a task. + +Sets the style for progress views in this view. + +`struct DefaultDateProgressLabel` + +The default type of the current value label when used by a date-relative progress view. + +`struct DefaultButtonLabel` + +The default label to use for a button. + +Beta + +### Indicating missing content + +`struct ContentUnavailableView` + +An interface, consisting of a label and additional content, that you display when the content of your app is unavailable to users. + +### Providing haptic feedback + +Plays the specified `feedback` when the provided `trigger` value changes. + +`func sensoryFeedback(trigger:_:)` + +Plays feedback when returned from the `feedback` closure after the provided `trigger` value changes. + +Plays the specified `feedback` when the provided `trigger` value changes and the `condition` closure returns `true`. + +`struct SensoryFeedback` + +Represents a type of haptic and/or audio feedback that can be played. + +### Sizing controls + +`func controlSize(_:)` + +Sets the size for controls within this view. + +`enum ControlSize` + +The size classes, like regular or small, that you can apply to controls within a view. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/menus-and-commands + +Collection + +- SwiftUI +- Menus and commands + +API Collection + +# Menus and commands + +Provide space-efficient, context-dependent access to commands and controls. + +## Overview + +Use a menu to provide people with easy access to common commands. You can add items to a macOS or iPadOS app’s menu bar using the `commands(content:)` scene modifier, or create context menus that people reveal near their current task using the `contextMenu(menuItems:)` view modifier. + +Create submenus by nesting `Menu` instances inside others. Use a `Divider` view to create a separator between menu elements. + +For design guidance, see Menus in the Human Interface Guidelines. + +## Topics + +### Building a menu bar + +Building and customizing the menu bar with SwiftUI + +Provide a seamless, cross-platform user experience by building a native menu bar for iPadOS and macOS. + +### Creating a menu + +Populating SwiftUI menus with adaptive controls + +Improve your app by populating menus with controls and organizing your content intuitively. + +`struct Menu` + +A control for presenting a menu of actions. + +Sets the style for menus within this view. + +### Creating context menus + +Adds a context menu to a view. + +Adds a context menu with a custom preview to a view. + +Adds an item-based context menu to a view. + +### Defining commands + +Adds commands to the scene. + +Removes all commands defined by the modified scene. + +Replaces all commands defined by the modified scene with the commands from the builder. + +`protocol Commands` + +Conforming types represent a group of related commands that can be exposed to the user via the main menu on macOS and key commands on iOS. + +`struct CommandMenu` + +Command menus are stand-alone, top-level containers for controls that perform related, app-specific commands. + +`struct CommandGroup` + +Groups of controls that you can add to existing command menus. + +`struct CommandsBuilder` + +Constructs command sets from multi-expression closures. Like `ViewBuilder`, it supports up to ten expressions in the closure body. + +`struct CommandGroupPlacement` + +The standard locations that you can place new command groups relative to. + +### Getting built-in command groups + +`struct SidebarCommands` + +A built-in set of commands for manipulating window sidebars. + +`struct TextEditingCommands` + +A built-in group of commands for searching, editing, and transforming selections of text. + +`struct TextFormattingCommands` + +A built-in set of commands for transforming the styles applied to selections of text. + +`struct ToolbarCommands` + +A built-in set of commands for manipulating window toolbars. + +`struct ImportFromDevicesCommands` + +A built-in set of commands that enables importing content from nearby devices. + +`struct InspectorCommands` + +A built-in set of commands for manipulating inspectors. + +`struct EmptyCommands` + +An empty group of commands. + +### Showing a menu indicator + +Sets the menu indicator visibility for controls within this view. + +`var menuIndicatorVisibility: Visibility` + +The menu indicator visibility to apply to controls within a view. + +### Configuring menu dismissal + +Tells a menu whether to dismiss after performing an action. + +`struct MenuActionDismissBehavior` + +The set of menu dismissal behavior options. + +### Setting a preferred order + +Sets the preferred order of items for menus presented from this view. + +`var menuOrder: MenuOrder` + +The preferred order of items for menus presented from this view. + +`struct MenuOrder` + +The order in which a menu presents its content. + +### Deprecated types + +`struct MenuButton` + +A button that displays a menu containing a list of choices when pressed. + +Deprecated + +`typealias PullDownButton` Deprecated + +`struct ContextMenu` + +A container for views that you present as menu items in a context menu. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/shapes + +Collection + +- SwiftUI +- Shapes + +API Collection + +# Shapes + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +## Overview + +Draw shapes like circles and rectangles, as well as custom paths that define shapes of your own design. Apply styles that include environment-aware colors, rich gradients, and material effects to the foreground, background, and outline of your shapes. + +If you need the efficiency or flexibility of immediate mode drawing — for example, to create particle effects — use a `Canvas` view instead. + +## Topics + +### Creating rectangular shapes + +`struct Rectangle` + +A rectangular shape aligned inside the frame of the view containing it. + +`struct RoundedRectangle` + +A rectangular shape with rounded corners, aligned inside the frame of the view containing it. + +`enum RoundedCornerStyle` + +Defines the shape of a rounded rectangle’s corners. + +`struct UnevenRoundedRectangle` + +A rectangular shape with rounded corners with different values, aligned inside the frame of the view containing it. + +`struct RectangleCornerRadii` + +Describes the corner radius values of a rounded rectangle with uneven corners. + +### Creating circular shapes + +`struct Circle` + +A circle centered on the frame of the view containing it. + +`struct Ellipse` + +An ellipse aligned inside the frame of the view containing it. + +`struct Capsule` + +A capsule shape aligned inside the frame of the view containing it. + +### Drawing custom shapes + +`struct Path` + +The outline of a 2D shape. + +### Defining shape behavior + +`protocol ShapeView` + +A view that provides a shape that you can use for drawing operations. + +`protocol Shape` + +A 2D shape that you can use when drawing a view. + +`struct AnyShape` + +A type-erased shape value. + +`enum ShapeRole` + +Ways of styling a shape. + +`struct StrokeStyle` + +The characteristics of a stroke that traces a path. + +`struct StrokeShapeView` + +A shape provider that strokes its shape. + +`struct StrokeBorderShapeView` + +A shape provider that strokes the border of its shape. + +`struct FillStyle` + +A style for rasterizing vector shapes. + +`struct FillShapeView` + +A shape provider that fills its shape. + +### Transforming a shape + +`struct ScaledShape` + +A shape with a scale transform applied to it. + +`struct RotatedShape` + +A shape with a rotation transform applied to it. + +`struct OffsetShape` + +A shape with a translation offset transform applied to it. + +`struct TransformedShape` + +A shape with an affine transform applied to it. + +### Setting a container shape + +Sets the container shape to use for any container relative shape within this view. + +`protocol InsettableShape` + +A shape type that is able to inset itself to produce another shape. + +`struct ContainerRelativeShape` + +A shape that is replaced by an inset version of the current container shape. If no container shape was defined, is replaced by a rectangle. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Enhance your views with graphical effects and customized drawings. + +--- + +# https://developer.apple.com/documentation/swiftui/drawing-and-graphics + +Collection + +- SwiftUI +- Drawing and graphics + +API Collection + +# Drawing and graphics + +Enhance your views with graphical effects and customized drawings. + +## Overview + +You create rich, dynamic user interfaces with the built-in views and Shapes that SwiftUI provides. To enhance any view, you can apply many of the graphical effects typically associated with a graphics context, like setting colors, adding masks, and creating composites. + +When you need the flexibility of immediate mode drawing in a graphics context, use a `Canvas` view. This can be particularly helpful when you want to draw an extremely large number of dynamic shapes — for example, to create particle effects. + +For design guidance, see Materials and Color in the Human Interface Guidelines. + +## Topics + +### Immediate mode drawing + +Add Rich Graphics to Your SwiftUI App + +Make your apps stand out by adding background materials, vibrancy, custom graphics, and animations. + +`struct Canvas` + +A view type that supports immediate mode drawing. + +`struct GraphicsContext` + +An immediate mode drawing destination, and its current state. + +### Setting a color + +`func tint(_:)` + +Sets the tint color within this view. + +`struct Color` + +A representation of a color that adapts to a given context. + +### Styling content + +Adds a border to this view with the specified style and width. + +Sets a view’s foreground elements to use a given style. + +Sets the primary and secondary levels of the foreground style in the child view. + +Sets the primary, secondary, and tertiary levels of the foreground style. + +Sets the specified style to render backgrounds within the view. + +`var backgroundStyle: AnyShapeStyle?` + +An optional style that overrides the default system background style when set. + +`protocol ShapeStyle` + +A color or pattern to use when rendering a shape. + +`struct AnyShapeStyle` + +A type-erased ShapeStyle value. + +`struct Gradient` + +A color gradient represented as an array of color stops, each having a parametric location value. + +`struct MeshGradient` + +A two-dimensional gradient defined by a 2D grid of positioned colors. + +`struct AnyGradient` + +A color gradient. + +`struct ShadowStyle` + +A style to use when rendering shadows. + +`struct Glass` + +A structure that defines the configuration of the Liquid Glass material. + +Beta + +### Transforming colors + +Brightens this view by the specified amount. + +Sets the contrast and separation between similar colors in this view. + +Inverts the colors in this view. + +Adds a color multiplication effect to this view. + +Adjusts the color saturation of this view. + +Adds a grayscale effect to this view. + +Applies a hue rotation effect to this view. + +Adds a luminance to alpha effect to this view. + +Sets an explicit active appearance for materials in this view. + +`var materialActiveAppearance: MaterialActiveAppearance` + +The behavior materials should use for their active state, defaulting to `automatic`. + +`struct MaterialActiveAppearance` + +The behavior for how materials appear active and inactive. + +### Scaling, rotating, or transforming a view + +Scales this view to fill its parent. + +Scales this view to fit its parent. + +`func scaleEffect(_:anchor:)` + +Scales this view’s rendered output by the given amount in both the horizontal and vertical directions, relative to an anchor point. + +Scales this view’s rendered output by the given horizontal and vertical amounts, relative to an anchor point. + +Scales this view by the specified horizontal, vertical, and depth factors, relative to an anchor point. + +`func aspectRatio(_:contentMode:)` + +Constrains this view’s dimensions to the specified aspect ratio. + +Rotates a view’s rendered output in two dimensions around the specified point. + +Renders a view’s content as if it’s rotated in three dimensions around the specified axis. + +Rotates the view’s content by the specified 3D rotation value. + +`func rotation3DEffect(_:axis:anchor:)` + +Rotates the view’s content by an angle about an axis that you specify as a tuple of elements. + +Applies an affine transformation to this view’s rendered output. + +Applies a 3D transformation to this view’s rendered output. + +Applies a projection transformation to this view’s rendered output. + +`struct ProjectionTransform` + +`enum ContentMode` + +Constants that define how a view’s content fills the available space. + +### Masking and clipping + +Masks this view using the alpha channel of the given view. + +Clips this view to its bounding rectangular frame. + +Sets a clipping shape for this view. + +### Applying blur and shadows + +Applies a Gaussian blur to this view. + +Adds a shadow to this view. + +`struct ColorMatrix` + +A matrix to use in an RGBA color transformation. + +### Applying effects based on geometry + +Applies effects to this view, while providing access to layout information through a geometry proxy. + +Applies effects to this view, while providing access to layout information through a 3D geometry proxy. + +`protocol VisualEffect` + +Visual Effects change the visual appearance of a view without changing its ancestors or descendents. + +`struct EmptyVisualEffect` + +The base visual effect that you apply additional effect to. + +### Compositing views + +Sets the blend mode for compositing this view with overlapping views. + +Wraps this view in a compositing group. + +Composites this view’s contents into an offscreen image before final display. + +`enum BlendMode` + +Modes for compositing a view with overlapping content. + +`enum ColorRenderingMode` + +The set of possible working color spaces for color-compositing operations. + +`protocol CompositorContent` Beta + +`struct CompositorContentBuilder` + +A result builder for composing a collection of `CompositorContent` elements. + +### Measuring a view + +`struct GeometryReader` + +A container view that defines its content as a function of its own size and coordinate space. + +`struct GeometryReader3D` + +`struct GeometryProxy` + +A proxy for access to the size and coordinate space (for anchor resolution) of the container view. + +`struct GeometryProxy3D` + +A proxy for access to the size and coordinate space of the container view. + +Assigns a name to the view’s coordinate space, so other code can operate on dimensions like points and sizes relative to the named space. + +`enum CoordinateSpace` + +A resolved coordinate space created by the coordinate space protocol. + +`protocol CoordinateSpaceProtocol` + +A frame of reference within the layout system. + +`struct PhysicalMetric` + +Provides access to a value in points that corresponds to the specified physical measurement. + +`struct PhysicalMetricsConverter` + +A physical metrics converter provides conversion between point values and their extent in 3D space, in the form of physical length measurements. + +### Responding to a geometry change + +`func onGeometryChange(for:of:action:)` + +Adds an action to be performed when a value, created from a geometry proxy, changes. + +### Accessing Metal shaders + +Returns a new view that applies `shader` to `self` as a filter effect on the color of each pixel. + +Returns a new view that applies `shader` to `self` as a geometric distortion effect on the location of each pixel. + +Returns a new view that applies `shader` to `self` as a filter on the raster layer created from `self`. + +`struct Shader` + +A reference to a function in a Metal shader library, along with its bound uniform argument values. + +`struct ShaderFunction` + +A reference to a function in a Metal shader library. + +`struct ShaderLibrary` + +A Metal shader library. + +### Accessing geometric constructs + +`enum Axis` + +The horizontal or vertical dimension in a 2D coordinate system. + +`struct Angle` + +A geometric angle whose value you access in either radians or degrees. + +`struct UnitPoint` + +A normalized 2D point in a view’s coordinate space. + +`struct UnitPoint3D` + +A normalized 3D point in a view’s coordinate space. + +`struct Anchor` + +An opaque value derived from an anchor source and a particular view. + +`protocol DepthAlignmentID` + +`struct Alignment3D` + +An alignment in all three axes. + +`struct GeometryProxyCoordinateSpace3D` + +A representation of a `GeometryProxy3D` which can be used for `CoordinateSpace3D` based conversions. + +## See Also + +### Views + +Define the visual elements of your app using a hierarchy of views. + +Adjust the characteristics of views in a hierarchy. + +Apply built-in and custom appearances and behaviors to different types of views. + +Create smooth visual updates in response to state changes. + +Display formatted text and get text input from the user. + +Add images and symbols to your app’s user interface. + +Display values and get user selections. + +Provide space-efficient, context-dependent access to commands and controls. + +Trace and fill built-in and custom shapes with a color, gradient, or other pattern. + +--- + +# https://developer.apple.com/documentation/swiftui/layout-fundamentals + +Collection + +- SwiftUI +- Layout fundamentals + +API Collection + +# Layout fundamentals + +Arrange views inside built-in layout containers like stacks and grids. + +## Overview + +Use layout containers to arrange the elements of your user interface. Stacks and grids update and adjust the positions of the subviews they contain in response to changes in content or interface dimensions. You can nest layout containers inside other layout containers to any depth to achieve complex layout effects. + +To finetune the position, alignment, and other elements of a layout that you build with layout container views, see Layout adjustments. To define custom layout containers, see Custom layout. For design guidance, see Layout in the Human Interface Guidelines. + +## Topics + +### Choosing a layout + +Picking container views for your content + +Build flexible user interfaces by using stacks, grids, lists, and forms. + +### Statically arranging views in one dimension + +Building layouts with stack views + +Compose complex layouts from primitive container views. + +`struct HStack` + +A view that arranges its subviews in a horizontal line. + +`struct VStack` + +A view that arranges its subviews in a vertical line. + +### Dynamically arranging views in one dimension + +Grouping data with lazy stack views + +Split content into logical sections inside lazy stack views. + +Creating performant scrollable stacks + +Display large numbers of repeated views efficiently with scroll views, stack views, and lazy stacks. + +`struct LazyHStack` + +A view that arranges its children in a line that grows horizontally, creating items only as needed. + +`struct LazyVStack` + +A view that arranges its children in a line that grows vertically, creating items only as needed. + +`struct PinnedScrollableViews` + +A set of view types that may be pinned to the bounds of a scroll view. + +### Statically arranging views in two dimensions + +`struct Grid` + +A container view that arranges other views in a two dimensional layout. + +`struct GridRow` + +A horizontal row in a two dimensional grid container. + +Tells a view that acts as a cell in a grid to span the specified number of columns. + +Specifies a custom alignment anchor for a view that acts as a grid cell. + +Asks grid layouts not to offer the view extra size in the specified axes. + +Overrides the default horizontal alignment of the grid column that the view appears in. + +### Dynamically arranging views in two dimensions + +`struct LazyHGrid` + +A container view that arranges its child views in a grid that grows horizontally, creating items only as needed. + +`struct LazyVGrid` + +A container view that arranges its child views in a grid that grows vertically, creating items only as needed. + +`struct GridItem` + +A description of a row or a column in a lazy grid. + +### Layering views + +Adding a background to your view + +Compose a background behind your view and extend it beyond the safe area insets. + +`struct ZStack` + +A view that overlays its subviews, aligning them in both axes. + +Controls the display order of overlapping views. + +Layers the views that you specify behind this view. + +Sets the view’s background to a style. + +Sets the view’s background to the default background style. + +`func background(_:in:fillStyle:)` + +Sets the view’s background to an insettable shape filled with a style. + +`func background(in:fillStyle:)` + +Sets the view’s background to an insettable shape filled with the default background style. + +Layers the views that you specify in front of this view. + +Layers the specified style in front of this view. + +Layers a shape that you specify in front of this view. + +`var backgroundMaterial: Material?` + +The material underneath the current view. + +Sets the container background of the enclosing container using a view. + +`struct ContainerBackgroundPlacement` + +The placement of a container background. + +### Automatically choosing the layout that fits + +`struct ViewThatFits` + +A view that adapts to the available space by providing the first child view that fits. + +### Separators + +`struct Spacer` + +A flexible space that expands along the major axis of its containing stack layout, or on both axes if not contained in a stack. + +`struct Divider` + +A visual element that can be used to separate other content. + +## See Also + +### View layout + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/layout-adjustments + +Collection + +- SwiftUI +- Layout adjustments + +API Collection + +# Layout adjustments + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +## Overview + +Layout containers like stacks and grids provide a great starting point for arranging views in your app’s user interface. When you need to make fine adjustments, use layout view modifiers. You can adjust or constrain the size, position, and alignment of a view. You can also add padding around a view, and indicate how the view interacts with system-defined safe areas. + +To get started with a basic layout, see Layout fundamentals. For design guidance, see Layout in the Human Interface Guidelines. + +## Topics + +### Finetuning a layout + +Laying out a simple view + +Create a view layout by adjusting the size of views. + +Inspecting view layout + +Determine the position and extent of a view using Xcode previews or by adding temporary borders. + +### Adding padding around a view + +`func padding(_:)` + +Adds a different padding amount to each edge of this view. + +Adds an equal padding amount to specific edges of this view. + +`func padding3D(_:)` + +Pads this view using the edge insets you specify. + +Adds padding to the specified edges of this view using an amount that’s appropriate for the current scene. + +Adds a specified kind of padding to the specified edges of this view using an amount that’s appropriate for the current scene. + +`struct ScenePadding` + +The padding used to space a view from its containing scene. + +### Influencing a view’s size + +Positions this view within an invisible frame with the specified size. + +Positions this view within an invisible frame with the specified depth. + +Positions this view within an invisible frame having the specified size constraints. + +Positions this view within an invisible frame having the specified depth constraints. + +Positions this view within an invisible frame with a size relative to the nearest container. + +Fixes this view at its ideal size. + +Fixes this view at its ideal size in the specified dimensions. + +Sets the priority by which a parent layout should apportion space to this child. + +### Adjusting a view’s position + +Making fine adjustments to a view’s position + +Shift the position of a view by applying the offset or position modifier. + +Positions the center of this view at the specified point in its parent’s coordinate space. + +Positions the center of this view at the specified coordinates in its parent’s coordinate space. + +Offset this view by the horizontal and vertical amount specified in the offset parameter. + +Offset this view by the specified horizontal and vertical distances. + +Brings a view forward in Z by the provided distance in points. + +### Aligning views + +Aligning views within a stack + +Position views inside a stack using alignment guides. + +Aligning views across stacks + +Create a custom alignment and use it to align views across multiple stacks. + +`func alignmentGuide(_:computeValue:)` + +Sets the view’s horizontal alignment. + +`struct Alignment` + +An alignment in both axes. + +`struct HorizontalAlignment` + +An alignment position along the horizontal axis. + +`struct VerticalAlignment` + +An alignment position along the vertical axis. + +`struct DepthAlignment` + +An alignment position along the depth axis. + +`protocol AlignmentID` + +A type that you use to create custom alignment guides. + +`struct ViewDimensions` + +A view’s size and alignment guides in its own coordinate space. + +`struct ViewDimensions3D` + +A view’s 3D size and alignment guides in its own coordinate space. + +`struct SpatialContainer` + +A layout container that aligns overlapping content in 3D space. + +Beta + +### Setting margins + +Configures the content margin for a provided placement. + +`func contentMargins(_:_:for:)` + +`struct ContentMarginPlacement` + +The placement of margins. + +### Staying in the safe areas + +Expands the safe area of a view. + +`func safeAreaInset(edge:alignment:spacing:content:)` + +Shows the specified content beside the modified view. + +`func safeAreaPadding(_:)` + +Adds the provided insets into the safe area of this view. + +`struct SafeAreaRegions` + +A set of symbolic safe area regions. + +### Setting a layout direction + +Sets the behavior of this view for different layout directions. + +`enum LayoutDirectionBehavior` + +A description of what should happen when the layout direction changes. + +`var layoutDirection: LayoutDirection` + +The layout direction associated with the current environment. + +`enum LayoutDirection` + +A direction in which SwiftUI can lay out content. + +`struct LayoutRotationUnaryLayout` Beta + +### Reacting to interface characteristics + +`var isLuminanceReduced: Bool` + +A Boolean value that indicates whether the display or environment currently requires reduced luminance. + +`var displayScale: CGFloat` + +The display scale of this environment. + +`var pixelLength: CGFloat` + +The size of a pixel on the screen. + +`var horizontalSizeClass: UserInterfaceSizeClass?` + +The horizontal size class of this environment. + +`var verticalSizeClass: UserInterfaceSizeClass?` + +The vertical size class of this environment. + +`enum UserInterfaceSizeClass` + +A set of values that indicate the visual size available to the view. + +### Accessing edges, regions, and layouts + +`enum Edge` + +An enumeration to indicate one edge of a rectangle. + +`enum Edge3D` + +An edge or face of a 3D volume. + +`enum HorizontalEdge` + +An edge on the horizontal axis. + +`enum VerticalEdge` + +An edge on the vertical axis. + +`struct EdgeInsets` + +The inset distances for the sides of a rectangle. + +`struct EdgeInsets3D` + +The inset distances for the faces of a 3D volume. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/custom-layout + +Collection + +- SwiftUI +- Custom layout + +API Collection + +# Custom layout + +Place views in custom arrangements and create animated transitions between layout types. + +## Overview + +You can create complex view layouts using the built-in layout containers and layout view modifiers that SwiftUI provides. However, if you need behavior that you can’t achieve with the built-in layout tools, create a custom layout container type using the `Layout` protocol. A container that you define asks for the sizes of all its subviews, and then indicates where to place the subviews within its own bounds. + +You can also create animated transitions among layout types that conform to the `Layout` procotol, including both built-in and custom layouts. + +For design guidance, see Layout in the Human Interface Guidelines. + +## Topics + +### Creating a custom layout container + +Composing custom layouts with SwiftUI + +Arrange views in your app’s interface using layout tools that SwiftUI provides. + +`protocol Layout` + +A type that defines the geometry of a collection of views. + +`struct LayoutSubview` + +A proxy that represents one subview of a layout. + +`struct LayoutSubviews` + +A collection of proxy values that represent the subviews of a layout view. + +### Configuring a custom layout + +`struct LayoutProperties` + +Layout-specific properties of a layout container. + +`struct ProposedViewSize` + +A proposal for the size of a view. + +`struct ViewSpacing` + +A collection of the geometric spacing preferences of a view. + +### Associating values with views in a custom layout + +Associates a value with a custom layout property. + +`protocol LayoutValueKey` + +A key for accessing a layout value of a layout container’s subviews. + +### Transitioning between layout types + +`struct AnyLayout` + +A type-erased instance of the layout protocol. + +`struct HStackLayout` + +A horizontal container that you can use in conditional layouts. + +`struct VStackLayout` + +A vertical container that you can use in conditional layouts. + +`struct ZStackLayout` + +An overlaying container that you can use in conditional layouts. + +`struct GridLayout` + +A grid that you can use in conditional layouts. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/lists + +Collection + +- SwiftUI +- Lists + +API Collection + +# Lists + +Display a structured, scrollable column of information. + +## Overview + +Use a list to display a one-dimensional vertical collection of views. + +The list is a complex container type that automatically provides scrolling when it grows too large for the current display. You build a list by providing it with individual views for the rows in the list, or by using a `ForEach` to enumerate a group of rows. You can also mix these strategies, blending any number of individual views and `ForEach` constructs. + +Use view modifiers to configure the appearance and behavior of a list and its rows, headers, sections, and separators. For example, you can apply a style to the list, add swipe gestures to individual rows, or make the list refreshable with a pull-down gesture. You can also use the configuration associated with Scroll views to control the list’s implicit scrolling behavior. + +For design guidance, see Lists and tables in the Human Interface Guidelines. + +## Topics + +### Creating a list + +Displaying data in lists + +Visualize collections of data with platform-appropriate appearance. + +`struct List` + +A container that presents rows of data arranged in a single column, optionally providing the ability to select one or more members. + +Sets the style for lists within this view. + +### Disclosing information progressively + +`struct OutlineGroup` + +A structure that computes views and disclosure groups on demand from an underlying collection of tree-structured, identified data. + +`struct DisclosureGroup` + +A view that shows or hides another content view, based on the state of a disclosure control. + +Sets the style for disclosure groups within this view. + +### Configuring rows + +Applies an inset to the rows in a list. + +Requests that the containing list row use the provided hover effect. + +Requests that the containing list row have its hover effect disabled. + +`func listItemTint(_:)` + +Sets a fixed tint color for content in a list. + +`struct ListItemTint` + +A tint effect configuration that you can apply to content in a list. + +`var defaultMinListRowHeight: CGFloat` + +The default minimum height of a row in a list. + +### Configuring separators + +Sets the tint color associated with a row. + +Sets the tint color associated with a section. + +Sets the display mode for the separator associated with this specific row. + +Sets whether to hide the separator associated with a list section. + +### Configuring headers + +Sets the header prominence for this view. + +`var headerProminence: Prominence` + +The prominence to apply to section headers within a view. + +`enum Prominence` + +A type indicating the prominence of a view hierarchy. + +`var defaultMinListHeaderHeight: CGFloat?` + +The default minimum height of a header in a list. + +### Configuring spacing + +Sets the vertical spacing between two adjacent rows in a List. + +`func listSectionSpacing(_:)` + +Sets the spacing between adjacent sections in a `List` to a custom value. + +`struct ListSectionSpacing` + +The spacing options between two adjacent sections in a list. + +### Configuring backgrounds + +Places a custom background view behind a list row item. + +Overrides whether lists and tables in this view have alternating row backgrounds. + +`struct AlternatingRowBackgroundBehavior` + +The styling of views with respect to alternating row backgrounds. + +`var backgroundProminence: BackgroundProminence` + +The prominence of the background underneath views associated with this environment. + +`struct BackgroundProminence` + +The prominence of backgrounds underneath other views. + +### Displaying a badge on a list item + +`func badge(_:)` + +Generates a badge for the view from an integer value. + +Specifies the prominence of badges created by this view. + +`var badgeProminence: BadgeProminence` + +The prominence to apply to badges associated with this environment. + +`struct BadgeProminence` + +The visual prominence of a badge. + +### Configuring interaction + +Adds custom swipe actions to a row in a list. + +Adds a condition that controls whether users can select this view. + +### Refreshing a list’s content + +Marks this view as refreshable. + +`var refresh: RefreshAction?` + +A refresh action stored in a view’s environment. + +`struct RefreshAction` + +An action that initiates a refresh operation. + +### Editing a list + +Adds a condition for whether the view’s view hierarchy is movable. + +Adds a condition for whether the view’s view hierarchy is deletable. + +An indication of whether the user can edit the contents of a view associated with this environment. + +`enum EditMode` + +A mode that indicates whether the user can edit a view’s content. + +`struct EditActions` + +A set of edit actions on a collection of data that a view can offer to a user. + +`struct EditableCollectionContent` + +An opaque wrapper view that adds editing capabilities to a row in a list. + +`struct IndexedIdentifierCollection` + +A collection wrapper that iterates over the indices and identifiers of a collection together. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/tables + +Collection + +- SwiftUI +- Tables + +API Collection + +# Tables + +Display selectable, sortable data arranged in rows and columns. + +## Overview + +Use a table to display multiple values across a collection of elements. Each element in the collection appears in a different row of the table, while each value for a given element appears in a different column. Narrow displays may adapt to show only the first column of the table. + +When you create a table, you provide a collection of elements, and then tell the table how to find the needed value for each column. In simple cases, SwiftUI infers the element for each row, but you can also specify the row elements explicitly in more complex scenarios. With a small amount of additional configuration, you can also make the items in the table selectable, and the columns sortable. + +Like a `List`, a table includes implicit vertical scrolling that you can configure using the view modifiers described in Scroll views. For design guidance, see Lists and tables in the Human Interface Guidelines. + +## Topics + +### Creating a table + +Building a Great Mac App with SwiftUI + +Create engaging SwiftUI Mac apps by incorporating side bars, tables, toolbars, and several other popular user interface elements. + +`struct Table` + +A container that presents rows of data arranged in one or more columns, optionally providing the ability to select one or more members. + +Sets the style for tables within this view. + +### Creating columns + +`struct TableColumn` + +A column that displays a view for each row in a table. + +`protocol TableColumnContent` + +A type used to represent columns within a table. + +`struct TableColumnAlignment` + +Describes the alignment of the content of a table column. + +`struct TableColumnBuilder` + +A result builder that creates table column content from closures. + +`struct TableColumnForEach` + +A structure that computes columns on demand from an underlying collection of identified data. + +### Customizing columns + +Controls the visibility of a `Table`’s column header views. + +`struct TableColumnCustomization` + +A representation of the state of the columns in a table. + +`struct TableColumnCustomizationBehavior` + +A set of customization behaviors of a column that a table can offer to a user. + +### Creating rows + +`struct TableRow` + +A row that represents a data value in a table. + +`protocol TableRowContent` + +A type used to represent table rows. + +`struct TableHeaderRowContent` + +A table row that displays a single view instead of columned content. + +`struct TupleTableRowContent` + +A type of table column content that creates table rows created from a Swift tuple of table rows. + +`struct TableForEachContent` + +A type of table row content that creates table rows created by iterating over a collection. + +`struct EmptyTableRowContent` + +A table row content that doesn’t produce any rows. + +`protocol DynamicTableRowContent` + +A type of table row content that generates table rows from an underlying collection of data. + +`struct TableRowBuilder` + +A result builder that creates table row content from closures. + +### Adding progressive disclosure + +`struct DisclosureTableRow` + +A kind of table row that shows or hides additional rows based on the state of a disclosure control. + +`struct TableOutlineGroupContent` + +An opaque table row type created by a table’s hierarchical initializers. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/view-groupings + +Collection + +- SwiftUI +- View groupings + +API Collection + +# View groupings + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +## Overview + +You can create groups of views that serve different purposes. + +For example, a `Group` construct treats the specified views as a unit without imposing any additional layout or appearance characteristics. A `Form` presents a group of elements with a platform-specific appearance that’s suitable for gathering input from people. + +For design guidance, see Layout in the Human Interface Guidelines. + +## Topics + +### Grouping views into a container + +Creating custom container views + +Access individual subviews to compose flexible container views. + +`struct Group` + +A type that collects multiple instances of a content type — like views, scenes, or commands — into a single unit. + +`struct GroupElementsOfContent` + +Transforms the subviews of a given view into a resulting content view. + +`struct GroupSectionsOfContent` + +Transforms the sections of a given view into a resulting content view. + +### Organizing views into sections + +`struct Section` + +A container view that you can use to add hierarchy within certain views. + +`struct SectionCollection` + +An opaque collection representing the sections of view. + +`struct SectionConfiguration` + +Specifies the contents of a section. + +### Iterating over dynamic data + +`struct ForEach` + +A structure that computes views on demand from an underlying collection of identified data. + +`struct ForEachSectionCollection` + +A collection which allows a view to be treated as a collection of its sections in a for each loop. + +`struct ForEachSubviewCollection` + +A collection which allows a view to be treated as a collection of its subviews in a for each loop. + +`protocol DynamicViewContent` + +A type of view that generates views from an underlying collection of data. + +### Accessing a container’s subviews + +`struct Subview` + +An opaque value representing a subview of another view. + +`struct SubviewsCollection` + +An opaque collection representing the subviews of view. + +`struct SubviewsCollectionSlice` + +A slice of a SubviewsCollection. + +Sets a particular container value of a view. + +`struct ContainerValues` + +A collection of container values associated with a given view. + +`protocol ContainerValueKey` + +A key for accessing container values. + +### Grouping views into a box + +`struct GroupBox` + +A stylized view, with an optional label, that visually collects a logical grouping of content. + +Sets the style for group boxes within this view. + +### Grouping inputs + +`struct Form` + +A container for grouping controls used for data entry, such as in settings or inspectors. + +Sets the style for forms in a view hierarchy. + +`struct LabeledContent` + +A container for attaching a label to a value-bearing view. + +Sets a style for labeled content. + +### Presenting a group of controls + +`struct ControlGroup` + +A container view that displays semantically-related controls in a visually-appropriate manner for the context + +Sets the style for control groups within this view. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Enable people to scroll to content that doesn’t fit in the current display. + +--- + +# https://developer.apple.com/documentation/swiftui/scroll-views + +Collection + +- SwiftUI +- Scroll views + +API Collection + +# Scroll views + +Enable people to scroll to content that doesn’t fit in the current display. + +## Overview + +When the content of a view doesn’t fit in the display, you can wrap the view in a `ScrollView` to enable people to scroll on one or more axes. Configure the scroll view using view modifiers. For example, you can set the visibility of the scroll indicators or the availability of scrolling in a given dimension. + +You can put any view type in a scroll view, but you most often use a scroll view for a layout container with too many elements to fit in the display. For some container views that you put in a scroll view, like lazy stacks, the container doesn’t load views until they are visible or almost visible. For others, like regular stacks and grids, the container loads the content all at once, regardless of the state of scrolling. + +Lists and Tables implicitly include a scroll view, so you don’t need to add scrolling to those container types. However, you can configure their implicit scroll views with the same view modifiers that apply to explicit scroll views. + +For design guidance, see Scroll views in the Human Interface Guidelines. + +## Topics + +### Creating a scroll view + +`struct ScrollView` + +A scrollable view. + +`struct ScrollViewReader` + +A view that provides programmatic scrolling, by working with a proxy to scroll to known child views. + +`struct ScrollViewProxy` + +A proxy value that supports programmatic scrolling of the scrollable views within a view hierarchy. + +### Managing scroll position + +Associates a binding to a scroll position with a scroll view within this view. + +Associates a binding to be updated when a scroll view within this view scrolls. + +Associates an anchor to control which part of the scroll view’s content should be rendered by default. + +Associates an anchor to control the position of a scroll view in a particular circumstance. + +`struct ScrollAnchorRole` + +A type defining the role of a scroll anchor. + +`struct ScrollPosition` + +A type that defines the semantic position of where a scroll view is scrolled within its content. + +### Defining scroll targets + +Sets the scroll behavior of views scrollable in the provided axes. + +Configures the outermost layout as a scroll target layout. + +`struct ScrollTarget` + +A type defining the target in which a scroll view should try and scroll to. + +`protocol ScrollTargetBehavior` + +A type that defines the scroll behavior of a scrollable view. + +`struct ScrollTargetBehaviorContext` + +The context in which a scroll target behavior updates its scroll target. + +`struct PagingScrollTargetBehavior` + +The scroll behavior that aligns scroll targets to container-based geometry. + +`struct ViewAlignedScrollTargetBehavior` + +The scroll behavior that aligns scroll targets to view-based geometry. + +`struct AnyScrollTargetBehavior` + +A type-erased scroll target behavior. + +`struct ScrollTargetBehaviorProperties` + +Properties influencing the scroll view a scroll target behavior applies to. + +`struct ScrollTargetBehaviorPropertiesContext` + +The context in which a scroll target behavior can decide its properties. + +### Animating scroll transitions + +Applies the given transition, animating between the phases of the transition as this view appears and disappears within the visible region of the containing scroll view. + +`enum ScrollTransitionPhase` + +The phases that a view transitions between when it scrolls among other views. + +`struct ScrollTransitionConfiguration` + +The configuration of a scroll transition that controls how a transition is applied as a view is scrolled through the visible region of a containing scroll view or other container. + +### Responding to scroll view changes + +Adds an action to be performed when a value, created from a scroll geometry, changes. + +Adds an action to be called with information about what views would be considered visible. + +Adds an action to be called when the view crosses the threshold to be considered on/off screen. + +`func onScrollPhaseChange(_:)` + +Adds an action to perform when the scroll phase of the first scroll view in the hierarchy changes. + +`struct ScrollGeometry` + +A type that defines the geometry of a scroll view. + +`enum ScrollPhase` + +A type that describes the state of a scroll gesture of a scrollable view like a scroll view. + +`struct ScrollPhaseChangeContext` + +A type that provides you with more content when the phase of a scroll view changes. + +### Showing scroll indicators + +Flashes the scroll indicators of a scrollable view when it appears. + +Flashes the scroll indicators of scrollable views when a value changes. + +Sets the visibility of scroll indicators within this view. + +`var horizontalScrollIndicatorVisibility: ScrollIndicatorVisibility` + +The visibility to apply to scroll indicators of any horizontally scrollable content. + +`var verticalScrollIndicatorVisibility: ScrollIndicatorVisibility` + +The visiblity to apply to scroll indicators of any vertically scrollable content. + +`struct ScrollIndicatorVisibility` + +The visibility of scroll indicators of a UI element. + +### Managing content visibility + +Specifies the visibility of the background for scrollable views within this view. + +Sets whether a scroll view clips its content to its bounds. + +`struct ScrollContentOffsetAdjustmentBehavior` + +A type that defines the different kinds of content offset adjusting behaviors a scroll view can have. + +### Disabling scrolling + +Disables or enables scrolling in scrollable views. + +`var isScrollEnabled: Bool` + +A Boolean value that indicates whether any scroll views associated with this environment allow scrolling to occur. + +### Configuring scroll bounce behavior + +Configures the bounce behavior of scrollable views along the specified axis. + +`var horizontalScrollBounceBehavior: ScrollBounceBehavior` + +The scroll bounce mode for the horizontal axis of scrollable views. + +`var verticalScrollBounceBehavior: ScrollBounceBehavior` + +The scroll bounce mode for the vertical axis of scrollable views. + +`struct ScrollBounceBehavior` + +The ways that a scrollable view can bounce when it reaches the end of its content. + +### Configuring scroll edge effects + +Configures the scroll edge effect style for scroll views within this hierarchy. + +Beta + +Disables any scroll edge effects for scroll views within this hierarchy. + +`struct ScrollEdgeEffectStyle` + +A structure that defines the style of pocket a scroll view will have. + +`func safeAreaBar(edge:alignment:spacing:content:)` + +Renders the provided content appropriately to be displayed as a custom bar. + +### Interacting with a software keyboard + +Configures the behavior in which scrollable content interacts with the software keyboard. + +`var scrollDismissesKeyboardMode: ScrollDismissesKeyboardMode` + +The way that scrollable content interacts with the software keyboard. + +`struct ScrollDismissesKeyboardMode` + +The ways that scrollable content can interact with the software keyboard. + +### Managing scrolling for different inputs + +Enables or disables scrolling in scrollable views when using particular inputs. + +`struct ScrollInputKind` + +Inputs used to scroll views. + +`struct ScrollInputBehavior` + +A type that defines whether input should scroll a view. + +## See Also + +### View layout + +Arrange views inside built-in layout containers like stacks and grids. + +Make fine adjustments to alignment, spacing, padding, and other layout parameters. + +Place views in custom arrangements and create animated transitions between layout types. + +Display a structured, scrollable column of information. + +Display selectable, sortable data arranged in rows and columns. + +Present views in different kinds of purpose-driven containers, like forms or control groups. + +--- + +# https://developer.apple.com/documentation/swiftui/gestures + +Collection + +- SwiftUI +- Gestures + +API Collection + +# Gestures + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +## Overview + +Respond to gestures by adding gesture modifiers to your views. You can listen for taps, drags, pinches, and other standard gestures. + +You can also compose custom gestures from individual gestures using the `simultaneously(with:)`, `sequenced(before:)`, or `exclusively(before:)` modifiers, or combine gestures with keyboard modifiers using the `modifiers(_:)` modifier. + +For design guidance, see Gestures in the Human Interface Guidelines. + +## Topics + +### Essentials + +Adding interactivity with gestures + +Use gesture modifiers to add interactivity to your app. + +### Recognizing tap gestures + +Adds an action to perform when this view recognizes a tap gesture. + +`func onTapGesture(count:coordinateSpace:perform:)` + +Adds an action to perform when this view recognizes a tap gesture, and provides the action with the location of the interaction. + +`struct TapGesture` + +A gesture that recognizes one or more taps. + +`struct SpatialTapGesture` + +A gesture that recognizes one or more taps and reports their location. + +### Recognizing long press gestures + +Adds an action to perform when this view recognizes a long press gesture. + +Adds an action to perform when this view recognizes a remote long touch gesture. A long touch gesture is when the finger is on the remote touch surface without actually pressing. + +`struct LongPressGesture` + +A gesture that succeeds when the user performs a long press. + +### Recognizing spatial events + +`struct SpatialEventGesture` + +A gesture that provides information about ongoing spatial events like clicks and touches. + +`struct SpatialEventCollection` + +A collection of spatial input events that target a specific view. + +`enum Chirality` + +The chirality, or handedness, of a pose. + +### Recognizing gestures that change over time + +`func gesture(_:)` + +Attaches an `NSGestureRecognizerRepresentable` to the view. + +Beta + +Attaches a gesture to the view with a lower precedence than gestures defined by the view. + +`struct DragGesture` + +A dragging motion that invokes an action as the drag-event sequence changes. + +`struct WindowDragGesture` + +A gesture that recognizes the motion of and handles dragging a window. + +`struct MagnifyGesture` + +A gesture that recognizes a magnification motion and tracks the amount of magnification. + +`struct RotateGesture` + +A gesture that recognizes a rotation motion and tracks the angle of the rotation. + +`struct RotateGesture3D` + +A gesture that recognizes 3D rotation motion and tracks the angle and axis of the rotation. + +`struct GestureMask` + +Options that control how adding a gesture to a view affects other gestures recognized by the view and its subviews. + +### Recognizing Apple Pencil gestures + +Adds an action to perform after the user double-taps their Apple Pencil. + +Adds an action to perform when the user squeezes their Apple Pencil. + +`var preferredPencilDoubleTapAction: PencilPreferredAction` + +The action that the user prefers to perform after double-tapping their Apple Pencil, as selected in the Settings app. + +`var preferredPencilSqueezeAction: PencilPreferredAction` + +The action that the user prefers to perform when squeezing their Apple Pencil, as selected in the Settings app. + +`struct PencilPreferredAction` + +An action that the user prefers to perform after double-tapping their Apple Pencil. + +`struct PencilDoubleTapGestureValue` + +Describes the value of an Apple Pencil double-tap gesture. + +`struct PencilSqueezeGestureValue` + +Describes the value of an Apple Pencil squeeze gesture. + +`enum PencilSqueezeGesturePhase` + +Describes the phase and value of an Apple Pencil squeeze gesture. + +`struct PencilHoverPose` + +A value describing the location and distance of an Apple Pencil hovering in the area above a view’s bounds. + +### Combining gestures + +Composing SwiftUI gestures + +Combine gestures to create complex interactions. + +Attaches a gesture to the view to process simultaneously with gestures defined by the view. + +`struct SequenceGesture` + +A gesture that’s a sequence of two gestures. + +`struct SimultaneousGesture` + +A gesture containing two gestures that can happen at the same time with neither of them preceding the other. + +`struct ExclusiveGesture` + +A gesture that consists of two gestures where only one of them can succeed. + +### Defining custom gestures + +Attaches a gesture to the view with a higher precedence than gestures defined by the view. + +Assigns a hand gesture shortcut to the modified control. + +Sets the screen edge from which you want your gesture to take precedence over the system gesture. + +`protocol Gesture` + +An instance that matches a sequence of events to a gesture, and returns a stream of values for each of its states. + +`struct AnyGesture` + +A type-erased gesture. + +`struct HandActivationBehavior` + +An activation behavior specific to hand-driven input. + +`struct HandGestureShortcut` + +Hand gesture shortcuts describe finger and wrist movements that the user can perform in order to activate a button or toggle. + +### Managing gesture state + +`struct GestureState` + +A property wrapper type that updates a property while the user performs a gesture and resets the property + +A gesture that updates the state provided by a gesture’s updating callback. + +### Handling activation events + +Configures whether gestures in this view hierarchy can handle events that activate the containing window. + +### Deprecated gestures + +`struct MagnificationGesture` + +Deprecated + +`struct RotationGesture` + +## See Also + +### Event handling + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +--- + +# https://developer.apple.com/documentation/swiftui/input-events + +Collection + +- SwiftUI +- Input events + +API Collection + +# Input events + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +## Overview + +SwiftUI provides view modifiers that enable your app to listen for and react to various kinds of user input. For example, you can create keyboard shortcuts, respond to a form submission, or take input from the digital crown of an Apple Watch. + +For design guidance, see Inputs in the Human Interface Guidelines. + +## Topics + +### Responding to keyboard input + +Performs an action if the user presses a key on a hardware keyboard while the view has focus. + +Performs an action if the user presses any key on a hardware keyboard while the view has focus. + +Performs an action if the user presses one or more keys on a hardware keyboard while the view has focus. + +`struct KeyPress` + +### Creating keyboard shortcuts + +`func keyboardShortcut(_:)` + +Assigns a keyboard shortcut to the modified control. + +Defines a keyboard shortcut and assigns it to the modified control. + +`var keyboardShortcut: KeyboardShortcut?` + +The keyboard shortcut that buttons in this environment will be triggered with. + +`struct KeyboardShortcut` + +Keyboard shortcuts describe combinations of keys on a keyboard that the user can press in order to activate a button or toggle. + +`struct KeyEquivalent` + +Key equivalents consist of a letter, punctuation, or function key that can be combined with an optional set of modifier keys to specify a keyboard shortcut. + +`struct EventModifiers` + +A set of key modifiers that you can add to a gesture. + +### Responding to modifier keys + +Performs an action whenever the user presses or releases a hardware modifier key. + +Builds a view to use in place of the modified view when the user presses the modifier key(s) indicated by the given set. + +### Responding to hover events + +Adds an action to perform when the user moves the pointer over or away from the view’s frame. + +`func onContinuousHover(coordinateSpace:perform:)` + +Adds an action to perform when the pointer enters, moves within, and exits the view’s bounds. + +`func hoverEffect(_:isEnabled:)` + +Applies a hover effect to this view. + +Adds a condition that controls whether this view can display hover effects. + +`func defaultHoverEffect(_:)` + +Sets the default hover effect to use for views within this view. + +`var isHoverEffectEnabled: Bool` + +A Boolean value that indicates whether the view associated with this environment allows hover effects to be displayed. + +`enum HoverPhase` + +The current hovering state and value of the pointer. + +`struct HoverEffectPhaseOverride` + +Options for overriding a hover effect’s current phase. + +Beta + +`struct OrnamentHoverContentEffect` + +Presents an ornament on hover using a custom effect. + +`struct OrnamentHoverEffect` + +Presents an ornament on hover. + +### Modifying pointer appearance + +Sets the pointer style to display when the pointer is over the view. + +`struct PointerStyle` + +A style describing the appearance of the pointer (also called a cursor) when it’s hovered over a view. + +Sets the visibility of the pointer when it’s over the view. + +### Changing view appearance for hover events + +`struct HoverEffect` + +An effect applied when the pointer hovers over a view. + +Applies a hover effect to this view, optionally adding it to a `HoverEffectGroup`. + +Applies a hover effect to this view described by the given closure. + +`protocol CustomHoverEffect` + +A type that represents how a view should change when a pointer hovers over a view, or when someone looks at the view. + +`struct ContentHoverEffect` + +A `CustomHoverEffect` that applies effects to a view on hover using a closure. + +`struct HoverEffectGroup` + +Describes a grouping of effects that activate together. + +Adds an implicit `HoverEffectGroup` to all effects defined on descendant views, so that all effects added to subviews activate as a group whenever this view or any descendant views are hovered. + +Adds a `HoverEffectGroup` to all effects defined on descendant views, and activates the group whenever this view or any descendant views are hovered. + +`struct GroupHoverEffect` + +A `CustomHoverEffect` that activates a named group of effects. + +`protocol HoverEffectContent` + +A type that describes the effects of a view for a particular hover effect phase. + +`struct EmptyHoverEffectContent` + +An empty base effect that you use to build other effects. + +Sets the behavior of the hand pointer while the user is interacting with the view. + +`struct HandPointerBehavior` + +A behavior that can be applied to the hand pointer while the user is interacting with a view. + +### Responding to submission events + +Adds an action to perform when the user submits a value to this view. + +Prevents submission triggers originating from this view to invoke a submission action configured by a submission modifier higher up in the view hierarchy. + +`struct SubmitTriggers` + +A type that defines various triggers that result in the firing of a submission action. + +### Labeling a submission event + +Sets the submit label for this view. + +`struct SubmitLabel` + +A semantic label describing the label of submission within a view hierarchy. + +### Responding to commands + +Adds an action to perform in response to a move command, like when the user presses an arrow key on a Mac keyboard, or taps the edge of the Siri Remote when controlling an Apple TV. + +Adds an action to perform in response to the system’s Delete command, or pressing either the ⌫ (backspace) or ⌦ (forward delete) keys while the view has focus. + +Steps a value through a range in response to page up or page down commands. + +Sets up an action that triggers in response to receiving the exit command while the view has focus. + +Adds an action to perform in response to the system’s Play/Pause command. + +Adds an action to perform in response to the given selector. + +`enum MoveCommandDirection` + +Specifies the direction of an arrow key movement. + +### Controlling hit testing + +Sets whether text in this view can compress the space between characters when necessary to fit text in a line. + +Defines the content shape for hit testing. + +Sets the content shape for this view. + +`struct ContentShapeKinds` + +A kind for the content shape of a view. + +### Interacting with the Digital Crown + +Specifies the visibility of Digital Crown accessory Views on Apple Watch. + +Places an accessory View next to the Digital Crown on Apple Watch. + +Tracks Digital Crown rotations by updating the specified binding. + +`func digitalCrownRotation(detent:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)` + +`struct DigitalCrownEvent` + +An event emitted when the user rotates the Digital Crown. + +`enum DigitalCrownRotationalSensitivity` + +The amount of Digital Crown rotation needed to move between two integer numbers. + +### Managing Touch Bar input + +Sets the content that the Touch Bar displays. + +Sets the Touch Bar content to be shown in the Touch Bar when applicable. + +Sets principal views that have special significance to this Touch Bar. + +Sets a user-visible string that identifies the view’s functionality. + +Sets the behavior of the user-customized view. + +`struct TouchBar` + +A container for a view that you can show in the Touch Bar. + +`enum TouchBarItemPresence` + +Options that affect user customization of the Touch Bar. + +### Responding to capture events + +Used to register an action triggered by system capture events. + +Used to register actions triggered by system capture events. + +## See Also + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +--- + +# https://developer.apple.com/documentation/swiftui/clipboard + +Collection + +- SwiftUI +- Clipboard + +API Collection + +# Clipboard + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +## Overview + +When people issue standard Copy and Cut commands, they expect to move items to the system’s Clipboard, from which they can paste the items into another place in the same app or into another app. Your app can participate in this activity if you add view modifiers that indicate how to respond to the standard commands. + +In your copy and paste modifiers, provide or accept types that conform to the `Transferable` protocol, or that inherit from the `NSItemProvider` class. When possible, prefer using transferable items. + +## Topics + +### Copying transferable items + +Specifies a list of items to copy in response to the system’s Copy command. + +Specifies an action that moves items to the Clipboard in response to the system’s Cut command. + +Specifies an action that adds validated items to a view in response to the system’s Paste command. + +### Copying items using item providers + +Adds an action to perform in response to the system’s Copy command. + +Adds an action to perform in response to the system’s Cut command. + +`func onPasteCommand(of:perform:)` + +Adds an action to perform in response to the system’s Paste command. + +`func onPasteCommand(of:validator:perform:)` + +Adds an action to perform in response to the system’s Paste command with items that you validate. + +## See Also + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +--- + +# https://developer.apple.com/documentation/swiftui/drag-and-drop + +Collection + +- SwiftUI +- Drag and drop + +API Collection + +# Drag and drop + +Enable people to move or duplicate items by dragging them from one location to another. + +## Overview + +Drag and drop offers people a convenient way to move content from one part of your app to another, or from one app to another, using an intuitive dragging gesture. Support this feature in your app by adding view modifiers to potential source and destination views within your app’s interface. + +In your modifiers, provide or accept types that conform to the `Transferable` protocol, or that inherit from the `NSItemProvider` class. When possible, prefer using transferable items. + +For design guidance, see Drag and drop in the Human Interface Guidelines. + +## Topics + +### Essentials + +Adopting drag and drop using SwiftUI + +Enable drag-and-drop interactions in lists, tables and custom views. + +Making a view into a drag source + +Adopt draggable API to provide items for drag-and-drop operations. + +### Configuring drag and drop behavior + +`struct DragConfiguration` + +The behavior of the drag, proposed by the dragging source. + +Beta + +`struct DropConfiguration` + +Describes the behavior of the drop. + +### Moving items + +`struct DragSession` + +Describes the ongoing dragging session. + +`struct DropSession` Beta + +### Moving transferable items + +Activates this view as the source of a drag and drop operation. + +Defines the destination of a drag and drop operation that handles the dropped content with a closure that you specify. + +### Moving items using item providers + +Provides a closure that vends the drag representation to be used for a particular data element. + +`func onDrop(of:isTargeted:perform:)` + +Defines the destination of a drag-and-drop operation that handles the dropped content with a closure that you specify. + +`func onDrop(of:delegate:)` + +Defines the destination of a drag and drop operation using behavior controlled by the delegate that you provide. + +`protocol DropDelegate` + +An interface that you implement to interact with a drop operation in a view modified to accept drops. + +`struct DropProposal` + +The behavior of a drop. + +`enum DropOperation` + +Operation types that determine how a drag and drop session resolves when the user drops a drag item. + +`struct DropInfo` + +The current state of a drop. + +### Describing preview formations + +`struct DragDropPreviewsFormation` + +On macOS, describes the way the dragged previews are visually composed. Both drag sources and drop destination can specify their desired preview formation. + +### Configuring spring loading + +Sets the spring loading behavior this view. + +`var springLoadingBehavior: SpringLoadingBehavior` + +The behavior of spring loaded interactions for the views associated with this environment. + +`struct SpringLoadingBehavior` + +The options for controlling the spring loading behavior of views. + +## See Also + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Identify and control which visible object responds to user interaction. + +React to system events, like opening a URL. + +--- + +# https://developer.apple.com/documentation/swiftui/focus + +Collection + +- SwiftUI +- Focus + +API Collection + +# Focus + +Identify and control which visible object responds to user interaction. + +## Overview + +Focus indicates which element in the display receives the next input. Use view modifiers to indicate which views can receive focus, to detect which view has focus, and to programmatically control focus state. + +For design guidance, see Focus and selection in the Human Interface Guidelines. + +## Topics + +### Essentials + +Focus Cookbook: Supporting and enhancing focus-driven interactions in your SwiftUI app + +Create custom focusable views with key-press handlers that accelerate keyboard input and support movement, and control focus programmatically. + +### Indicating that a view can receive focus + +Specifies if the view is focusable. + +Specifies if the view is focusable, and if so, what focus-driven interactions it supports. + +`struct FocusInteractions` + +Values describe different focus interactions that a view can support. + +### Managing focus state + +Modifies this view by binding its focus state to the given state value. + +Modifies this view by binding its focus state to the given Boolean state value. + +`var isFocused: Bool` + +Returns whether the nearest focusable ancestor has focus. + +`struct FocusState` + +A property wrapper type that can read and write a value that SwiftUI updates as the placement of focus within the scene changes. + +`struct FocusedValue` + +A property wrapper for observing values from the focused view or one of its ancestors. + +`macro Entry()` + +Creates an environment values, transaction, container values, or focused values entry. + +`protocol FocusedValueKey` + +A protocol for identifier types used when publishing and observing focused values. + +`struct FocusedBinding` + +A convenience property wrapper for observing and automatically unwrapping state bindings from the focused view or one of its ancestors. + +Modifies this view by binding the focus state of the search field associated with the nearest searchable modifier to the given Boolean value. + +Modifies this view by binding the focus state of the search field associated with the nearest searchable modifier to the given value. + +### Exposing value types to focused views + +Sets the focused value for the given object type. + +`func focusedValue(_:_:)` + +Modifies this view by injecting a value that you provide for use by other views whose state depends on the focused view hierarchy. + +Sets the focused value for the given object type at a scene-wide scope. + +`func focusedSceneValue(_:_:)` + +Modifies this view by injecting a value that you provide for use by other views whose state depends on the focused scene. + +`struct FocusedValues` + +A collection of state exported by the focused view and its ancestors. + +### Exposing reference types to focused views + +`func focusedObject(_:)` + +Creates a new view that exposes the provided object to other views whose whose state depends on the focused view hierarchy. + +`func focusedSceneObject(_:)` + +Creates a new view that exposes the provided object to other views whose whose state depends on the active scene. + +`struct FocusedObject` + +A property wrapper type for an observable object supplied by the focused view or one of its ancestors. + +### Setting focus scope + +Creates a focus scope that SwiftUI uses to limit default focus preferences. + +Indicates that the view’s frame and cohort of focusable descendants should be used to guide focus movement. + +### Controlling default focus + +Indicates that the view should receive focus by default for a given namespace. + +Defines a region of the window in which default focus is evaluated by assigning a value to a given focus state binding. + +`struct DefaultFocusEvaluationPriority` + +Prioritizations for default focus preferences when evaluating where to move focus in different circumstances. + +### Resetting focus + +`var resetFocus: ResetFocusAction` + +An action that requests the focus system to reevaluate default focus. + +`struct ResetFocusAction` + +An environment value that provides the ability to reevaluate default focus. + +### Configuring effects + +Adds a condition that controls whether this view can display focus effects, such as a default focus ring or hover effect. + +`var isFocusEffectEnabled: Bool` + +A Boolean value that indicates whether the view associated with this environment allows focus effects to be displayed. + +## See Also + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +React to system events, like opening a URL. + +--- + +# https://developer.apple.com/documentation/swiftui/system-events + +Collection + +- SwiftUI +- System events + +API Collection + +# System events + +React to system events, like opening a URL. + +## Overview + +Specify view and scene modifiers to indicate how your app responds to certain system events. For example, you can use the `onOpenURL(perform:)` view modifier to define an action to take when your app receives a universal link, or use the `backgroundTask(_:action:)` scene modifier to specify an asynchronous task to carry out in response to a background task event, like the completion of a background URL session. + +## Topics + +### Sending and receiving user activities + +Restoring Your App’s State with SwiftUI + +Provide app continuity for users by preserving their current activities. + +Advertises a user activity type. + +Registers a handler to invoke in response to a user activity that your app receives. + +### Sending and receiving URLs + +`var openURL: OpenURLAction` + +An action that opens a URL. + +`struct OpenURLAction` + +Registers a handler to invoke in response to a URL that your app receives. + +### Handling external events + +Specifies the external events for which SwiftUI opens a new instance of the modified scene. + +Specifies the external events that the view’s scene handles if the scene is already open. + +### Handling background tasks + +Runs the specified action when the system provides a background task. + +`struct BackgroundTask` + +The kinds of background tasks that your app or extension can handle. + +`struct SnapshotData` + +The associated data of a snapshot background task. + +`struct SnapshotResponse` + +Your appplication’s response to a snapshot background task. + +### Importing and exporting transferable items + +Enables importing items from services, such as Continuity Camera on macOS. + +Exports items for consumption by shortcuts, quick actions, and services. + +Exports read-write items for consumption by shortcuts, quick actions, and services. + +### Importing and exporting using item providers + +Enables importing item providers from services, such as Continuity Camera on macOS. + +Exports a read-only item provider for consumption by shortcuts, quick actions, and services. + +Exports a read-write item provider for consumption by shortcuts, quick actions, and services. + +## See Also + +### Event handling + +Define interactions from taps, clicks, and swipes to fine-grained gestures. + +Respond to input from a hardware device, like a keyboard or a Touch Bar. + +Enable people to move or duplicate items by issuing Copy and Paste commands. + +Enable people to move or duplicate items by dragging them from one location to another. + +Identify and control which visible object responds to user interaction. + +--- + +# https://developer.apple.com/documentation/swiftui/accessibility-fundamentals + +Collection + +- SwiftUI +- Accessibility fundamentals + +API Collection + +# Accessibility fundamentals + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +## Overview + +Like all Apple UI frameworks, SwiftUI comes with built-in accessibility support. The framework introspects common elements like navigation views, lists, text fields, sliders, buttons, and so on, and provides basic accessibility labels and values by default. You don’t have to do any extra work to enable these standard accessibility features. + +SwiftUI also provides tools to help you enhance the accessibility of your app. To find out what enhancements you need, try using your app with accessibility features like VoiceOver, Voice Control, and Switch Control, or get feedback from users of your app that regularly use these features. Then use the accessibility view modifiers that SwiftUI provides to improve the experience. For example, you can explicitly add accessibility labels to elements in your UI using the `accessibilityLabel(_:)` or the `accessibilityValue(_:)` view modifier. + +Customize your use of accessibility modifiers for all the platforms that your app runs on. For example, you may need to adjust the accessibility elements for a companion Apple Watch app that shares a common code base with an iOS app. If you integrate AppKit or UIKit controls in SwiftUI, expose any accessibility labels and make them accessible from your `NSViewRepresentable` or `UIViewRepresentable` views, or provide custom accessibility information if the underlying accessibility labels aren’t available. + +For design guidance, see Accessibility in the Human Interface Guidelines. + +## Topics + +### Essentials + +Creating Accessible Views + +Make your app accessible to everyone by applying accessibility modifiers to your SwiftUI views. + +### Creating accessible elements + +Creates a new accessibility element, or modifies the `AccessibilityChildBehavior` of the existing accessibility element. + +Replaces the existing accessibility element’s children with one or more new synthetic accessibility elements. + +Replaces one or more accessibility elements for this view with new accessibility elements. + +`struct AccessibilityChildBehavior` + +Defines the behavior for the child elements of the new parent element. + +### Identifying elements + +Uses the string you specify to identify the view. + +### Hiding elements + +Specifies whether to hide this view from system accessibility features. + +### Supporting types + +`struct AccessibilityTechnologies` + +Accessibility technologies available to the system. + +`struct AccessibilityAttachmentModifier` + +A view modifier that adds accessibility properties to the view + +## See Also + +### Accessibility + +Enhance the legibility of content in your app’s interface. + +Improve access to actions that your app can undertake. + +Describe interface elements to help people understand what they represent. + +Enable users to navigate to specific user interface elements using rotors. + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-appearance + +Collection + +- SwiftUI +- Accessible appearance + +API Collection + +# Accessible appearance + +Enhance the legibility of content in your app’s interface. + +## Overview + +Make content easier for people to see by making it larger, giving it greater contrast, or reducing the amount of distracting motion. + +For design guidance, see Accessibility in the Accessibility section of the Human Interface Guidelines. + +## Topics + +### Managing color + +Sets whether this view should ignore the system Smart Invert setting. + +`var accessibilityInvertColors: Bool` + +Whether the system preference for Invert Colors is enabled. + +`var accessibilityDifferentiateWithoutColor: Bool` + +Whether the system preference for Differentiate without Color is enabled. + +### Enlarging content + +Adds a default large content view to be shown by the large content viewer. + +Adds a custom large content view to be shown by the large content viewer. + +`var accessibilityLargeContentViewerEnabled: Bool` + +Whether the Large Content Viewer is enabled. + +### Improving legibility + +`var accessibilityShowButtonShapes: Bool` + +Whether the system preference for Show Button Shapes is enabled. + +`var accessibilityReduceTransparency: Bool` + +Whether the system preference for Reduce Transparency is enabled. + +`var legibilityWeight: LegibilityWeight?` + +The font weight to apply to text. + +`enum LegibilityWeight` + +The Accessibility Bold Text user setting options. + +### Minimizing motion + +`var accessibilityDimFlashingLights: Bool` + +Whether the setting to reduce flashing or strobing lights in video content is on. This setting can also be used to determine if UI in playback controls should be shown to indicate upcoming content that includes flashing or strobing lights. + +`var accessibilityPlayAnimatedImages: Bool` + +Whether the setting for playing animations in an animated image is on. When this value is false, any presented image that contains animation should not play automatically. + +`var accessibilityReduceMotion: Bool` + +Whether the system preference for Reduce Motion is enabled. + +### Using assistive access + +`var accessibilityAssistiveAccessEnabled: Bool` + +A Boolean value that indicates whether Assistive Access is in use. + +`struct AssistiveAccess` + +A scene that presents an interface appropriate for Assistive Access on iOS and iPadOS. On other platforms, this scene is unused. + +Beta + +## See Also + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Improve access to actions that your app can undertake. + +Describe interface elements to help people understand what they represent. + +Enable users to navigate to specific user interface elements using rotors. + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-controls + +Collection + +- SwiftUI +- Accessible controls + +API Collection + +# Accessible controls + +Improve access to actions that your app can undertake. + +## Overview + +Help people using assistive technologies to gain access to controls in your app. + +For design guidance, see Accessibility in the Accessibility section of the Human Interface Guidelines. + +## Topics + +### Adding actions to views + +Adds an accessibility action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds multiple accessibility actions to the view. + +`func accessibilityAction(named:_:)` + +Adds an accessibility action labeled by the contents of `label` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +Adds an accessibility action representing `actionKind` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +`func accessibilityAction(named:intent:)` + +Adds an accessibility action labeled `name` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +Adds an accessibility adjustable action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds an accessibility scroll action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds multiple accessibility actions to the view with a specific category. Actions allow assistive technologies, such as VoiceOver, to interact with the view by invoking the action and are grouped by their category. When multiple action modifiers with an equal category are applied to the view, the actions are combined together. + +`struct AccessibilityActionKind` + +The structure that defines the kinds of available accessibility actions. + +`enum AccessibilityAdjustmentDirection` + +A directional indicator you use when making an accessibility adjustment. + +`struct AccessibilityActionCategory` + +Designates an accessibility action category that is provided and named by the system. + +### Offering Quick Actions to people + +Adds a quick action to be shown by the system when active. + +`protocol AccessibilityQuickActionStyle` + +A type that describes the presentation style of an accessibility quick action. + +### Making gestures accessible + +`func accessibilityActivationPoint(_:)` + +The activation point for an element is the location assistive technologies use to initiate gestures. + +`func accessibilityActivationPoint(_:isEnabled:)` + +`func accessibilityDragPoint(_:description:)` + +The point an assistive technology should use to begin a drag interaction. + +`func accessibilityDragPoint(_:description:isEnabled:)` + +`func accessibilityDropPoint(_:description:)` + +The point an assistive technology should use to end a drag interaction. + +`func accessibilityDropPoint(_:description:isEnabled:)` + +Explicitly set whether this accessibility element is a direct touch area. Direct touch areas passthrough touch events to the app rather than being handled through an assistive technology, such as VoiceOver. The modifier accepts an optional `AccessibilityDirectTouchOptions` option set to customize the functionality of the direct touch area. + +Adds an accessibility zoom action to the view. Actions allow assistive technologies, such as VoiceOver, to interact with the view by invoking the action. + +`struct AccessibilityDirectTouchOptions` + +An option set that defines the functionality of a view’s direct touch area. + +`struct AccessibilityZoomGestureAction` + +Position and direction information of a zoom gesture that someone performs with an assistive technology like VoiceOver. + +### Controlling focus + +Modifies this view by binding its accessibility element’s focus state to the given boolean state value. + +Modifies this view by binding its accessibility element’s focus state to the given state value. + +`struct AccessibilityFocusState` + +A property wrapper type that can read and write a value that SwiftUI updates as the focus of any active accessibility technology, such as VoiceOver, changes. + +### Managing interactivity + +Explicitly set whether this Accessibility element responds to user interaction and would thus be interacted with by technologies such as Switch Control, Voice Control or Full Keyboard Access. + +## See Also + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Enhance the legibility of content in your app’s interface. + +Describe interface elements to help people understand what they represent. + +Enable users to navigate to specific user interface elements using rotors. + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-descriptions + +Collection + +- SwiftUI +- Accessible descriptions + +API Collection + +# Accessible descriptions + +Describe interface elements to help people understand what they represent. + +## Overview + +SwiftUI can often infer some information about your user interface elements, but you can use accessibility modifiers to provide even more information for users that need it. + +For design guidance, see Accessibility in the Accessibility section of the Human Interface Guidelines. + +## Topics + +### Applying labels + +`func accessibilityLabel(_:)` + +Adds a label to the view that describes its contents. + +`func accessibilityLabel(_:isEnabled:)` + +`func accessibilityInputLabels(_:)` + +Sets alternate input labels with which users identify a view. + +`func accessibilityInputLabels(_:isEnabled:)` + +Pairs an accessibility element representing a label with the element for the matching content. + +`enum AccessibilityLabeledPairRole` + +The role of an accessibility element in a label / content pair. + +### Describing values + +`func accessibilityValue(_:)` + +Adds a textual description of the value that the view contains. + +`func accessibilityValue(_:isEnabled:)` + +### Describing content + +Sets an accessibility text content type. + +Sets the accessibility level of this heading. + +`enum AccessibilityHeadingLevel` + +The hierarchy of a heading in relation other headings. + +`struct AccessibilityTextContentType` + +Textual context that assistive technologies can use to improve the presentation of spoken text. + +### Describing charts + +Adds a descriptor to a View that represents a chart to make the chart’s contents accessible to all users. + +`protocol AXChartDescriptorRepresentable` + +A type to generate an `AXChartDescriptor` object that you use to provide information about a chart and its data for an accessible experience in VoiceOver or other assistive technologies. + +### Adding custom descriptions + +`func accessibilityCustomContent(_:_:importance:)` + +Add additional accessibility information to the view. + +`struct AccessibilityCustomContentKey` + +Key used to specify the identifier and label associated with an entry of additional accessibility information. + +### Assigning traits to content + +Adds the given traits to the view. + +Removes the given traits from this view. + +`struct AccessibilityTraits` + +A set of accessibility traits that describe how an element behaves. + +### Offering hints + +`func accessibilityHint(_:)` + +Communicates to the user what happens after performing the view’s action. + +`func accessibilityHint(_:isEnabled:)` + +### Configuring VoiceOver + +Raises or lowers the pitch of spoken text. + +Sets whether VoiceOver should always speak all punctuation in the text view. + +Controls whether to queue pending announcements behind existing speech rather than interrupting speech in progress. + +Sets whether VoiceOver should speak the contents of the text view character by character. + +## See Also + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Enhance the legibility of content in your app’s interface. + +Improve access to actions that your app can undertake. + +Enable users to navigate to specific user interface elements using rotors. + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-navigation + +Collection + +- SwiftUI +- Accessible navigation + +API Collection + +# Accessible navigation + +Enable users to navigate to specific user interface elements using rotors. + +## Overview + +An accessibility rotor is a shortcut that enables users to quickly navigate to specific elements of the user interface, and, optionally, to specific ranges of text within those elements. + +The system automatically provides rotors for many navigable elements, but you can supply additional rotors for specific purposes, or replace system rotors when they don’t automatically pick up off-screen elements, like those far down in a `LazyVStack` or a `List`. + +For design guidance, see Accessibility in the Accessibility section of the Human Interface Guidelines. + +## Topics + +### Working with rotors + +`func accessibilityRotor(_:entries:)` + +Create an Accessibility Rotor with the specified user-visible label, and entries generated from the content closure. + +`func accessibilityRotor(_:entries:entryID:entryLabel:)` + +Create an Accessibility Rotor with the specified user-visible label and entries. + +`func accessibilityRotor(_:entries:entryLabel:)` + +`func accessibilityRotor(_:textRanges:)` + +Create an Accessibility Rotor with the specified user-visible label and entries for each of the specified ranges. The Rotor will be attached to the current Accessibility element, and each entry will go the specified range of that element. + +### Creating rotors + +`protocol AccessibilityRotorContent` + +Content within an accessibility rotor. + +`struct AccessibilityRotorContentBuilder` + +Result builder you use to generate rotor entry content. + +`struct AccessibilityRotorEntry` + +A struct representing an entry in an Accessibility Rotor. + +### Replacing system rotors + +`struct AccessibilitySystemRotor` + +Designates a Rotor that replaces one of the automatic, system-provided Rotors with a developer-provided Rotor. + +### Configuring rotors + +Defines an explicit identifier tying an Accessibility element for this view to an entry in an Accessibility Rotor. + +Links multiple accessibility elements so that the user can quickly navigate from one element to another, even when the elements are not near each other in the accessibility hierarchy. + +Sets the sort priority order for this view’s accessibility element, relative to other elements at the same level. + +## See Also + +### Accessibility + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Enhance the legibility of content in your app’s interface. + +Improve access to actions that your app can undertake. + +Describe interface elements to help people understand what they represent. + +--- + +# https://developer.apple.com/documentation/swiftui/appkit-integration + +Collection + +- SwiftUI +- AppKit integration + +API Collection + +# AppKit integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +## Overview + +Integrate SwiftUI with your app’s existing content using hosting controllers to add SwiftUI views into AppKit interfaces. A hosting controller wraps a set of SwiftUI views in a form that you can then add to your storyboard-based app. + +You can also add AppKit views and view controllers to your SwiftUI interfaces. A representable object wraps the designated view or view controller, and facilitates communication between the wrapped object and your SwiftUI views. + +For design guidance, see Designing for macOS in the Human Interface Guidelines. + +## Topics + +### Displaying SwiftUI views in AppKit + +Unifying your app’s animations + +Create a consistent UI animation experience across SwiftUI, UIKit, and AppKit. + +`class NSHostingController` + +An AppKit view controller that hosts SwiftUI view hierarchy. + +`class NSHostingView` + +An AppKit view that hosts a SwiftUI view hierarchy. + +`class NSHostingMenu` + +An AppKit menu with menu items that are defined by a SwiftUI View. + +`struct NSHostingSizingOptions` + +Options for how hosting views and controllers reflect their content’s size into Auto Layout constraints. + +`class NSHostingSceneRepresentation` + +An AppKit type that hosts and can present SwiftUI scenes + +Beta + +`struct NSHostingSceneBridgingOptions` + +Options for how hosting views and controllers manage aspects of the associated window. + +### Adding AppKit views to SwiftUI view hierarchies + +`protocol NSViewRepresentable` + +A wrapper that you use to integrate an AppKit view into your SwiftUI view hierarchy. + +`struct NSViewRepresentableContext` + +Contextual information about the state of the system that you use to create and update your AppKit view. + +`protocol NSViewControllerRepresentable` + +A wrapper that you use to integrate an AppKit view controller into your SwiftUI interface. + +`struct NSViewControllerRepresentableContext` + +Contextual information about the state of the system that you use to create and update your AppKit view controller. + +### Adding AppKit gesture recognizers into SwiftUI view hierarchies + +`protocol NSGestureRecognizerRepresentable` + +A wrapper for an `NSGestureRecognizer` that you use to integrate that gesture recognizer into your SwiftUI hierarchy. + +`struct NSGestureRecognizerRepresentableContext` + +Contextual information about the state of the system that you use to create and update a represented gesture recognizer. + +`struct NSGestureRecognizerRepresentableCoordinateSpaceConverter` + +A structure used to convert locations to and from coordinate spaces in the hierarchy of the SwiftUI view associated with an `NSGestureRecognizerRepresentable`. + +## See Also + +### Framework integration + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +Use SwiftUI views that other Apple frameworks provide. + +--- + +# https://developer.apple.com/documentation/swiftui/uikit-integration + +Collection + +- SwiftUI +- UIKit integration + +API Collection + +# UIKit integration + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +## Overview + +Integrate SwiftUI with your app’s existing content using hosting controllers to add SwiftUI views into UIKit interfaces. A hosting controller wraps a set of SwiftUI views in a form that you can then add to your storyboard-based app. + +You can also add UIKit views and view controllers to your SwiftUI interfaces. A representable object wraps the designated view or view controller, and facilitates communication between the wrapped object and your SwiftUI views. + +For design guidance, see the following sections in the Human Interface Guidelines: + +- Designing for iOS + +- Designing for iPadOS + +- Designing for tvOS + +## Topics + +### Displaying SwiftUI views in UIKit + +Using SwiftUI with UIKit + +Learn how to incorporate SwiftUI views into a UIKit app. + +Unifying your app’s animations + +Create a consistent UI animation experience across SwiftUI, UIKit, and AppKit. + +`class UIHostingController` + +A UIKit view controller that manages a SwiftUI view hierarchy. + +`struct UIHostingControllerSizingOptions` + +Options for how a hosting controller tracks its content’s size. + +`struct UIHostingConfiguration` + +A content configuration suitable for hosting a hierarchy of SwiftUI views. + +`protocol UIHostingSceneDelegate` + +Extends `UIKit/UISceneDelegate` to bridge SwiftUI scenes. + +Beta + +### Adding UIKit views to SwiftUI view hierarchies + +`protocol UIViewRepresentable` + +A wrapper for a UIKit view that you use to integrate that view into your SwiftUI view hierarchy. + +`struct UIViewRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view. + +`protocol UIViewControllerRepresentable` + +A view that represents a UIKit view controller. + +`struct UIViewControllerRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view controller. + +### Adding UIKit gesture recognizers into SwiftUI view hierarchies + +`protocol UIGestureRecognizerRepresentable` + +A wrapper for a `UIGestureRecognizer` that you use to integrate that gesture recognizer into your SwiftUI hierarchy. + +`struct UIGestureRecognizerRepresentableContext` + +Contextual information about the state of the system that you use to create and update a represented gesture recognizer. + +`struct UIGestureRecognizerRepresentableCoordinateSpaceConverter` + +A proxy structure used to convert locations to/from coordinate spaces in the hierarchy of the SwiftUI view associated with a `UIGestureRecognizerRepresentable`. + +### Sharing configuration information + +`typealias UITraitBridgedEnvironmentKey` + +### Hosting an ornament in UIKit + +`class UIHostingOrnament` + +A model that represents an ornament suitable for being hosted in UIKit. + +`class UIOrnament` + +The abstract base class that represents an ornament. + +## See Also + +### Framework integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +Use SwiftUI views that other Apple frameworks provide. + +--- + +# https://developer.apple.com/documentation/swiftui/watchkit-integration + +Collection + +- SwiftUI +- WatchKit integration + +API Collection + +# WatchKit integration + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +## Overview + +Integrate SwiftUI with your app’s existing content using hosting controllers to add SwiftUI views into WatchKit interfaces. A hosting controller wraps a set of SwiftUI views in a form that you can then add to your storyboard-based app. + +You can also add WatchKit views and view controllers to your SwiftUI interfaces. A representable object wraps the designated view or view controller, and facilitates communication between the wrapped object and your SwiftUI views. + +For design guidance, see Designing for watchOS in the Human Interface Guidelines. + +## Topics + +### Displaying SwiftUI views in WatchKit + +`class WKHostingController` + +A WatchKit interface controller that hosts a SwiftUI view hierarchy. + +`class WKUserNotificationHostingController` + +A WatchKit user notification interface controller that hosts a SwiftUI view hierarchy. + +### Adding WatchKit views to SwiftUI view hierarchies + +`protocol WKInterfaceObjectRepresentable` + +A view that represents a WatchKit interface object. + +`struct WKInterfaceObjectRepresentableContext` + +Contextual information about the state of the system that you use to create and update your WatchKit interface object. + +## See Also + +### Framework integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +Use SwiftUI views that other Apple frameworks provide. + +--- + +# https://developer.apple.com/documentation/swiftui/technology-specific-views + +Collection + +- SwiftUI +- Technology-specific views + +API Collection + +# Technology-specific views + +Use SwiftUI views that other Apple frameworks provide. + +## Overview + +To access SwiftUI views that another framework defines, import both SwiftUI and the other framework into the file where you use the view. You can find the framework to import by looking at the availability information on the view’s documentation page. + +For example, to use the `Map` view in your app, import both SwiftUI and MapKit. + +import SwiftUI +import MapKit + +struct MyMapView: View { +// Center the map on Joshua Tree National Park. +var region = MKCoordinateRegion( +center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868), +span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2) +) + +var body: some View { +Map(initialPosition: .region(region)) +} +} + +For design guidance, see Technologies in the Human Interface Guidelines. + +## Topics + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +### Authorizing and authenticating + +A SwiftUI view that displays an authentication interface. + +`@MainActor @preconcurrency struct SignInWithAppleButton` + +The view that creates the Sign in with Apple button for display. + +Sets the style used for displaying the control (see `SignInWithAppleButton.Style`). + +`var authorizationController: AuthorizationController` + +A value provided in the SwiftUI environment that views can use to perform authorization requests. + +`var webAuthenticationSession: WebAuthenticationSession` + +A value provided in the SwiftUI environment that views can use to authenticate a user through a web service. + +### Configuring Family Sharing + +`@MainActor @preconcurrency struct FamilyActivityPicker` + +A view in which users specify applications, web domains, and categories without revealing their choices to the app. + +Presents an activity picker view as a sheet. + +### Reporting on device activity + +`@MainActor @preconcurrency struct DeviceActivityReport` + +A view that reports the user’s application, category, and web domain activity in a privacy-preserving way. + +### Working with managed devices + +Applies a managed content style to the view. + +Presents a modal view that enables users to add devices to their organization. + +### Creating graphics + +A SwiftUI view that displays a chart. + +`@MainActor @preconcurrency struct SceneView` + +A SwiftUI view for displaying 3D SceneKit content. + +Deprecated + +`@MainActor @preconcurrency struct SpriteView` + +A SwiftUI view that renders a SpriteKit scene. + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +Presents a map item detail sheet. + +### Displaying media + +`@MainActor @preconcurrency struct CameraView` + +A SwiftUI view into which a video stream or an image snapshot is rendered. + +`@MainActor @preconcurrency struct NowPlayingView` + +A view that displays the system’s Now Playing interface so that the user can control audio. + +A view that displays content from a player and a native user interface to control playback. + +A `continuityDevicePicker` should be used to discover and connect nearby continuity device through a button interface or other form of activation. On tvOS, this presents a fullscreen continuity device picker experience when selected. The modal view covers as much the screen of `self` as possible when a given condition is true. + +Specifies the view that should act as the virtual camera for Apple Vision Pro 2D Persona stream. + +### Selecting photos + +A view that displays a Photos picker for choosing assets from the photo library. + +Presents a Photos picker that selects a `PhotosPickerItem`. + +Presents a Photos picker that selects a `PhotosPickerItem` from a given photo library. + +Presents a Photos picker that selects a collection of `PhotosPickerItem`. + +Presents a Photos picker that selects a collection of `PhotosPickerItem` from a given photo library. + +Sets the accessory visibility of the Photos picker. Accessories include anything between the content and the edge, like the navigation bar or the sidebar. + +Disables capabilities of the Photos picker. + +Sets the mode of the Photos picker. + +### Previewing content + +Presents a Quick Look preview of the contents of a single URL. + +Presents a Quick Look preview of the URLs you provide. + +### Interacting with networked devices + +A SwiftUI view that displays other devices on the network, and creates an encrypted connection to a copy of your app running on that device. + +`var devicePickerSupports: DevicePickerSupportedAction` + +Checks for support to present a DevicePicker. + +### Configuring a Live Activity + +The text color for the auxiliary action button that the system shows next to a Live Activity on the Lock Screen. + +Sets the tint color for the background of a Live Activity that appears on the Lock Screen. + +`var isActivityFullscreen: Bool` + +A Boolean value that indicates whether the Live Activity appears in a full-screen presentation. + +`var activityFamily: ActivityFamily` + +The size family of the current Live Activity. + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +Declares the view as dependent on the status of an auto-renewable subscription group, and returns a modified view. + +Configures subscription store view instances within a view to use the provided button label. + +Sets a view to use to decorate individual subscription options within a subscription store view. + +Sets the control style for subscription store views within a view. + +Sets the control style and control placement for subscription store views within a view. + +Sets the style subscription store views within this view use to display groups of subscription options. + +Sets the background style for picker items of the subscription store view instances within a view. + +Sets the background shape and style for subscription store view picker items within a view. + +Configures a view as the destination for a policy button action in subscription store views. + +Configures a URL as the destination for a policy button action in subscription store views. + +Sets the style for the and buttons within a subscription store view. + +Sets the primary and secondary style for the and buttons within a subscription store view. + +Adds an action to perform when a person uses the sign-in button on a subscription store view within a view. + +`func subscriptionStoreControlBackground(_:)` + +Set a standard effect to use for the background of subscription store view controls within the view. + +Selects a promotional offer to apply to a purchase a customer makes from a subscription store view. + +Selects a subscription offer to apply to a purchase that a customer makes from a subscription store view, a store view, or a product view. + +### Accessing health data + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +Requests permission to read the specified HealthKit data types. + +Requests permission to save and read the specified HealthKit data types. + +Presents a preview of the workout contents as a modal sheet + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +Sets the style for a tip’s image. + +### Showing a translation + +Presents a translation popover when a given condition is true. + +Adds a task to perform before this view appears or when the translation configuration changes. + +Adds a task to perform before this view appears or when the specified source or target languages change. + +### Presenting journaling suggestions + +Presents a visual picker interface that contains events and images that a person can select to retrieve more information. + +### Managing contact access + +Modally present UI which allows the user to select which contacts your app has access to. + +### Handling game controller events + +Specifies the game controllers events which should be delivered through the GameController framework when the view, or one of its descendants has focus. + +### Creating a tabletop game + +Adds a tabletop game to a view. + +Supplies a closure which returns a new interaction whenever needed. + +### Configuring camera controls + +`var realityViewCameraControls: CameraControls` + +The camera controls for the reality view. + +Adds gestures that control the position and direction of a virtual camera. + +### Interacting with transactions + +Presents a picker that selects a collection of transactions. + +## See Also + +### Framework integration + +Add AppKit views to your SwiftUI app, or use SwiftUI views in your AppKit app. + +Add UIKit views to your SwiftUI app, or use SwiftUI views in your UIKit app. + +Add WatchKit views to your SwiftUI app, or use SwiftUI views in your WatchKit app. + +--- + +# https://developer.apple.com/documentation/swiftui/previews-in-xcode + +Collection + +- SwiftUI +- Previews in Xcode + +API Collection + +# Previews in Xcode + +Generate dynamic, interactive previews of your custom views. + +## Overview + +When you create a custom `View` with SwiftUI, Xcode can display a preview of the view’s content that stays up-to-date as you make changes to the view’s code. You use one of the preview macros — like `Preview(_:body:)` — to tell Xcode what to display. Xcode shows the preview in a canvas beside your code. + +Different preview macros enable different kinds of configuration. For example, you can add traits that affect the preview’s appearance using the `Preview(_:traits:_:body:)` macro or add custom viewpoints for the preview using the `Preview(_:traits:body:cameras:)` macro. You can also check how your view behaves inside a specific scene type. For example, in visionOS you can use the `Preview(_:immersionStyle:traits:body:)` macro to preview your view inside an `ImmersiveSpace`. + +You typically rely on preview macros to create previews in your code. However, if you can’t get the behavior you need using a preview macro, you can use the `PreviewProvider` protocol and its associated supporting types to define and configure a preview. + +## Topics + +### Essentials + +Previewing your app’s interface in Xcode + +Iterate designs quickly and preview your apps’ displays across different Apple devices. + +### Creating a preview + +Creates a preview of a SwiftUI view. + +Creates a preview of a SwiftUI view using the specified traits. + +Creates a preview of a SwiftUI view using the specified traits and custom viewpoints. + +### Creating a preview in the context of a scene + +Creates a preview of a SwiftUI view in an immersive space. + +Creates a preview of a SwiftUI view in an immersive space with custom viewpoints. + +Creates a preview of a SwiftUI view in a window. + +Creates a preview of a SwiftUI view in a window with custom viewpoints. + +### Defining a preview + +`macro Previewable()` + +Tag allowing a dynamic property to appear inline in a preview. + +`protocol PreviewProvider` + +A type that produces view previews in Xcode. + +`enum PreviewPlatform` + +Platforms that can run the preview. + +Sets a user visible name to show in the canvas for a preview. + +`protocol PreviewModifier` + +A type that defines an environment in which previews can appear. + +`struct PreviewModifierContent` + +The type-erased content of a preview. + +### Customizing a preview + +Overrides the device for a preview. + +`struct PreviewDevice` + +A simulator device that runs a preview. + +Overrides the size of the container for the preview. + +Overrides the orientation of the preview. + +`struct InterfaceOrientation` + +The orientation of the interface from the user’s perspective. + +### Setting a context + +Declares a context for the preview. + +`protocol PreviewContext` + +A context type for use with a preview. + +`protocol PreviewContextKey` + +A key type for a preview context. + +### Building in debug mode + +`struct DebugReplaceableView` + +Erases view opaque result types in debug builds. + +Beta + +## See Also + +### Tool support + +Expose custom views and modifiers in the Xcode library. + +Measure and improve your app’s responsiveness. + +--- + +# https://developer.apple.com/documentation/swiftui/xcode-library-customization + +Collection + +- SwiftUI +- Xcode library customization + +# Xcode library customization + +Expose custom views and modifiers in the Xcode library. + +## Overview + +You can add your custom SwiftUI views and view modifiers to Xcode’s library. This allows anyone developing your app or adopting your framework to access them by clicking the Library button (+) in Xcode’s toolbar. You can select and drag the custom library items into code, just like you would for system-provided items. + +To add items to the library, create a structure that conforms to the `LibraryContentProvider` protocol and encapsulate any items you want to add as `LibraryItem` instances. Implement the doc://com.apple.documentation/documentation/DeveloperToolsSupport/LibraryContentProvider/views-25pdm computed property to add library items containing views. Implement the doc://com.apple.documentation/documentation/DeveloperToolsSupport/LibraryContentProvider/modifiers(base:)-4svii method to add items containing view modifiers. Xcode harvests items from all of the library content providers in your project as you work, and makes them available to you in its library. + +## Topics + +### Creating library items + +`protocol LibraryContentProvider` + +A source of Xcode library and code completion content. + +`struct LibraryItem` + +A single item to add to the Xcode library. + +## See Also + +### Tool support + +Generate dynamic, interactive previews of your custom views. + +Measure and improve your app’s responsiveness. + +--- + +# https://developer.apple.com/documentation/swiftui/performance-analysis + +Collection + +- SwiftUI +- Performance analysis + +# Performance analysis + +Measure and improve your app’s responsiveness. + +## Overview + +Use Instruments to detect hangs and hitches in your app, and to analyze long view body updates and frequently occurring SwiftUI updates that can contribute to hangs and hitches. + +## Topics + +### Essentials + +Understanding user interface responsiveness + +Make your app more responsive by examining the event-handling and rendering loop. + +Understanding hangs in your app + +Determine the cause for delays in user interactions by examining the main thread and the main run loop. + +Understanding hitches in your app + +Determine the cause of interruptions in motion by examining the render loop. + +### Analyzing SwiftUI performance + +Understanding and improving SwiftUI performance + +Identify and address long-running view updates, and reduce the frequency of updates. + +## See Also + +### Tool support + +Generate dynamic, interactive previews of your custom views. + +Expose custom views and modifiers in the Xcode library. + +--- + +# https://developer.apple.com/documentation/swiftui/app) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view) + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-building-an-app-with-liquid-glass) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/building-a-document-based-app-with-swiftui) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/app-organization) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scenes) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windows) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersive-spaces) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documents) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigation) + + + +--- + +# https://developer.apple.com/documentation/swiftui/modal-presentations) + + + +--- + +# https://developer.apple.com/documentation/swiftui/toolbars) + + + +--- + +# https://developer.apple.com/documentation/swiftui/search) + + + +--- + +# https://developer.apple.com/documentation/swiftui/app-extensions) + + + +--- + +# https://developer.apple.com/documentation/swiftui/model-data) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environment-values) + + + +--- + +# https://developer.apple.com/documentation/swiftui/preferences) + + + +--- + +# https://developer.apple.com/documentation/swiftui/persistent-storage) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-fundamentals) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-configuration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-styles) + + + +--- + +# https://developer.apple.com/documentation/swiftui/animations) + + + +--- + +# https://developer.apple.com/documentation/swiftui/text-input-and-output) + + + +--- + +# https://developer.apple.com/documentation/swiftui/images) + + + +--- + +# https://developer.apple.com/documentation/swiftui/controls-and-indicators) + + + +--- + +# https://developer.apple.com/documentation/swiftui/menus-and-commands) + + + +--- + +# https://developer.apple.com/documentation/swiftui/shapes) + + + +--- + +# https://developer.apple.com/documentation/swiftui/drawing-and-graphics) + + + +--- + +# https://developer.apple.com/documentation/swiftui/layout-fundamentals) + + + +--- + +# https://developer.apple.com/documentation/swiftui/layout-adjustments) + + + +--- + +# https://developer.apple.com/documentation/swiftui/custom-layout) + + + +--- + +# https://developer.apple.com/documentation/swiftui/lists) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tables) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-groupings) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scroll-views) + + + +--- + +# https://developer.apple.com/documentation/swiftui/gestures) + + + +--- + +# https://developer.apple.com/documentation/swiftui/input-events) + + + +--- + +# https://developer.apple.com/documentation/swiftui/clipboard) + + + +--- + +# https://developer.apple.com/documentation/swiftui/drag-and-drop) + + + +--- + +# https://developer.apple.com/documentation/swiftui/focus) + + + +--- + +# https://developer.apple.com/documentation/swiftui/system-events) + + + +--- + +# https://developer.apple.com/documentation/swiftui/accessibility-fundamentals) + + + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-appearance) + + + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-controls) + + + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-descriptions) + + + +--- + +# https://developer.apple.com/documentation/swiftui/accessible-navigation) + + + +--- + +# https://developer.apple.com/documentation/swiftui/appkit-integration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/uikit-integration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/watchkit-integration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/technology-specific-views) + + + +--- + +# https://developer.apple.com/documentation/swiftui/previews-in-xcode) + + + +--- + +# https://developer.apple.com/documentation/swiftui/xcode-library-customization) + + + +--- + +# https://developer.apple.com/documentation/swiftui/performance-analysis) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentgroup + +- SwiftUI +- DocumentGroup + +Structure + +# DocumentGroup + +A scene that enables support for opening, creating, and saving documents. + +## Mentioned in + +Building and customizing the menu bar with SwiftUI + +## Overview + +Use a `DocumentGroup` scene to tell SwiftUI what kinds of documents your app can open when you declare your app using the `App` protocol. + +Initialize a document group scene by passing in the document model and a view capable of displaying the document type. The document types you supply to `DocumentGroup` must conform to `FileDocument` or `ReferenceFileDocument`. SwiftUI uses the model to add document support to your app. In macOS this includes document-based menu support, including the ability to open multiple documents. On iOS this includes a document browser that can navigate to the documents stored on the file system and multiwindow support: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: TextFile()) { configuration in +ContentView(document: configuration.$document) +} +} +} + +Any time the configuration changes, SwiftUI updates the contents with that new configuration, similar to other parameterized builders. + +### Viewing documents + +If your app only needs to display but not modify a specific document type, you can use the file viewer document group scene. You supply the file type of the document, and a view that displays the document type that you provide: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(viewing: MyImageFormatDocument.self) { +MyImageFormatViewer(image: $0.document) +} +} +} + +### Supporting multiple document types + +Your app can support multiple document types by adding additional document group scenes: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: TextFile()) { group in +ContentView(document: group.$document) +} +DocumentGroup(viewing: MyImageFormatDocument.self) { group in +MyImageFormatViewer(image: group.document) +} +} +} + +### Accessing the document’s URL + +If your app needs to know the document’s URL, you can read it from the `editor` closure’s `configuration` parameter, along with the binding to the document. When you create a new document, the configuration’s `fileURL` property is `nil`. Every time it changes, it is passed over to the `DocumentGroup` builder in the updated `configuration`. This ensures that the view you define in the closure always knows the URL of the document it hosts. + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: TextFile()) { configuration in +ContentView( +document: configuration.$document, +fileURL: configuration.fileURL +) +} +} +} + +The URL can be used, for example, to present the file path of the file name in the user interface. Don’t access the document’s contents or metadata using the URL because that can conflict with the management of the file that SwiftUI performs. Instead, use the methods that `FileDocument` and `ReferenceFileDocument` provide to perform read and write operations. + +## Topics + +### Creating a document group + +`init(newDocument:editor:)` + +Creates a document group for creating and editing file documents. + +`init(viewing:viewer:)` + +Creates a document group capable of viewing file documents. + +### Editing a document backed by a persistent store + +`init(editing:contentType:editor:prepareDocument:)` + +Instantiates a document group for creating and editing documents that store a specific model type. + +Instantiates a document group for creating and editing documents described by the last `Schema` in the migration plan. + +### Viewing a document backed by a persistent store + +`init(viewing:contentType:viewer:)` + +Instantiates a document group for viewing documents that store a specific model type. + +Instantiates a document group for viewing documents described by the last `Schema` in the migration plan. + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating a document + +Building a document-based app with SwiftUI + +Create, save, and open documents in a multiplatform app. + +Building a document-based app using SwiftData + +Code along with the WWDC presenter to transform an app with SwiftData. + +--- + +# https://developer.apple.com/documentation/swiftui/filedocument + +- SwiftUI +- FileDocument + +Protocol + +# FileDocument + +A type that you use to serialize documents to and from file. + +@preconcurrency +protocol FileDocument : Sendable + +## Overview + +To store a document as a value type — like a structure — create a type that conforms to the `FileDocument` protocol and implement the required methods and properties. Your implementation: + +- Provides a list of the content types that the document can read from and write to by defining `readableContentTypes`. If the list of content types that the document can write to is different from those that it reads from, you can optionally also define `writableContentTypes`. + +- Loads documents from file in the `init(configuration:)` initializer. + +- Stores documents to file by serializing their content in the `fileWrapper(configuration:)` method. + +Ensure that types that conform to this protocol are `Sendable`. In particular, SwiftUI calls the protocol’s methods from different isolation domains. Don’t perform serialization and deserialization on `MainActor`. + +## Topics + +### Reading a document + +`init(configuration: Self.ReadConfiguration) throws` + +Creates a document and initializes it with the contents of a file. + +**Required** + +[`static var readableContentTypes: [UTType]`](https://developer.apple.com/documentation/swiftui/filedocument/readablecontenttypes) + +The file and data types that the document reads from. + +`typealias ReadConfiguration` + +The configuration for reading document contents. + +### Writing a document + +Serializes a document snapshot to a file wrapper. + +[`static var writableContentTypes: [UTType]`](https://developer.apple.com/documentation/swiftui/filedocument/writablecontenttypes) + +The file types that the document supports saving or exporting to. + +**Required** Default implementation provided. + +`typealias WriteConfiguration` + +The configuration for writing document contents. + +## Relationships + +### Inherits From + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Storing document data in a structure instance + +`struct FileDocumentConfiguration` + +The properties of an open file document. + +--- + +# https://developer.apple.com/documentation/swiftui/referencefiledocument + +- SwiftUI +- ReferenceFileDocument + +Protocol + +# ReferenceFileDocument + +A type that you use to serialize reference type documents to and from file. + +@preconcurrency +protocol ReferenceFileDocument : ObservableObject, Sendable + +## Overview + +To store a document as a reference type — like a class — create a type that conforms to the `ReferenceFileDocument` protocol and implement the required methods and properties. Your implementation: + +- Provides a list of the content types that the document can read from and write to by defining `readableContentTypes`. If the list of content types that the document can write to is different from those that it reads from, you can optionally also define `writableContentTypes`. + +- Loads documents from file in the `init(configuration:)` initializer. + +- Stores documents to file by providing a snapshot of the document’s content in the `snapshot(contentType:)` method, and then serializing that content in the `fileWrapper(snapshot:configuration:)` method. + +Ensure that types that conform to this protocol are `Sendable`. In particular, SwiftUI calls the protocol’s methods from different isolation domains. Don’t perform serialization and deserialization on `MainActor`. + +final class PDFDocument: ReferenceFileDocument { +struct Storage { +var contents: Data +} + +static let readableContentTypes: [UTType] = [.pdf] + +guard let data = configuration.file.regularFileContents else { +throw CocoaError(.fileReadCorruptFile) +} +self.storage = .init(.init(contents: data)) +} + +storage.withLock { $0.contents } +} + +return FileWrapper(regularFileWithContents: snapshot) +} +} + +## Topics + +### Reading a document + +`init(configuration: Self.ReadConfiguration) throws` + +Creates a document and initializes it with the contents of a file. + +**Required** + +[`static var readableContentTypes: [UTType]`](https://developer.apple.com/documentation/swiftui/referencefiledocument/readablecontenttypes) + +The file and data types that the document reads from. + +`typealias ReadConfiguration` + +The configuration for reading document contents. + +### Getting a snapshot + +Creates a snapshot that represents the current state of the document. + +`associatedtype Snapshot` + +A type that represents the document’s stored content. + +### Writing a document + +Serializes a document snapshot to a file wrapper. + +[`static var writableContentTypes: [UTType]`](https://developer.apple.com/documentation/swiftui/referencefiledocument/writablecontenttypes) + +The file types that the document supports saving or exporting to. + +**Required** Default implementation provided. + +`typealias WriteConfiguration` + +The configuration for writing document contents. + +## Relationships + +### Inherits From + +- `ObservableObject` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Storing document data in a class instance + +`struct ReferenceFileDocumentConfiguration` + +The properties of an open reference file document. + +`var undoManager: UndoManager?` + +The undo manager used to register a view’s undo operations. + +--- + +# https://developer.apple.com/documentation/swiftui/documentgroup/init(editing:contenttype:editor:preparedocument:) + +#app-main) + +- SwiftUI +- DocumentGroup +- init(editing:contentType:editor:prepareDocument:) + +Initializer + +# init(editing:contentType:editor:prepareDocument:) + +Instantiates a document group for creating and editing documents that store a specific model type. + +SwiftDataSwiftUI + +init( +editing modelType: any PersistentModel.Type, +contentType: UTType, + +) + +Available when `Document` is `ModelDocument` and `Content` conforms to `View`. + +Show all declarations + +## Parameters + +`modelType` + +The model type defining the schema used for each document. + +`contentType` + +The content type of the document. It should conform to `UTType.package`. + +`editor` + +The editing UI for the provided document. + +`prepareDocument` + +The optional closure that accepts `ModelContext` associated with the new document. Use this closure to set the document’s initial contents before it is displayed: insert preconfigured models in the provided `ModelContext`. + +## Discussion + +@main +struct Todo: App { +var body: some Scene { +DocumentGroup(editing: TodoItem.self, contentType: .todoItem) { +ContentView() +} +} +} + +struct ContentView: View { +@Query var items: [TodoItem] + +var body: some View { +List { +ForEach(items) { item in +@Bindable var item = item +Toggle(item.text, isOn: $item.isDone) +} +} +} +} + +@Model +final class TodoItem { +var created: Date +var text: String +var isDone = false +} + +extension UTType { +static var todoItem = UTType(exportedAs: "com.myApp.todoItem") +} + +## See Also + +### Editing a document backed by a persistent store + +Instantiates a document group for creating and editing documents described by the last `Schema` in the migration plan. + +--- + +# https://developer.apple.com/documentation/swiftui/building-a-document-based-app-with-swiftui + +- SwiftUI +- Documents +- Building a document-based app with SwiftUI + +Sample Code + +# Building a document-based app with SwiftUI + +Create, save, and open documents in a multiplatform app. + +Download + +Xcode 16.0+ + +## Overview + +The Writing App sample builds a document-based app for iOS, iPadOS, and macOS. In the app definition, it has a `DocumentGroup` scene, and its document type conforms to the `FileDocument` protocol. People can create a writing app document, modify the title and contents of the document, and read the story in focus mode. + +## Configure the sample code project + +To build and run this sample on your device, select your development team for the project’s target using these steps: + +1. Open the sample with the latest version of Xcode. + +2. Select the top-level project. + +3. For the project’s target, choose your team from the Team pop-up menu in the Signing & Capabilities pane to let Xcode automatically manage your provisioning profile. + +## Define the app’s scene + +A document-based SwiftUI app returns a `DocumentGroup` scene from its `body` property. The `newDocument` parameter that an app supplies to the document group’s `init(newDocument:editor:)` initializer conforms to either `FileDocument` or `ReferenceFileDocument`. In this sample, the document type conforms to `FileDocument`. The trailing closure of the initializer returns a view that renders the document’s contents: + +@main +struct WritingApp: App { +var body: some Scene { +DocumentGroup(newDocument: WritingAppDocument()) { file in +StoryView(document: file.$document) +} +} +} + +## Customize the iOS and iPadOS launch experience + +You can update the default launch experience on iOS and iPadOS with a custom title, action buttons, and screen background. To add an action button with a custom label, use `NewDocumentButton` to replace the default label. You can customize the background in many ways such as adding a view or a `backgroundStyle` with an initializer, for example `init(_:backgroundStyle:_:backgroundAccessoryView:overlayAccessoryView:)`. This sample customizes the background of the title view, using the `init(_:_:background:)` initializer: + +DocumentGroupLaunchScene("Writing App") { +NewDocumentButton("Start Writing") +} background: { +Image(.pinkJungle) +.resizable() +.scaledToFill() +.ignoresSafeArea() +} + +You can also add accessories to the scene using initializers such as `init(_:_:background:backgroundAccessoryView:)` and `init(_:_:background:overlayAccessoryView:)` depending on the positioning. + +overlayAccessoryView: { _ in +AccessoryView() +} + +This sample contains two accessories in the overlay position that it defines in `AccessoryView`. It customizes the accessories by applying modifiers, including `offset(x:y:)` and `frame(width:height:alignment:)`. + +ZStack { +Image(.robot) +.resizable() +.offset(x: size.width / 2 - 450, y: size.height / 2 - 300) +.scaledToFit() +.frame(width: 200) +.opacity(horizontal == .compact ? 0 : 1) +Image(.plant) +.resizable() +.offset(x: size.width / 2 + 250, y: size.height / 2 - 225) +.scaledToFit() +.frame(width: 200) +.opacity(horizontal == .compact ? 0 : 1) +} + +To add both background and overlay accessories, use an initializer, such as `init(_:_:background:backgroundAccessoryView:overlayAccessoryView:)`. If you don’t provide any accessories, the system displays two faded sheets below the title view by default. In macOS, this sample displays the default system document browser on launch. You may wish to add an additional experience on launch. + +## Create the data model + +This sample has a data model that defines a story as a `String`, it initializes `story` with an empty string: + +var story: String + +init(text: String = "") { +self.story = text +} + +## Adopt the file document protocol + +The `WritingAppDocument` structure adopts the `FileDocument` protocol to serialize documents to and from files. The `readableContentTypes` property defines the types that the sample can read and write, specifically, the `.writingAppDocument` type: + +static var readableContentTypes: [UTType] { [.writingAppDocument] } + +The `init(configuration:)` initializer loads documents from a file. After reading the file’s data using the `file` property of the `configuration` input, it deserializes the data and stores it in the document’s data model: + +init(configuration: ReadConfiguration) throws { +guard let data = configuration.file.regularFileContents, +let string = String(data: data, encoding: .utf8) +else { +throw CocoaError(.fileReadCorruptFile) +} +story = string +} + +When a person writes a document, SwiftUI calls the `fileWrapper(configuration:)` function to serialize the data model into a `FileWrapper` value that represents the data in the file system: + +let data = Data(story.utf8) +return .init(regularFileWithContents: data) +} + +Because the document type conforms to `FileDocument`, this sample handles undo actions automatically. + +## Export a custom document type + +The app defines and exports a custom content type for the documents it creates. It declares this custom type in the project’s `Information Property List` file under the `UTExportedTypeDeclarations` key. This sample uses `com.example.writingAppDocument` as the identifier in the `Info.plist` file: + +For convenience, you can also define the content type in code. For example: + +extension UTType { +static var writingapp: UTType { +UTType(exportedAs: "com.example.writingAppDocument") +} +} + +To make sure that the operating system knows that your application can open files with the format described in the `Info.plist`, it defines the file extension `story` for the content type. For more information about custom file and data types, see Defining file and data types for your app. + +## See Also + +#### Related samples + +Building a document-based app using SwiftData + +Code along with the WWDC presenter to transform an app with SwiftData. + +#### Related articles + +Defining file and data types for your app + +Declare uniform type identifiers to support your app’s proprietary data formats. + +Customizing a document-based app’s launch experience + +Add unique elements to your app’s document launch scene. + +#### Related videos + +![\\ +\\ +Evolve your document launch experience](https://developer.apple.com/videos/play/wwdc2024/10132) + +--- + +# https://developer.apple.com/documentation/swiftui/building-a-document-based-app-using-swiftdata + +- SwiftUI +- Documents +- Building a document-based app using SwiftData + +Sample Code + +# Building a document-based app using SwiftData + +Code along with the WWDC presenter to transform an app with SwiftData. + +Download + +Xcode 15.0+ + +## Overview + +Learn how to use `@Query`, `@Bindable`, `.modelContainer`, the `.modelContext` environment variable, and `DocumentGroup` to integrate with the `SwiftData` framework. + +## See Also + +### Creating a document + +Building a document-based app with SwiftUI + +Create, save, and open documents in a multiplatform app. + +`struct DocumentGroup` + +A scene that enables support for opening, creating, and saving documents. + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentconfiguration + +- SwiftUI +- FileDocumentConfiguration + +Structure + +# FileDocumentConfiguration + +The properties of an open file document. + +## Overview + +You receive an instance of this structure when you create a `DocumentGroup` with a value file type. Use it to access the document in your viewer or editor. + +## Topics + +### Getting and setting the document + +`var document: Document` + +The current document model. + +### Getting document properties + +`var fileURL: URL?` + +The URL of the open file document. + +`var isEditable: Bool` + +A Boolean that indicates whether you can edit the document. + +## See Also + +### Storing document data in a structure instance + +`protocol FileDocument` + +A type that you use to serialize documents to and from file. + +--- + +# https://developer.apple.com/documentation/swiftui/referencefiledocumentconfiguration + +- SwiftUI +- ReferenceFileDocumentConfiguration + +Structure + +# ReferenceFileDocumentConfiguration + +The properties of an open reference file document. + +@MainActor @preconcurrency + +## Overview + +You receive an instance of this structure when you create a `DocumentGroup` with a reference file type. Use it to access the document in your viewer or editor. + +## Topics + +### Getting and setting the document + +`var document: Document` + +The current document model. + +### Getting document properties + +`var fileURL: URL?` + +The URL of the open file document. + +`var isEditable: Bool` + +A Boolean that indicates whether you can edit the document. + +## See Also + +### Storing document data in a class instance + +`protocol ReferenceFileDocument` + +A type that you use to serialize reference type documents to and from file. + +`var undoManager: UndoManager?` + +The undo manager used to register a view’s undo operations. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/undomanager + +- SwiftUI +- EnvironmentValues +- undoManager + +Instance Property + +# undoManager + +The undo manager used to register a view’s undo operations. + +var undoManager: UndoManager? { get } + +## Discussion + +This value is `nil` when the environment represents a context that doesn’t support undo and redo operations. You can skip registration of an undo operation when this value is `nil`. + +## See Also + +### Storing document data in a class instance + +`protocol ReferenceFileDocument` + +A type that you use to serialize reference type documents to and from file. + +`struct ReferenceFileDocumentConfiguration` + +The properties of an open reference file document. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/documentconfiguration + +- SwiftUI +- EnvironmentValues +- documentConfiguration + +Instance Property + +# documentConfiguration + +The configuration of a document in a `DocumentGroup`. + +var documentConfiguration: DocumentConfiguration? { get } + +## Discussion + +The value is `nil` for views that are not enclosed in a `DocumentGroup`. + +For example, if the app shows the document path in the footer of each document, it can get the URL from the environment: + +struct ContentView: View { +@Binding var document: TextDocument +@Environment(\.documentConfiguration) private var configuration: DocumentConfiguration? + +var body: some View { +… +Label( +configuration?.fileURL?.path ?? +"", systemImage: "folder.circle" +) +} +} + +## See Also + +### Accessing document configuration + +`struct DocumentConfiguration` + +--- + +# https://developer.apple.com/documentation/swiftui/documentconfiguration + +- SwiftUI +- DocumentConfiguration + +Structure + +# DocumentConfiguration + +struct DocumentConfiguration + +## Topics + +### Getting configuration values + +`var fileURL: URL?` + +A URL of an open document. + +`var isEditable: Bool` + +A Boolean value that indicates whether you can edit the document. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Accessing document configuration + +`var documentConfiguration: DocumentConfiguration?` + +The configuration of a document in a `DocumentGroup`. + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentreadconfiguration + +- SwiftUI +- FileDocumentReadConfiguration + +Structure + +# FileDocumentReadConfiguration + +The configuration for reading file contents. + +struct FileDocumentReadConfiguration + +## Topics + +### Reading the content + +`let contentType: UTType` + +The expected uniform type of the file contents. + +`let file: FileWrapper` + +The file wrapper containing the document content. + +## See Also + +### Reading and writing documents + +`struct FileDocumentWriteConfiguration` + +The configuration for serializing file contents. + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentwriteconfiguration + +- SwiftUI +- FileDocumentWriteConfiguration + +Structure + +# FileDocumentWriteConfiguration + +The configuration for serializing file contents. + +struct FileDocumentWriteConfiguration + +## Topics + +### Writing the content + +`let contentType: UTType` + +The expected uniform type of the file contents. + +`let existingFile: FileWrapper?` + +The file wrapper containing the current document content. `nil` if the document is unsaved. + +## See Also + +### Reading and writing documents + +`struct FileDocumentReadConfiguration` + +The configuration for reading file contents. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/newdocument + +- SwiftUI +- EnvironmentValues +- newDocument + +Instance Property + +# newDocument + +An action in the environment that presents a new document. + +var newDocument: NewDocumentAction { get } + +## Discussion + +Use the `newDocument` environment value to get the instance of the `NewDocumentAction` structure for a given `Environment`. Then call the instance to present a new document. You call the instance directly because it defines a `callAsFunction(_:)` method that Swift calls when you call the instance. + +For example, you can define a button that creates a new document from the selected text: + +struct NewDocumentFromSelection: View { +@FocusedBinding(\.selectedText) private var selectedText: String? +@Environment(\.newDocument) private var newDocument + +var body: some View { +Button("New Document With Selection") { +newDocument(TextDocument(text: selectedText)) +} +.disabled(selectedText?.isEmpty != false) +} +} + +The above example assumes that you define a `TextDocument` that conforms to the `FileDocument` or `ReferenceFileDocument` protocol, and a `DocumentGroup` that handles the associated file type. + +## See Also + +### Opening a document programmatically + +`struct NewDocumentAction` + +An action that presents a new document. + +`var openDocument: OpenDocumentAction` + +An action in the environment that presents an existing document. + +`struct OpenDocumentAction` + +An action that presents an existing document. + +--- + +# https://developer.apple.com/documentation/swiftui/newdocumentaction + +- SwiftUI +- NewDocumentAction + +Structure + +# NewDocumentAction + +An action that presents a new document. + +@MainActor @preconcurrency +struct NewDocumentAction + +## Overview + +Use the `newDocument` environment value to get the instance of this structure for a given `Environment`. Then call the instance to present a new document. You call the instance directly because it defines a `callAsFunction(_:)` method that Swift calls when you call the instance. + +For example, you can define a button that creates a new document from the selected text: + +struct NewDocumentFromSelection: View { +@FocusedBinding(\.selectedText) private var selectedText: String? +@Environment(\.newDocument) private var newDocument + +var body: some View { +Button("New Document With Selection") { +newDocument(TextDocument(text: selectedText)) +} +.disabled(selectedText?.isEmpty != false) +} +} + +The above example assumes that you define a `TextDocument` that conforms to the `FileDocument` or `ReferenceFileDocument` protocol, and a `DocumentGroup` that handles the associated file type. + +## Topics + +### Calling the action + +`func callAsFunction(_:)` + +Presents a new document window. + +`func callAsFunction(contentType: UTType)` + +Presents a new document window with preset contents. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Opening a document programmatically + +`var newDocument: NewDocumentAction` + +An action in the environment that presents a new document. + +`var openDocument: OpenDocumentAction` + +An action in the environment that presents an existing document. + +`struct OpenDocumentAction` + +An action that presents an existing document. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/opendocument + +- SwiftUI +- EnvironmentValues +- openDocument + +Instance Property + +# openDocument + +An action in the environment that presents an existing document. + +var openDocument: OpenDocumentAction { get } + +## Discussion + +Use the `openDocument` environment value to get the instance of the `OpenDocumentAction` structure for a given `Environment`. Then call the instance to present an existing document. You call the instance directly because it defines a `callAsFunction(at:)` method that Swift calls when you call the instance. + +For example, you can create a button that opens the document at the specified URL: + +struct OpenDocumentButton: View { +var url: URL +@Environment(\.openDocument) private var openDocument + +var body: some View { +Button(url.deletingPathExtension().lastPathComponent) { +Task { +do { +try await openDocument(at: url) +} catch { +// Handle error +} +} +} +} +} + +The above example uses a `do-catch` statement to handle any errors that the open document action might throw. It also places the action inside a task and awaits the result because the action operates asynchronously. + +To present an existing document, your app must define a `DocumentGroup` that handles the content type of the specified file. For a document that’s already open, the system brings the existing window to the front. Otherwise, the system opens a new window. + +## See Also + +### Opening a document programmatically + +`var newDocument: NewDocumentAction` + +An action in the environment that presents a new document. + +`struct NewDocumentAction` + +An action that presents a new document. + +`struct OpenDocumentAction` + +An action that presents an existing document. + +--- + +# https://developer.apple.com/documentation/swiftui/opendocumentaction + +- SwiftUI +- OpenDocumentAction + +Structure + +# OpenDocumentAction + +An action that presents an existing document. + +@MainActor +struct OpenDocumentAction + +## Overview + +Use the `openDocument` environment value to get the instance of this structure for a given `Environment`. Then call the instance to present an existing document. You call the instance directly because it defines a `callAsFunction(at:)` method that Swift calls when you call the instance. + +For example, you can create a button that opens the document at the specified URL: + +struct OpenDocumentButton: View { +var url: URL +@Environment(\.openDocument) private var openDocument + +var body: some View { +Button(url.deletingPathExtension().lastPathComponent) { +Task { +do { +try await openDocument(at: url) +} catch { +// Handle error +} +} +} +} +} + +The above example uses a `do-catch` statement to handle any errors that the open document action might throw. It also places the action inside a task and awaits the result because the action operates asynchronously. + +To present an existing document, your app must define a `DocumentGroup` that handles the content type of the specified file. For a document that’s already open, the system brings the existing window to the front. Otherwise, the system opens a new window. + +## Topics + +### Calling the action + +`func callAsFunction(at: URL) async throws` + +Opens the document at the specified file URL. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Opening a document programmatically + +`var newDocument: NewDocumentAction` + +An action in the environment that presents a new document. + +`struct NewDocumentAction` + +An action that presents a new document. + +`var openDocument: OpenDocumentAction` + +An action in the environment that presents an existing document. + +--- + +# https://developer.apple.com/documentation/swiftui/documentgrouplaunchscene + +- SwiftUI +- DocumentGroupLaunchScene + +Structure + +# DocumentGroupLaunchScene + +A launch scene for document-based applications. + +## Overview + +You can use this launch scene alongside `DocumentGroup` scenes. If you don’t implement a `DocumentGroup` in the app declaration, you can get the same design by implementing a `DocumentLaunchView`. + +If you don’t provide the title of the scene, it displays the application name. If you don’t provide the actions builder, the scene has the default “Create Document” action that creates new documents. To customize the document launch experience, you can replace the standard screen background and title, add decorative views, and add custom actions. + +A `DocumentGroupLaunchScene` configures the document browser on the bottom sheet to open content types from all the document groups in the app definition. A `DocumentGroupLaunchScene` also configures the document groups to create documents of the first content type that your application can create and write. + +For more information, see `FileDocument.writableContentTypes` and `ReferenceFileDocument.writableContentTypes`. + +## Topics + +### Initializers + +`init(_:_:background:)` + +Creates a launch scene for document-based applications with a title, a set of actions, and a background. + +`init(_:_:background:backgroundAccessoryView:)` + +Creates a launch scene for document-based applications with a title, a set of actions, a background, and a background accessory view. + +`init(_:_:background:backgroundAccessoryView:overlayAccessoryView:)` + +`init(_:_:background:overlayAccessoryView:)` + +Creates a launch scene for document-based applications with a title, a set of actions, a background, and an overlay accessory view. + +`init(_:backgroundStyle:_:)` + +Creates a launch scene for document-based applications with a title, a background style, and a set of actions. + +`init(_:backgroundStyle:_:backgroundAccessoryView:)` + +Creates a launch scene for document-based applications with a title, a background style, a set of actions, and a background accessory view. + +`init(_:backgroundStyle:_:backgroundAccessoryView:overlayAccessoryView:)` + +Creates a launch scene for document-based applications with a title, a background style, a set of actions, and background and overlay accessory views. + +`init(_:backgroundStyle:_:overlayAccessoryView:)` + +Creates a launch scene for document-based applications with a title, a background style, a set of actions, and an overlay accessory view. + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Configuring the document launch experience + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +--- + +# https://developer.apple.com/documentation/swiftui/documentlaunchview + +- SwiftUI +- DocumentLaunchView + +Structure + +# DocumentLaunchView + +A view to present when launching document-related user experience. + +## Overview + +Configure `DocumentLaunchView` to open and display files and trigger custom actions. + +For example, an application that offers writing books can present the `DocumentLaunchView` as its launch view: + +public import UniformTypeIdentifiers + +struct BookEditorLaunchView: View { + +var body: some View { +DocumentLaunchView(for: [.book]) { +NewDocumentButton("Start New Book") +} onDocumentOpen: { url in +BookEditor(url) +} +} +} + +struct BookEditor: View { +init(_ url: URL) { } +} + +extension UTType { +static var book = UTType(exportedAs: "com.example.bookEditor") +} + +## Topics + +### Initializers + +`init(_:for:_:onDocumentOpen:)` + +Creates a view to present when launching document-related user experiences using a localized title and custom actions. + +`init(_:for:_:onDocumentOpen:background:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, and a background view. + +`init(_:for:_:onDocumentOpen:background:backgroundAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background view, and a background accessory view. + +`init(_:for:_:onDocumentOpen:background:backgroundAccessoryView:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background view, and accessory views. + +`init(_:for:_:onDocumentOpen:background:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background view, and an overlay accessory view. + +`init(_:for:_:onDocumentOpen:backgroundAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, and a background accessory view. + +`init(_:for:_:onDocumentOpen:backgroundAccessoryView:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, and accessory views. + +`init(_:for:_:onDocumentOpen:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, and an overlay accessory view. + +`init(_:for:backgroundStyle:_:onDocumentOpen:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, and a background style. + +`init(_:for:backgroundStyle:_:onDocumentOpen:backgroundAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background style, and a background accessory view. + +`init(_:for:backgroundStyle:_:onDocumentOpen:backgroundAccessoryView:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background style, and accessory views. + +`init(_:for:backgroundStyle:_:onDocumentOpen:overlayAccessoryView:)` + +Creates a view to present when launching document-related user experiences using a localized title, custom actions, a background style, and an overlay accessory view. + +### Instance Properties + +`var body: some View` + +The body of the view. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +--- + +# https://developer.apple.com/documentation/swiftui/documentlaunchgeometryproxy + +- SwiftUI +- DocumentLaunchGeometryProxy + +Structure + +# DocumentLaunchGeometryProxy + +A proxy for access to the frame of the scene and its title view. + +struct DocumentLaunchGeometryProxy + +## Topics + +### Instance Properties + +`var frame: CGRect` + +Frame of the document launch interface. + +`var titleViewFrame: CGRect` + +Frame of the title view within the interface. + +## See Also + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +--- + +# https://developer.apple.com/documentation/swiftui/defaultdocumentgrouplaunchactions + +- SwiftUI +- DefaultDocumentGroupLaunchActions + +Structure + +# DefaultDocumentGroupLaunchActions + +The default actions for the document group launch scene and the document launch view. + +struct DefaultDocumentGroupLaunchActions + +## Overview + +This `View` populates `DocumentGroupLaunchScene` and `DocumentLaunchView` with the default actions. + +## Topics + +### Initializers + +`init()` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +--- + +# https://developer.apple.com/documentation/swiftui/newdocumentbutton + +- SwiftUI +- NewDocumentButton + +Structure + +# NewDocumentButton + +A button that creates and opens new documents. + +## Overview + +Use a new document button to give people the option to create documents in your app. In the following example, there are two new document buttons, both support `Text` labels. When the user taps or clicks the first button, the system creates a new document in the directory currently open in the document browser. The second button creates a new document from a template. + +@State private var isTemplatePickerPresented = false +@State private var documentCreationContinuation: + +var body: some Scene { +DocumentGroupLaunchScene("My Documents") { +NewDocumentButton("Start Writing…") +NewDocumentButton("Choose a Template", for: MyDocument.self) { +try await withCheckedThrowingContinuation { continuation in +documentCreationContinuation = continuation +isTemplatePickerPresented = true +} +} +.fullScreenCover(isPresented: $isTemplatePickerPresented) { +TemplatePicker(continuation: $documentCreationContinuation) +} +} +} + +If you don’t provide a custom label, the system provides a button with the default “Create Document” label. + +## Topics + +### Initializers + +`init(_:contentType:)` + +Creates and opens new documents. + +`init(_:contentType:prepareDocumentURL:)` + +`init(_:for:contentType:prepareDocument:)` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`protocol DocumentBaseBox` + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +--- + +# https://developer.apple.com/documentation/swiftui/documentbasebox + +- SwiftUI +- DocumentBaseBox + +Protocol + +# DocumentBaseBox + +A Box that allows setting its Document base not requiring the caller to know the exact types of the box and its base. + +## Topics + +### Associated Types + +`associatedtype Document` + +The underlying document type. + +**Required** + +### Instance Properties + +`var base: Self.Document?` + +Updates the underlying document to a new value. + +## See Also + +### Configuring the document launch experience + +`struct DocumentGroupLaunchScene` + +A launch scene for document-based applications. + +`struct DocumentLaunchView` + +A view to present when launching document-related user experience. + +`struct DocumentLaunchGeometryProxy` + +A proxy for access to the frame of the scene and its title view. + +`struct DefaultDocumentGroupLaunchActions` + +The default actions for the document group launch scene and the document launch view. + +`struct NewDocumentButton` + +A button that creates and opens new documents. + +--- + +# https://developer.apple.com/documentation/swiftui/renamebutton + +- SwiftUI +- RenameButton + +Structure + +# RenameButton + +A button that triggers a standard rename action. + +## Overview + +A rename button receives its action from the environment. Use the `renameAction(_:)` modifier to set the action. The system disables the button if you don’t define an action. + +struct RowView: View { +@State private var text = "" +@FocusState private var isFocused: Bool + +var body: some View { +TextField(text: $item.name) { +Text("Prompt") +} +.focused($isFocused) +.contextMenu { +RenameButton() +// ... your own custom actions +} +.renameAction { $isFocused = true } +} + +When someone taps the rename button in the context menu, the rename action focuses the text field by setting the `isFocused` property to true. + +You can use this button inside of a navigation title menu and the navigation title modifier automatically configures the environment with the appropriate rename action. + +ContentView() +.navigationTitle($contentTitle) { +// ... your own custom actions +RenameButton() +} + +## Topics + +### Creating an rename button + +`init()` + +Creates a rename button. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating special-purpose buttons + +`struct EditButton` + +A button that toggles the edit mode environment value. + +`struct PasteButton` + +A system button that reads items from the pasteboard and delivers it to a closure. + +--- + +# https://developer.apple.com/documentation/swiftui/view/renameaction(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/rename + +- SwiftUI +- EnvironmentValues +- rename + +Instance Property + +# rename + +An action that activates the standard rename interaction. + +var rename: RenameAction? { get } + +## Discussion + +Use the `renameAction(_:)` modifier to configure the rename action in the environment. + +## See Also + +### Renaming a document + +`struct RenameButton` + +A button that triggers a standard rename action. + +`func renameAction(_:)` + +Sets a closure to run for the rename action. + +`struct RenameAction` + +An action that activates a standard rename interaction. + +--- + +# https://developer.apple.com/documentation/swiftui/renameaction + +- SwiftUI +- RenameAction + +Structure + +# RenameAction + +An action that activates a standard rename interaction. + +struct RenameAction + +## Overview + +Use the `renameAction(_:)` modifier to configure the rename action in the environment. + +## Topics + +### Calling the action + +`func callAsFunction()` + +Triggers the standard rename action provided through the environment. + +## See Also + +### Renaming a document + +`struct RenameButton` + +A button that triggers a standard rename action. + +`func renameAction(_:)` + +Sets a closure to run for the rename action. + +`var rename: RenameAction?` + +An action that activates the standard rename interaction. + +--- + +# https://developer.apple.com/documentation/swiftui/documentgroup) + + + +--- + +# https://developer.apple.com/documentation/swiftui/filedocument) + + + +--- + +# https://developer.apple.com/documentation/swiftui/referencefiledocument) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentgroup/init(editing:contenttype:editor:preparedocument:)). + +).#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/building-a-document-based-app-using-swiftdata) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentconfiguration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/referencefiledocumentconfiguration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/undomanager) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/documentconfiguration) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/documentgroup). + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentconfiguration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentreadconfiguration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/filedocumentwriteconfiguration) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/newdocument) + + + +--- + +# https://developer.apple.com/documentation/swiftui/newdocumentaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/opendocument) + + + +--- + +# https://developer.apple.com/documentation/swiftui/opendocumentaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentgrouplaunchscene) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentlaunchview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentlaunchgeometryproxy) + + + +--- + +# https://developer.apple.com/documentation/swiftui/defaultdocumentgrouplaunchactions) + + + +--- + +# https://developer.apple.com/documentation/swiftui/newdocumentbutton) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documentbasebox) + + + +--- + +# https://developer.apple.com/documentation/swiftui/renamebutton) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/renameaction(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/rename) + + + +--- + +# https://developer.apple.com/documentation/swiftui/renameaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowgroup + +- SwiftUI +- WindowGroup + +Structure + +# WindowGroup + +A scene that presents a group of identically structured windows. + +## Mentioned in + +Building and customizing the menu bar with SwiftUI + +## Overview + +Use a `WindowGroup` as a container for a view hierarchy that your app presents. The hierarchy that you declare as the group’s content serves as a template for each window that the app creates from that group: + +@main +struct Mail: App { +var body: some Scene { +WindowGroup { +MailViewer() // Define a view hierarchy for the window. +} +} +} + +SwiftUI takes care of certain platform-specific behaviors. For example, on platforms that support it, like macOS and iPadOS, people can open more than one window from the group simultaneously. In macOS, people can gather open windows together in a tabbed interface. Also in macOS, window groups automatically provide commands for standard window management. + +Every window in the group maintains independent state. For example, the system allocates new storage for any `State` or `StateObject` variables instantiated by the scene’s view hierarchy for each window that it creates. + +For document-based apps, use `DocumentGroup` to define windows instead. + +### Open windows programmatically + +If you initialize a window group with an identifier, a presentation type, or both, you can programmatically open a window from the group. For example, you can give the mail viewer scene from the previous example an identifier: + +WindowGroup(id: "mail-viewer") { // Identify the window group. +MailViewer() +} + +Elsewhere in your code, you can use the `openWindow` action from the environment to create a new window from the group: + +struct NewViewerButton: View { +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Open new mail viewer") { +openWindow(id: "mail-viewer") // Match the group's identifier. +} +} +} + +Be sure to use unique strings for identifiers that you apply to window groups in your app. + +### Present data in a window + +If you initialize a window group with a presentation type, you can pass data of that type to the window when you open it. For example, you can define a second window group for the Mail app that displays a specified message: + +@main +struct Mail: App { +var body: some Scene { +WindowGroup { +MailViewer(id: "mail-viewer") +} + +// A window group that displays messages. +WindowGroup(for: Message.ID.self) { $messageID in +MessageDetail(messageID: messageID) +} +} +} + +When you call the `openWindow` action with a value, SwiftUI finds the window group with the matching type and passes a binding to the value into the window group’s content closure. For example, you can define a button that opens a message by passing the message’s identifier: + +struct NewMessageButton: View { +var message: Message +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Open message") { +openWindow(value: message.id) +} +} +} + +Be sure that the type you present conforms to both the `Hashable` and `Codable` protocols. Also, prefer lightweight data for the presentation value. For model values that conform to the `Identifiable` protocol, the value’s identifier works well as a presentation type, as the above example demonstrates. + +WindowGroup(for: Message.ID.self) { $messageID in +MessageDetail(messageID: messageID) +} defaultValue: { +model.makeNewMessage().id // A new message that your model stores. +} + +SwiftUI persists the value of the binding for the purposes of state restoration, and reapplies the same value when restoring the window. If the restoration process results in an error, SwiftUI sets the binding to the default value if you provide one, or `nil` otherwise. + +### Title your app’s windows + +To help people distinguish among windows from different groups, include a title as the first parameter in the group’s initializer: + +WindowGroup("Message", for: Message.ID.self) { $messageID in +MessageDetail(messageID: messageID) +} + +SwiftUI uses this title when referring to the window in: + +- The window’s title bar. + +- The list of open windows that the Window menu displays. + +If you don’t provide a title for a window, the system refers to the window using the app’s name instead. + +### Distinguish windows that present like data + +To programmatically distinguish between windows that present the same type of data, like when you use a `UUID` as the identifier for more than one model type, add the `id` parameter to the group’s initializer to provide a unique string identifier: + +WindowGroup("Message", id: "message", for: UUID.self) { $uuid in +MessageDetail(uuid: uuid) +} +WindowGroup("Account", id: "account-info", for: UUID.self) { $uuid in +AccountDetail(uuid: uuid) +} + +Then use both the identifer and a value to open the window: + +struct ActionButtons: View { +var messageID: UUID +var accountID: UUID + +@Environment(\.openWindow) private var openWindow + +var body: some View { +HStack { +Button("Open message") { +openWindow(id: "message", value: messageID) +} +Button("Edit account information") { +openWindow(id: "account-info", value: accountID) +} +} +} +} + +### Dismiss a window programmatically + +The system provides people with platform-appropriate controls to dismiss a window. You can also dismiss windows programmatically by calling the `dismiss` action from within the window’s view hierarchy. For example, you can include a button in the account detail view from the previous example that dismisses the view: + +struct AccountDetail: View { +var uuid: UUID? +@Environment(\.dismiss) private var dismiss + +var body: some View { +VStack { +// ... + +Button("Dismiss") { +dismiss() +} +} +} +} + +The dismiss action doesn’t close the window if you call it from a modal — like a sheet or a popover — that you present from the window. In that case, the action dismisses the modal presentation instead. + +## Topics + +### Creating a window group + +Creates a window group. + +Deprecated + +`init(_:content:)` + +Creates a window group with a text view title. + +### Identifying a window group + +Creates a window group with an identifier. + +`init(_:id:content:)` + +Creates a window group with a text view title and an identifier. + +### Creating a data-driven window group + +Creates a data-presenting window group. + +`init(_:for:content:)` + +Creates a data-presenting window group with a text view title. + +### Providing default data to a window group + +Creates a data-presenting window group with a default value. + +`init(_:for:content:defaultValue:)` + +Creates a data-presenting window group with a text view title and a default value. + +### Identifying a data-driven window group + +Creates a data-presenting window group with an identifier. + +`init(_:id:for:content:)` + +Creates a data-presenting window group with a text view title and an identifier. + +### Identifying a window group that has default data + +Creates a data-presenting window group with an identifier and a default value. + +`init(_:id:for:content:defaultValue:)` + +Creates a data-presenting window group with a text view title, an identifier, and a default value. + +### Supporting types + +`struct PresentedWindowContent` + +A view that represents the content of a presented window. + +### Initializers + +`init(_:id:makeContent:)` + +`init(_:makeContent:)` + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating windows + +`struct Window` + +A scene that presents its content in a single, unique window. + +`struct UtilityWindow` + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +`protocol WindowStyle` + +A specification for the appearance and interaction of a window. + +Sets the style for windows created by this scene. + +--- + +# https://developer.apple.com/documentation/swiftui/window + +- SwiftUI +- Window + +Structure + +# Window + +A scene that presents its content in a single, unique window. + +## Overview + +Use a `Window` scene to augment the main interface of your app with a window that gives people access to supplemental functionality. For example, you can create a secondary window in a mail reader app that enables people to view the status of their account connections: + +@main +struct Mail: App { +var body: some Scene { +WindowGroup { +MailViewer() +} +Window("Connection Doctor", id: "connection-doctor") { +ConnectionDoctor() +} +} +} + +Provide a title as the first argument to the window’s intializer. The system uses the title to identify the window to people using your app in the window’s title bar or in the list of available singleton windows that the Windows menu displays automatically. + +### Open a window programmatically + +People open the window by selecting it in the Windows menu, but you can also open the window programmatically using the `openWindow` action that you read from the environment. Use the `id` parameter that you initialize the window with to indicate which window to open. For example, you can create a button to open the window from the previous example: + +struct OpenConnectionDoctorButton: View { +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Connection doctor") { +openWindow(id: "connection-doctor") // Match the window's identifier. +} +} +} + +If the window is already open when you call this action, the action brings the open window to the front. Be sure to use unique identifiers across all of the `Window` and `WindowGroup` instances that you define. + +### Dismiss a window programmatically + +The system provides people with controls to close windows, but you can also close a window programmatically using the `dismiss` action from within the window’s view hierarchy. For example, you can include a button in the connection doctor view that dismisses the view: + +struct ConnectionDoctor: View { +@Environment(\.dismiss) private var dismiss + +var body: some View { +VStack { +// ... + +Button("Dismiss") { +dismiss() +} +} +} +} + +The dismiss action doesn’t close the window if you call it from a modal — like a sheet or a popover — that you present from within the window. In that case, the action dismisses the modal presentation instead. + +### Use a window as the main scene + +You can use a window as the main scene of your app when multi-window functionality isn’t appropriate. For example, it might not make sense to display more than one window for a video call app that relies on a hardware resource, like a camera: + +@main +struct VideoCall: App { +var body: some Scene { +Window("VideoCall", id: "main") { +CameraView() +} +} +} + +If your app uses a single window as its primary scene, the app quits when the window closes. This behavior differs from an app that uses a `WindowGroup` as its primary scene, where the app continues to run even after closing all of its windows. + +## Topics + +### Creating a window + +`init(_:id:content:)` + +Creates a window with a title and an identifier. + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating windows + +`struct WindowGroup` + +A scene that presents a group of identically structured windows. + +`struct UtilityWindow` + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +`protocol WindowStyle` + +A specification for the appearance and interaction of a window. + +Sets the style for windows created by this scene. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowstyle(_:) + +#app-main) + +- SwiftUI +- Scene +- windowStyle(\_:) + +Instance Method + +# windowStyle(\_:) + +Sets the style for windows created by this scene. + +nonisolated + +## See Also + +### Creating windows + +`struct WindowGroup` + +A scene that presents a group of identically structured windows. + +`struct Window` + +A scene that presents its content in a single, unique window. + +`struct UtilityWindow` + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +`protocol WindowStyle` + +A specification for the appearance and interaction of a window. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultposition(_:) + +#app-main) + +- SwiftUI +- Scene +- defaultPosition(\_:) + +Instance Method + +# defaultPosition(\_:) + +Sets a default position for a window. + +nonisolated + +## Parameters + +`position` + +A `UnitPoint` that specifies where to place a newly opened window relative to the screen bounds. + +## Return Value + +A scene that uses a default position for new windows. + +## Discussion + +The first time your app opens a window from a particular scene declaration, the system places the window at the center of the screen by default. For scene types that support multiple simultaneous windows, the system offsets each additional window by a small amount to avoid completely obscuring existing windows. + +You can override the default placement of the first window by applying a scene modifier that indicates where to place the window relative to the screen bounds. For example, you can request that the system place a new window in the bottom trailing corner of the screen: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.defaultPosition(.bottomTrailing) +} +} + +The system aligns the point in the window that corresponds to the specified `UnitPoint` with the point in the screen that corresponds to the same unit point. + +You typically use one of the predefined unit points — like `bottomTrailing` in the above example — but you can also use a custom unit point. For example, the following modifier aligns the point that’s one quarter of the way from the leading edge of the window with the point that’s one quarter of the way from the leading edge of the screen, while centering the window in the y-dimension: + +WindowGroup { +ContentView() +} +.defaultPosition(UnitPoint(x: 0.25, y: 0.5)) + +The modifier affects any scene type that creates windows in macOS, namely: + +- `WindowGroup` + +- `Window` + +- `DocumentGroup` + +- `Settings` + +The value that you provide acts only as an initial default. During state restoration, the system restores the window to the position that it last occupied. + +## See Also + +### Positioning a window + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/view/presentedwindowstyle(_:) + +#app-main) + +- SwiftUI +- View +- presentedWindowStyle(\_:) + +Instance Method + +# presentedWindowStyle(\_:) + +Sets the style for windows created by interacting with this view. + +nonisolated + +## See Also + +### Styling windows from a view inside the window + +Sets the style for the toolbar in windows created by interacting with this view. + +--- + +# https://developer.apple.com/documentation/swiftui/customizing-window-styles-and-state-restoration-behavior-in-macos + +- SwiftUI +- Windows +- Customizing window styles and state-restoration behavior in macOS + +Sample Code + +# Customizing window styles and state-restoration behavior in macOS + +Configure how your app’s windows look and function in macOS to provide an engaging and more coherent experience. + +Download (1.2 GB) + +## Overview + +The macOS target of Destination Video demonstrates how you can leverage the window and scene customization APIs (available in macOS 15 and later) to tailor an app’s experience in macOS. This includes changing a toolbar’s appearance and visibility, extending a window’s drag region, participating in a window’s zoom action, and modifying a window’s state restoration behavior. + +## Remove the title and background from the window’s toolbar + +Destination Video uses a tab view as its main user interface component, and in macOS, this appears similar to a two-column navigation split view. In this configuration, each tab appears as an entry in the sidebar and participates in the app’s navigation. Because the sidebar provides a visual indication of where you are in that navigation hierarchy, and the app’s content doesn’t require any additional toolbar items, a toolbar isn’t necessary. Removing the toolbar can elevate the underlying content by letting it extend right up to the window’s edge. + +To remove the toolbar’s background, `ContentView` calls the `toolbarBackgroundVisibility(_:for:)` view method: + +.toolbarBackgroundVisibility(.hidden, for: .windowToolbar) + +And then removes the toolbar’s title: + +.toolbar(removing: .title) + +In this instance, the app still requires the window control buttons to close or minimize the window or enter full-screen mode, so it uses individual view methods to remove only the title and bar background. To remove the toolbar entirely, use the `toolbarVisibility(_:for:)` view method instead. + +It’s important to note that these are visual changes only. The system continues to provide the window’s title to accessibility tools such as screen readers, and the app’s Window menu continues to show the title while the window is open. + +## Extend the window’s drag region + +To move a window in macOS, you typically drag that window’s toolbar. However, if you choose to remove the background from a toolbar, or hide the toolbar completely, use `WindowDragGesture` to extend that window’s drag region and make sure the window is still draggable. + +Destination Video’s `PlayerView` adds this gesture to a transparent overlay and inserts the overlay between the video content and the playback controls. This enables you to safely drag the window and not interfere with the system playback UI that AVKit provides. + +.gesture(WindowDragGesture()) + +The player also uses the `allowsWindowActivationEvents(_:)` view method to enable the installed window drag gesture to receive events that activate the window — for example, if the window is in the background and you click it and immediately drag. + +.allowsWindowActivationEvents(true) + +## Customize the window’s zoom behavior + +By default, a window’s toolbar provides buttons that close the window, minimize the window, and enter full-screen mode. If you press and hold the Option key and click the green button, the window zooms instead of going full screen. + +Typically, a window zooms to either its defined maximum size, or as large as the display permits. However, you can use the `windowIdealPlacement(_:)` scene method to override this behavior and provide a size and position that’s more appropriate for the window’s contents. The app uses this method to provide a maximum size for the video player that maintains the video’s aspect ratio to prevent black bars appearing above and below it. + +.windowIdealPlacement { proxy, context in +let displayBounds = context.defaultDisplay.visibleRect +let idealSize = proxy.sizeThatFits(.unspecified) + +// Calculate the content's aspect ratio. +let aspectRatio = aspectRatio(of: idealSize) +// Determine the deltas between the display's size and the content's size. +let deltas = deltas(of: displayBounds.size, idealSize) + +// Calculate the window's zoomed size while maintaining the aspect ratio +// of the content. +let size = calculateZoomedSize( +of: idealSize, +inBounds: displayBounds, +withAspectRatio: aspectRatio, +andDeltas: deltas +) + +// Position the window in the center of the display and return the +// corresponding window placement. +let position = position(of: size, centeredIn: displayBounds) +return WindowPlacement(position, size: size) +} + +This implementation also ensures the zoomed window appears in the center of the display while zooming. + +## Modify how the window participates in state restoration + +In macOS, state restoration is optional and a person enables (or disables) it systemwide in System Settings. By default, your SwiftUI app respects this setting, but you can choose to override it and specify the preferred restoration behavior for each of your app’s windows. For example, you may want to opt out of state restoration for a window that represents a transient activity, or where it’s difficult or expensive to restore the underlying state from a previous session. + +When running in macOS, Destination Video uses the `SceneRestorationBehavior` view modifier to disable state restoration for the video player view. + +.restorationBehavior(.disabled) + +As the app’s videos are brief, and a person’s interactions with them are short-lived, it doesn’t make sense to restore the video player on the next launch. + +## See Also + +#### Related samples + +![\\ +\\ +Destination Video](https://developer.apple.com/documentation/visionOS/destination-video) + +#### Related videos + +![\\ +\\ +Tailor macOS windows with SwiftUI](https://developer.apple.com/videos/play/wwdc2024/10148) + +### Essentials + +Bringing multiple windows to your SwiftUI app + +Compose rich views by reacting to state changes and customize your app’s scene presentation and behavior on iPadOS and macOS. + +--- + +# https://developer.apple.com/documentation/swiftui/bringing_multiple_windows_to_your_swiftui_app + +- SwiftUI +- Bringing multiple windows to your SwiftUI app + +Sample Code + +# Bringing multiple windows to your SwiftUI app + +Compose rich views by reacting to state changes and customize your app’s scene presentation and behavior on iPadOS and macOS. + +Download + +Xcode 14.2+ + +## Overview + +### Configure the sample code project + +Before you run the sample code project in Xcode: + +- To run the sample on an iOS device or Mac, make sure you select your team in the Signing & Capabilities tab in each target’s settings. + +--- + +# https://developer.apple.com/documentation/swiftui/utilitywindow + +- SwiftUI +- UtilityWindow + +Structure + +# UtilityWindow + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +## Overview + +Utility windows are typically used to display controls, settings, or information associated the main content of an application, sometimes referred to as tool palettes or inspector windows. Because of this role, they have specialized behavior compared to all other windows: + +- They receive `FocusedValues` from the focused main scene in an application, similar to commands in the main menu, which can be used to display information on the active content as the user focuses on different scenes. + +- They have a default window level of `.floating` so they remain visible when moving focus between the main scenes. + +- They hide when the window is no longer active. + +- They only become focused when explicitly needed, such as clicking in the titlebar or on a focusable view. + +- When focused, they can be dismissed with the Escape key. + +- They are not minimizable by default. + +@main struct PhotoBrowser: App { var body: some Scene { WindowGroup { PhotoGallery() } + +UtilityWindow("Photo Info", id: "photo-info") { +PhotoInfoViewer() +} +} + +} + +struct PhotoInfoViewer: View { // Automatically updates to the photo selection from whichever // photo gallery window is focused. @FocusedValue(PhotoSelection.self) private var selectedPhotos + +var body: some View { +Text("\(selectedPhotos.count) photos selected") +} + +`UtilityWindow` will automatically add a menu item to show/hide itself in the “View” menu. This can be removed by applying `commandsRemoved()` to the utility window, and manually placing a `WindowVisibilityToggle` elsewhere in an app’s commands. Utility windows can also be programmatically presented with `openWindow` and dismissed using `dismiss`. + +## Topics + +### Initializers + +`init(_:id:content:)` + +Creates a utility window with a title and identifier. + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating windows + +`struct WindowGroup` + +A scene that presents a group of identically structured windows. + +`struct Window` + +A scene that presents its content in a single, unique window. + +`protocol WindowStyle` + +A specification for the appearance and interaction of a window. + +Sets the style for windows created by this scene. + +--- + +# https://developer.apple.com/documentation/swiftui/windowstyle + +- SwiftUI +- WindowStyle + +Protocol + +# WindowStyle + +A specification for the appearance and interaction of a window. + +protocol WindowStyle + +## Topics + +### Getting built-in window styles + +`static var automatic: DefaultWindowStyle` + +The default window style. + +`static var hiddenTitleBar: HiddenTitleBarWindowStyle` + +A window style which hides both the window’s title and the backing of the titlebar area, allowing more of the window’s content to show. + +`static var plain: PlainWindowStyle` + +The plain window style. + +`static var titleBar: TitleBarWindowStyle` + +A window style which displays the title bar section of the window. + +`static var volumetric: VolumetricWindowStyle` + +A window style that creates a 3D volumetric window. + +### Supporting types + +`struct DefaultWindowStyle` + +`struct HiddenTitleBarWindowStyle` + +`struct PlainWindowStyle` + +`struct TitleBarWindowStyle` + +`struct VolumetricWindowStyle` + +## Relationships + +### Conforming Types + +- `DefaultWindowStyle` +- `HiddenTitleBarWindowStyle` +- `PlainWindowStyle` +- `TitleBarWindowStyle` +- `VolumetricWindowStyle` + +## See Also + +### Creating windows + +`struct WindowGroup` + +A scene that presents a group of identically structured windows. + +`struct Window` + +A scene that presents its content in a single, unique window. + +`struct UtilityWindow` + +A specialized window scene that provides secondary utility to the content of the main scenes of an application. + +Sets the style for windows created by this scene. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarstyle(_:) + +#app-main) + +- SwiftUI +- Scene +- windowToolbarStyle(\_:) + +Instance Method + +# windowToolbarStyle(\_:) + +Sets the style for the toolbar defined within this scene. + +nonisolated + +## See Also + +### Styling a toolbar + +`func toolbarBackground(_:for:)` + +Specifies the preferred shape style of the background of a bar managed by SwiftUI. + +Specifies the preferred color scheme of a bar managed by SwiftUI. + +Specifies the preferred foreground style of bars managed by SwiftUI. + +`protocol WindowToolbarStyle` + +A specification for the appearance and behavior of a window’s toolbar. + +`var toolbarLabelStyle: ToolbarLabelStyle?` + +The label style to apply to controls within a toolbar. + +`struct ToolbarLabelStyle` + +The label style of a toolbar. + +`struct SpacerSizing` + +A type which defines how spacers should size themselves. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarlabelstyle(_:) + +#app-main) + +- SwiftUI +- Scene +- windowToolbarLabelStyle(\_:) + +Instance Method + +# windowToolbarLabelStyle(\_:) + +Sets the label style of items in a toolbar and enables user customization. + +nonisolated + +## Parameters + +`toolbarLabelStyle` + +The label style to apply. + +## Discussion + +Use this modifier to bind a `ToolbarLabelStyle` to `AppStorage`. The toolbar will default to the label style specified but will also be user configurable. + +@main +struct MyApp: App { +@AppStorage("ToolbarLabelStyle") +private var labelStyle: ToolbarLabelStyle = .iconOnly + +var body: some Scene { +WindowGroup { +ContentView() +.toolbar(id: "browserToolbar") { +... +} +} +.windowToolbarLabelStyle($labelStyle) +} +} + +## See Also + +### Styling the associated toolbar + +Sets the style for the toolbar defined within this scene. + +Sets the label style of items in a toolbar. + +`protocol WindowToolbarStyle` + +A specification for the appearance and behavior of a window’s toolbar. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarlabelstyle(fixed:) + +#app-main) + +- SwiftUI +- Scene +- windowToolbarLabelStyle(fixed:) + +Instance Method + +# windowToolbarLabelStyle(fixed:) + +Sets the label style of items in a toolbar. + +nonisolated + +## Discussion + +Use this modifier to set a static `ToolbarLabelStyle` the toolbar should use. The style will not be configurable by the user. + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.toolbar(id: "browserToolbar") { +... +} +} +.windowToolbarLabelStyle(fixed: .iconOnly) +} +} + +## See Also + +### Styling the associated toolbar + +Sets the style for the toolbar defined within this scene. + +Sets the label style of items in a toolbar and enables user customization. + +`protocol WindowToolbarStyle` + +A specification for the appearance and behavior of a window’s toolbar. + +--- + +# https://developer.apple.com/documentation/swiftui/windowtoolbarstyle + +- SwiftUI +- WindowToolbarStyle + +Protocol + +# WindowToolbarStyle + +A specification for the appearance and behavior of a window’s toolbar. + +protocol WindowToolbarStyle + +## Topics + +### Getting built-in window toolbar styles + +`static var automatic: DefaultWindowToolbarStyle` + +The automatic window toolbar style. + +`static var expanded: ExpandedWindowToolbarStyle` + +A window toolbar style which displays its title bar area above the toolbar. + +`static var unified: UnifiedWindowToolbarStyle` + +A window toolbar style which displays its toolbar and title bar inline. + +`static var unifiedCompact: UnifiedCompactWindowToolbarStyle` + +A window toolbar style similar to `unified`, but with a more compact vertical sizing. + +### Supporting types + +`struct DefaultWindowToolbarStyle` + +The default window toolbar style. + +`struct ExpandedWindowToolbarStyle` + +`struct UnifiedWindowToolbarStyle` + +`struct UnifiedCompactWindowToolbarStyle` + +## Relationships + +### Conforming Types + +- `DefaultWindowToolbarStyle` +- `ExpandedWindowToolbarStyle` +- `UnifiedCompactWindowToolbarStyle` +- `UnifiedWindowToolbarStyle` + +## See Also + +### Styling a toolbar + +`func toolbarBackground(_:for:)` + +Specifies the preferred shape style of the background of a bar managed by SwiftUI. + +Specifies the preferred color scheme of a bar managed by SwiftUI. + +Specifies the preferred foreground style of bars managed by SwiftUI. + +Sets the style for the toolbar defined within this scene. + +`var toolbarLabelStyle: ToolbarLabelStyle?` + +The label style to apply to controls within a toolbar. + +`struct ToolbarLabelStyle` + +The label style of a toolbar. + +`struct SpacerSizing` + +A type which defines how spacers should size themselves. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/supportsmultiplewindows + +- SwiftUI +- EnvironmentValues +- supportsMultipleWindows + +Instance Property + +# supportsMultipleWindows + +A Boolean value that indicates whether the current platform supports opening multiple windows. + +var supportsMultipleWindows: Bool { get } + +## Discussion + +Read this property from the environment to determine if your app can use the `openWindow` action to open new windows: + +struct NewMailViewerButton: View { +@Environment(\.supportsMultipleWindows) private var supportsMultipleWindows +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Open New Window") { +openWindow(id: "mail-viewer") +} +.disabled(!supportsMultipleWindows) +} +} + +The reported value depends on both the platform and how you configure your app: + +- In macOS, this property returns `true` for any app that uses the SwiftUI app lifecycle. + +- In iPadOS, this property returns `true` for any app that uses the SwiftUI app lifecycle and has the Information Property List key `UIApplicationSupportsMultipleScenes` set to `true`. + +- For all other platforms and configurations, the value returns `false`. + +If the value is false and you try to open a window, SwiftUI ignores the action and logs a runtime error. + +## See Also + +### Opening windows + +Presenting windows and spaces + +Open and close the scenes that make up your app’s interface. + +`var openWindow: OpenWindowAction` + +A window presentation action stored in a view’s environment. + +`struct OpenWindowAction` + +An action that presents a window. + +`struct PushWindowAction` + +An action that opens the requested window in place of the window the action is called from. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/openwindow + +- SwiftUI +- EnvironmentValues +- openWindow + +Instance Property + +# openWindow + +A window presentation action stored in a view’s environment. + +var openWindow: OpenWindowAction { get } + +## Discussion + +Use the `openWindow` environment value to get an `OpenWindowAction` instance for a given `Environment`. Then call the instance to open a window. You call the instance directly because it defines a `callAsFunction(id:)` method that Swift calls when you call the instance. + +For example, you can define a button that opens a new mail viewer window: + +@main +struct Mail: App { +var body: some Scene { +WindowGroup(id: "mail-viewer") { +MailViewer() +} +} +} + +struct NewViewerButton: View { +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Open new mail viewer") { +openWindow(id: "mail-viewer") +} +} +} + +You indicate which scene to open by providing one of the following: + +- A string identifier that you pass through the `id` parameter, as in the above example. + +- A `value` parameter that has a type that matches the type that you specify in the scene’s initializer. + +- Both an identifier and a value. This enables you to define multiple window groups that take input values of the same type like a `UUID`. + +Use the first option to target either a `WindowGroup` or a `Window` scene in your app that has a matching identifier. For a `WindowGroup`, the system creates a new window for the group. If the window group presents data, the system provides the default value or `nil` to the window’s root view. If the targeted scene is a `Window`, the system orders it to the front. + +Use the other two options to target a `WindowGroup` and provide a value to present. If the interface already has a window from the group that’s presenting the specified value, the system brings the window to the front. Otherwise, the system creates a new window and passes a binding to the specified value. + +## See Also + +### Opening windows + +Presenting windows and spaces + +Open and close the scenes that make up your app’s interface. + +`var supportsMultipleWindows: Bool` + +A Boolean value that indicates whether the current platform supports opening multiple windows. + +`struct OpenWindowAction` + +An action that presents a window. + +`struct PushWindowAction` + +An action that opens the requested window in place of the window the action is called from. + +--- + +# https://developer.apple.com/documentation/swiftui/openwindowaction + +- SwiftUI +- OpenWindowAction + +Structure + +# OpenWindowAction + +An action that presents a window. + +@MainActor @preconcurrency +struct OpenWindowAction + +## Overview + +Use the `openWindow` environment value to get the instance of this structure for a given `Environment`. Then call the instance to open a window. You call the instance directly because it defines a `callAsFunction(id:)` method that Swift calls when you call the instance. + +For example, you can define a button that opens a new mail viewer window: + +@main +struct Mail: App { +var body: some Scene { +WindowGroup(id: "mail-viewer") { +MailViewer() +} +} +} + +struct NewViewerButton: View { +@Environment(\.openWindow) private var openWindow + +var body: some View { +Button("Open new mail viewer") { +openWindow(id: "mail-viewer") +} +} +} + +You indicate which scene to open by providing one of the following: + +- A string identifier that you pass through the `id` parameter, as in the above example. + +- A `value` parameter that has a type that matches the type that you specify in the scene’s initializer. + +- Both an identifier and a value. This enables you to define multiple window groups that take input values of the same type, like a `UUID`. + +Use the first option to target either a `WindowGroup` or a `Window` scene in your app that has a matching identifier. For a `WindowGroup`, the system creates a new window for the group. If the window group presents data, the system provides the default value or `nil` to the window’s root view. If the targeted scene is a `Window`, the system orders it to the front. + +Use the other two options to target a `WindowGroup` and provide a value to present. If the interface already has a window from the group that’s presenting the specified value, the system brings the window to the front. Otherwise, the system creates a new window and passes a binding to the specified value. + +## Topics + +### Calling the action + +`func callAsFunction(id: String)` + +Opens a window that’s associated with the specified identifier. + +Opens a window defined by the window group that presents the specified value type and that’s associated with the specified identifier. + +Opens a window defined by a window group that presents the type of the specified value. + +### Structures + +`struct SharingBehavior` + +### Instance Methods + +`func callAsFunction(id: String, sharingBehavior: OpenWindowAction.SharingBehavior) async throws` + +Opens a window that’s associated with the specified identifier, using the specified sharing sharingBehavior.. + +Opens a window defined by the window group that presents the specified value type and that’s associated with the specified identifier, using the specified sharingBehavior. + +Opens a window defined by a window group that presents the type of the specified value, using the specified sharingBehavior. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Opening windows + +Presenting windows and spaces + +Open and close the scenes that make up your app’s interface. + +`var supportsMultipleWindows: Bool` + +A Boolean value that indicates whether the current platform supports opening multiple windows. + +`var openWindow: OpenWindowAction` + +A window presentation action stored in a view’s environment. + +`struct PushWindowAction` + +An action that opens the requested window in place of the window the action is called from. + +--- + +# https://developer.apple.com/documentation/swiftui/pushwindowaction + +- SwiftUI +- PushWindowAction + +Structure + +# PushWindowAction + +An action that opens the requested window in place of the window the action is called from. + +@MainActor +struct PushWindowAction + +## Overview + +The scene this action is called from will be backgrounded. The requested scene will be center-aligned with the backgrounded scene. The requested scene will have a default size that matches the size of the backgrounded scene. Closing the requested window will result in the backgrounded scene reappearing. + +Call `dismissWindow` from the pushed window to dismiss the pushed window and show the backgrounded window. + +Calling this action from a pushed window is not allowed. + +Use the `pushWindow` environment value to get the instance of this structure for a given `Environment`. Then call the instance to push a window. You call the instance directly because it defines a `callAsFunction(id:)` method that Swift calls when you call the instance. + +For example, you can define a button that pushes a video preview from an editor window: + +@main +struct VideoEditor: App { +var body: some Scene { +WindowGroup(id: "editor") { +EditorView() +} + +WindowGroup(id: "viewer") { +VideoView() +} +} +} + +struct EditorView: View { +@Environment(\.pushWindow) private var pushWindow + +var body: some View { +Button("Play", systemImage: "play.fill") { +pushWindow(id: "viewer") +} +} +} + +You indicate which scene to push by providing one of the following: + +- A string identifier that you pass through the `id` parameter, as in the above example. + +- A `value` parameter that has a type that matches the type that you specify in the scene’s initializer. + +- Both an identifier and a value. This enables you to define multiple window groups that take input values of the same type, like a `UUID`. + +Use the first option to target either a `WindowGroup` or a `Window` scene in your app that has a matching identifier. For a `WindowGroup`, the system creates a new window for the group. If the window group presents data, the system provides the default value or `nil` to the window’s root view. If the targeted scene is a `Window`, the system orders it to the front. + +Use the other two options to target a `WindowGroup` and provide a value to present. If the interface already has a window from the group that is presenting the specified value, the system brings the window to the front. Otherwise, the system creates a new window and passes a binding to the specified value. + +## Topics + +### Instance Methods + +`func callAsFunction(id: String)` + +Pushes a window that is associated with the specified identifier. + +Pushes a window defined by the window group that presents the specified value type and that is associated with the specified identifier. + +Pushes a window defined by a window group that presents the type of the specified value. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Opening windows + +Presenting windows and spaces + +Open and close the scenes that make up your app’s interface. + +`var supportsMultipleWindows: Bool` + +A Boolean value that indicates whether the current platform supports opening multiple windows. + +`var openWindow: OpenWindowAction` + +A window presentation action stored in a view’s environment. + +`struct OpenWindowAction` + +An action that presents a window. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismisswindow + +- SwiftUI +- EnvironmentValues +- dismissWindow + +Instance Property + +# dismissWindow + +A window dismissal action stored in a view’s environment. + +var dismissWindow: DismissWindowAction { get } + +## Discussion + +Use the `dismissWindow` environment value to get an `DismissWindowAction` instance for a given `Environment`. Then call the instance to dismiss a window. You call the instance directly because it defines a `callAsFunction(id:)` method that Swift calls when you call the instance. + +For example, you can define a button that dismisses an auxiliary window: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +#if os(macOS) +Window("Auxiliary", id: "auxiliary") { +AuxiliaryContentView() +} +#endif +} +} + +struct DismissWindowButton: View { +@Environment(\.dismissWindow) private var dismissWindow + +var body: some View { +Button("Close Auxiliary Window") { +dismissWindow(id: "auxiliary") +} +} +} + +If the window was opened with `pushWindow`, the presenting window will reappear when this action is performed. + +## See Also + +### Closing windows + +`struct DismissWindowAction` + +An action that dismisses a window associated to a particular scene. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +`struct DismissAction` + +An action that dismisses a presentation. + +`struct DismissBehavior` + +Programmatic window dismissal behaviors. + +--- + +# https://developer.apple.com/documentation/swiftui/dismisswindowaction + +- SwiftUI +- DismissWindowAction + +Structure + +# DismissWindowAction + +An action that dismisses a window associated to a particular scene. + +@MainActor @preconcurrency +struct DismissWindowAction + +## Overview + +Use the `dismissWindow` environment value to get the instance of this structure for a given `Environment`. Then call the instance to dismiss a window. You call the instance directly because it defines a `callAsFunction(id:)` method that Swift calls when you call the instance. + +For example, you can define a button that closes an auxiliary window: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +#if os(macOS) +Window("Auxiliary", id: "auxiliary") { +AuxiliaryContentView() +} +#endif +} +} + +struct DismissWindowButton: View { +@Environment(\.dismissWindow) private var dismissWindow + +var body: some View { +Button("Close Auxiliary Window") { +dismissWindow(id: "auxiliary") +} +} +} + +If the window was opened with `pushWindow`, the original presenting will reappear when this action is performed. + +## Topics + +### Calling the action + +`func callAsFunction()` + +Dismisses the current window. + +`func callAsFunction(id: String)` + +Dismisses the window that’s associated with the specified identifier. + +Dismisses the window defined by the window group that is presenting the specified value type and that’s associated with the specified identifier. + +Dismisses the window defined by the window group that is presenting the specified value type. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Closing windows + +`var dismissWindow: DismissWindowAction` + +A window dismissal action stored in a view’s environment. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +`struct DismissAction` + +An action that dismisses a presentation. + +`struct DismissBehavior` + +Programmatic window dismissal behaviors. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismiss + +- SwiftUI +- EnvironmentValues +- dismiss + +Instance Property + +# dismiss + +An action that dismisses the current presentation. + +var dismiss: DismissAction { get } + +## Mentioned in + +Managing search interface activation + +## Discussion + +Use this environment value to get the `DismissAction` instance for the current `Environment`. Then call the instance to perform the dismissal. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +You can use this action to: + +- Dismiss a modal presentation, like a sheet or a popover. + +- Pop the current view from a `NavigationStack`. + +On apps targetting iOS 18 and aligned releases, you also use the dismiss action to pop the implicit stack of a collapsed `NavigationSplitView`, or clear the equivalent state in an expanded split view. + +The specific behavior of the action depends on where you call it from. For example, you can create a button that calls the `DismissAction` inside a view that acts as a sheet: + +private struct SheetContents: View { +@Environment(\.dismiss) private var dismiss + +var body: some View { +Button("Done") { +dismiss() +} +} +} + +When you present the `SheetContents` view, someone can dismiss the sheet by tapping or clicking the sheet’s button: + +private struct DetailView: View { +@State private var isSheetPresented = false + +var body: some View { +Button("Show Sheet") { +isSheetPresented = true +} +.sheet(isPresented: $isSheetPresented) { +SheetContents() +} +} +} + +Be sure that you define the action in the appropriate environment. For example, don’t reorganize the `DetailView` in the example above so that it creates the `dismiss` property and calls it from the `sheet(item:onDismiss:content:)` view modifier’s `content` closure: + +private struct DetailView: View { +@State private var isSheetPresented = false +@Environment(\.dismiss) private var dismiss // Applies to DetailView. + +var body: some View { +Button("Show Sheet") { +isSheetPresented = true +} +.sheet(isPresented: $isSheetPresented) { +Button("Done") { +dismiss() // Fails to dismiss the sheet. +} +} +} +} + +If you do this, the sheet fails to dismiss because the action applies to the environment where you declared it, which is that of the detail view, rather than the sheet. In fact, in macOS and iPadOS, if the `DetailView` is the root view of a window, the dismiss action closes the window instead. + +The dismiss action has no effect on a view that isn’t currently presented. If you need to query whether SwiftUI is currently presenting a view, read the `isPresented` environment value. + +## See Also + +### Dismissing a presentation + +`var isPresented: Bool` + +A Boolean value that indicates whether the view associated with this environment is currently presented. + +`struct DismissAction` + +An action that dismisses a presentation. + +Conditionally prevents interactive dismissal of presentations like popovers, sheets, and inspectors. + +--- + +# https://developer.apple.com/documentation/swiftui/dismissaction + +- SwiftUI +- DismissAction + +Structure + +# DismissAction + +An action that dismisses a presentation. + +@MainActor @preconcurrency +struct DismissAction + +## Overview + +Use the `dismiss` environment value to get the instance of this structure for a given `Environment`. Then call the instance to perform the dismissal. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +You can use this action to: + +- Dismiss a modal presentation, like a sheet or a popover. + +- Pop the current view from a `NavigationStack`. + +On apps targeting iOS 18 and aligned releases, you also use the dismiss action to pop the implicit stack of a collapsed `NavigationSplitView`, or clear the equivalent state in an expanded split view. + +The specific behavior of the action depends on where you call it from. For example, you can create a button that calls the `DismissAction` inside a view that acts as a sheet: + +private struct SheetContents: View { +@Environment(\.dismiss) private var dismiss + +var body: some View { +Button("Done") { +dismiss() +} +} +} + +When you present the `SheetContents` view, someone can dismiss the sheet by tapping or clicking the sheet’s button: + +private struct DetailView: View { +@State private var isSheetPresented = false + +var body: some View { +Button("Show Sheet") { +isSheetPresented = true +} +.sheet(isPresented: $isSheetPresented) { +SheetContents() +} +} +} + +Be sure that you define the action in the appropriate environment. For example, don’t reorganize the `DetailView` in the example above so that it creates the `dismiss` property and calls it from the `sheet(item:onDismiss:content:)` view modifier’s `content` closure: + +private struct DetailView: View { +@State private var isSheetPresented = false +@Environment(\.dismiss) private var dismiss // Applies to DetailView. + +var body: some View { +Button("Show Sheet") { +isSheetPresented = true +} +.sheet(isPresented: $isSheetPresented) { +Button("Done") { +dismiss() // Fails to dismiss the sheet. +} +} +} +} + +If you do this, the sheet fails to dismiss because the action applies to the environment where you declared it, which is that of the detail view, rather than the sheet. In fact, in macOS and iPadOS, if the `DetailView` is the root view of a window, the dismiss action closes the window instead. + +The dismiss action has no effect on a view that isn’t currently presented. If you need to query whether SwiftUI is currently presenting a view, read the `isPresented` environment value. + +## Topics + +### Calling the action + +`func callAsFunction()` + +Dismisses the view if it is currently presented. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Dismissing a presentation + +`var isPresented: Bool` + +A Boolean value that indicates whether the view associated with this environment is currently presented. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +Conditionally prevents interactive dismissal of presentations like popovers, sheets, and inspectors. + +--- + +# https://developer.apple.com/documentation/swiftui/dismissbehavior + +- SwiftUI +- DismissBehavior + +Structure + +# DismissBehavior + +Programmatic window dismissal behaviors. + +struct DismissBehavior + +## Overview + +Use values of this type to control window dismissal during the current transaction. + +For example, to dismiss windows showing a modal presentation that would otherwise prohibit dismissal, use the `destructive` behavior: + +struct DismissWindowButton: View { +@Environment(\.dismissWindow) private var dismissWindow + +var body: some View { +Button("Close Auxiliary Window") { +withTransaction(\.dismissBehavior, .destructive) { +dismissWindow(id: "auxiliary") +} +} +} +} + +## Topics + +### Getting behaviors + +`static let destructive: DismissBehavior` + +The destructive dismiss behavior. + +`static let interactive: DismissBehavior` + +The interactive dismiss behavior. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Closing windows + +`var dismissWindow: DismissWindowAction` + +A window dismissal action stored in a view’s environment. + +`struct DismissWindowAction` + +An action that dismisses a window associated to a particular scene. + +`var dismiss: DismissAction` + +An action that dismisses the current presentation. + +`struct DismissAction` + +An action that dismisses a presentation. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(_:) + +#app-main) + +- SwiftUI +- Scene +- defaultSize(\_:) + +Instance Method + +# defaultSize(\_:) + +Sets a default size for a window. + +nonisolated + +Show all declarations + +## Parameters + +`size` + +The default size for new windows created from a scene. + +## Return Value + +A scene that uses a default size for new windows. + +## Discussion + +Use this scene modifier to indicate a default initial size for a new window that the system creates from a `Scene` declaration. For example, you can request that new windows that a `WindowGroup` generates occupy 600 points in the x-dimension and 400 points in the y-dimension: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.defaultSize(CGSize(width: 600, height: 400)) +} +} + +The size that you specify acts only as a default for when the window first appears. People can later resize the window using interface controls that the system provides. Also, during state restoration, the system restores windows to their most recent size rather than the default size. + +If you specify a default size that’s outside the range of the window’s inherent resizability in one or both dimensions, the system clamps the affected dimension to keep it in range. You can configure the resizability of a scene using the `windowResizability(_:)` modifier. + +The default size modifier affects any scene type that creates windows in macOS, namely: + +- `WindowGroup` + +- `Window` + +- `DocumentGroup` + +- `Settings` + +If you want to specify the input directly in terms of width and height, use `defaultSize(width:height:)` instead. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:) + +#app-main) + +- SwiftUI +- Scene +- defaultSize(width:height:) + +Instance Method + +# defaultSize(width:height:) + +Sets a default width and height for a window. + +nonisolated +func defaultSize( +width: CGFloat, +height: CGFloat + +## Parameters + +`width` + +The default width for windows created from a scene. + +`height` + +The default height for windows created from a scene. + +## Return Value + +A scene that uses a default size for new windows. + +## Discussion + +Use this scene modifier to indicate a default initial size for a new window that the system creates from a `Scene` declaration. For example, you can request that new windows that a `WindowGroup` generates occupy 600 points in the x-dimension and 400 points in the y-dimension: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.defaultSize(width: 600, height: 400) +} +} + +The size that you specify acts only as a default for when the window first appears. People can later resize the window using interface controls that the system provides. Also, during state restoration, the system restores windows to their most recent size rather than the default size. + +If you specify a default size that’s outside the range of the window’s inherent resizability in one or both dimensions, the system clamps the affected dimension to keep it in range. You can configure the resizability of a scene using the `windowResizability(_:)` modifier. + +The default size modifier affects any scene type that creates windows in macOS, namely: + +- `WindowGroup` + +- `Window` + +- `DocumentGroup` + +- `Settings` + +If you want to specify the size input in terms of size instance, use `defaultSize(_:)` instead. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:depth:) + +#app-main) + +- SwiftUI +- Scene +- defaultSize(width:height:depth:) + +Instance Method + +# defaultSize(width:height:depth:) + +Sets a default size for a volumetric window. + +nonisolated +func defaultSize( +width: CGFloat, +height: CGFloat, +depth: CGFloat + +## Parameters + +`width` + +The default width for the created window. + +`height` + +The default height for the created window. + +`depth` + +The default depth for the created volumetric window. + +## Return Value + +A scene that uses a default size for new windows. + +## Discussion + +Use this modifier to indicate the default initial size for a new 3D window created from a `Scene` using `VolumetricWindowStyle`: + +WindowGroup { +ContentView() +} +.windowStyle(.volumetric) +.defaultSize(width: 600, height: 400, depth: 600) + +Each parameter is specified in points. The size of a volumetric scene is immutable after creation. + +This modifier affects only windows that have the volumetric style in visionOS. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(_:in:) + +#app-main) + +- SwiftUI +- Scene +- defaultSize(\_:in:) + +Instance Method + +# defaultSize(\_:in:) + +Sets a default size for a volumetric window. + +nonisolated +func defaultSize( +_ size: Size3D, +in unit: UnitLength + +## Parameters + +`unit` + +The unit of length the dimensions of the window are specified in. + +## Return Value + +A scene that uses a default size for new windows. + +## Discussion + +Use this modifier to indicate the default initial size for a new 3D window created from a `Scene` using `VolumetricWindowStyle`: + +WindowGroup { +ContentView() +} +.windowStyle(.volumetric) +.defaultSize(Size3D(width: 1, height: 1, depth: 0.5), in: .meters) + +Each parameter is specified in the unit you provide. The size of a volumetric scene is immutable after creation. + +This modifier affects only windows that have the volumetric style in visionOS. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:depth:in:) + +#app-main) + +- SwiftUI +- Scene +- defaultSize(width:height:depth:in:) + +Instance Method + +# defaultSize(width:height:depth:in:) + +Sets a default size for a volumetric window. + +nonisolated +func defaultSize( +width: CGFloat, +height: CGFloat, +depth: CGFloat, +in unit: UnitLength + +## Parameters + +`width` + +The default width for the created window. + +`height` + +The default height for the created window. + +`depth` + +The default depth for the created volumetric window. + +`unit` + +The unit of length the dimensions of the window are specified in. + +## Return Value + +A scene that uses a default size for new windows. + +## Discussion + +Use this modifier to indicate the default initial size for a new 3D window created from a `Scene` using `VolumetricWindowStyle`: + +WindowGroup { +ContentView() +} +.windowStyle(.volumetric) +.defaultSize(width: 1, height: 1, depth: 0.5, in: .meters) + +Each parameter is specified in the unit you provide. The size of a volumetric scene is immutable after creation. + +This modifier affects only windows that have the volumetric style in visionOS. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowresizability(_:) + +#app-main) + +- SwiftUI +- Scene +- windowResizability(\_:) + +Instance Method + +# windowResizability(\_:) + +Sets the kind of resizability to use for a window. + +nonisolated + +## Parameters + +`resizability` + +The resizability to use for windows created by this scene. + +## Return Value + +A scene that uses the specified resizability strategy. + +## Discussion + +Use this scene modifier to apply a value of type `WindowResizability` to a `Scene` that you define in your `App` declaration. The value that you specify indicates the strategy the system uses to place minimum and maximum size restrictions on windows that it creates from that scene. + +For example, you can create a window group that people can resize to between 100 and 400 points in both dimensions by applying both a frame with those constraints to the scene’s content, and the `contentSize` resizability to the scene: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.frame( +minWidth: 100, maxWidth: 400, +minHeight: 100, maxHeight: 400) +} +.windowResizability(.contentSize) +} +} + +The default value for all scenes if you don’t apply the modifier is `automatic`. With that strategy, `Settings` windows use the `contentSize` strategy, while all others use `contentMinSize`. + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/windowresizability + +- SwiftUI +- WindowResizability + +Structure + +# WindowResizability + +The resizability of a window. + +struct WindowResizability + +## Overview + +Use the `windowResizability(_:)` scene modifier to apply a value of this type to a `Scene` that you define in your `App` declaration. The value that you specify indicates the strategy the system uses to place minimum and maximum size restrictions on windows that it creates from that scene. + +For example, you can create a window group that people can resize to between 100 and 400 points in both dimensions by applying both a frame with those constraints to the scene’s content, and the `contentSize` resizability to the scene: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.frame( +minWidth: 100, maxWidth: 400, +minHeight: 100, maxHeight: 400) +} +.windowResizability(.contentSize) +} +} + +The default value for all scenes if you don’t apply the modifier is `automatic`. With that strategy, `Settings` windows use the `contentSize` strategy, while all others use `contentMinSize`. Windows on visionOS with a window style of `volumetric` also use the `contentSize` strategy. + +## Topics + +### Getting the resizability + +`static var automatic: WindowResizability` + +The automatic window resizability. + +`static var contentMinSize: WindowResizability` + +A window resizability that’s partially derived from the window’s content. + +`static var contentSize: WindowResizability` + +A window resizability that’s derived from the window’s content. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowidealsize(_:) + +#app-main) + +- SwiftUI +- Scene +- windowIdealSize(\_:) + +Instance Method + +# windowIdealSize(\_:) + +Specifies how windows derived form this scene should determine their size when zooming. + +nonisolated + +## Parameters + +`idealSize` + +A value which determines how windows derived from this scene should size themselves when zooming. + +## Discussion + +The default behavior will size the window to its maximum size, or the bounds of the display, whichever is smaller. By overriding this behavior, you can provide a size that is appropriate for the contents of your window. + +For example, you can define a window group where the window has an ideal width of 800 points and an ideal height of 600 points: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.frame(idealWidth: 800, idealHeight: 600) +} +.windowIdealSize(.fitToContent) +} +} + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +`struct WindowIdealSize` + +A type which defines the size a window should use when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/windowidealsize + +- SwiftUI +- WindowIdealSize + +Structure + +# WindowIdealSize + +A type which defines the size a window should use when zooming. + +struct WindowIdealSize + +## Overview + +Use this type in conjunction with the `Scene.windowIdealSize(_:)` modifier to override the default behavior for how windows behave when performing a zoom. + +For example, you can define a window group where the window has an ideal width of 800 points and an ideal height of 600 points: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.frame(idealWidth: 800, idealHeight: 600) +} +.windowIdealSize(.fitToContent) +} +} + +## Topics + +### Type Properties + +`static let automatic: WindowIdealSize` + +The automatic window ideal size. Windows will use the system behavior when determining the size to use when zooming. + +`static let fitToContent: WindowIdealSize` + +A window ideal size which uses the ideal size of the window’s contents. + +`static let maximum: WindowIdealSize` + +A window ideal size which uses the maximum size of the window’s contents. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Sizing a window + +Positioning and sizing windows + +Influence the initial geometry of windows that your app presents. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Sets the kind of resizability to use for a window. + +`struct WindowResizability` + +The resizability of a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +--- + +# https://developer.apple.com/documentation/swiftui/windowlevel + +- SwiftUI +- WindowLevel + +Structure + +# WindowLevel + +The level of a window. + +struct WindowLevel + +## Overview + +Use this in conjunction with the `.windowLevel(_:)` modifier to control window levels. + +## Topics + +### Type Properties + +`static var automatic: WindowLevel` + +Automatic window level. + +`static var desktop: WindowLevel` + +Desktop window level. + +`static var floating: WindowLevel` + +Floating window level. + +`static var normal: WindowLevel` + +Normal window level. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Positioning a window + +Sets a default position for a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowlevel(_:) + +#app-main) + +- SwiftUI +- Scene +- windowLevel(\_:) + +Instance Method + +# windowLevel(\_:) + +Sets the window level of this scene. + +nonisolated + +## Parameters + +`level` + +The desired window level + +## Discussion + +Window("Utility Window", id: "...") { +UtilityContent() +} +.windowLevel(.floating) + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/windowlayoutroot + +- SwiftUI +- WindowLayoutRoot + +Structure + +# WindowLayoutRoot + +A proxy which represents the root contents of a window. + +struct WindowLayoutRoot + +## Overview + +This type acts like a proxy for the contents of the window defined by a SwiftUI `Scene`. The `Scene.defaultWindowPlacement(_:)` modifier receives an instance of this type, representing the contents of the window being created. + +Use this proxy to get information about the window’s contents, like it’s size. + +## Topics + +### Instance Methods + +Asks the window’s content for its size. + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/windowplacement + +- SwiftUI +- WindowPlacement + +Structure + +# WindowPlacement + +A type which represents a preferred size and position for a window. + +struct WindowPlacement + +## Overview + +When using the `Scene.defaultWindowPlacement(_:)` modifier, you return an instance of a `WindowPlacement` in the closure you provide. + +When constructing a window placement, many initial parameters are optional. Any value not specified will fall + +### Structures + +`struct Position` + +A semantic or positional value for the location of a window. + +### Initializers + +`init(WindowPlacement.Position?)` + +Creates a new window placement with an optional position. + +`init(WindowPlacement.Position?, size3D: Size3D?)` + +Creates a new window placement with an optional position and 3D size. Depth is ignored on scenes that don’t support it. + +`init(_:size:)` + +Creates a new window placement with an absolute position and optional size. + +`init(UnitPoint, width: CGFloat?, height: CGFloat?)` + +Creates a new window placement with a display-relative position, with an optional width and height. + +`init(WindowPlacement.Position?, width: CGFloat?, height: CGFloat?, depth: CGFloat?)` + +Creates a new window placement with an optional position and 3D size. Depth is ignored on scenes or platforms that don’t support it. + +`init(x: CGFloat?, y: CGFloat?, width: CGFloat?, height: CGFloat?)` + +Creates a new window placement with an optional position and size. + +## Relationships + +### Conforms To + +- `Equatable` + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultwindowplacement(_:) + +#app-main) + +- SwiftUI +- Scene +- defaultWindowPlacement(\_:) + +Instance Method + +# defaultWindowPlacement(\_:) + +Defines a function used for determining the default placement of windows. + +nonisolated + +## Parameters + +`makePlacement` + +A closure to generate the default window placement. + +## Discussion + +Use this scene modifier to indicate a default initial size and position for a new window that the system creates from a `Scene` declaration. + +On macOS, you can use the screen’s bounds to place the window. For example, you can specify that the window is always placed 140 points from the bottom of the screen: + +struct MyApp: App { +var body: some Scene { +... + +Window("Status", id: "status") { +StatusView() +} +.windowResizability(.contentSize) +.defaultWindowPlacement { content, context in +let displayBounds = context.defaultDisplay.visibleRect +let size = content.sizeThatFits(.unspecified) +let position = CGPoint( +x: displayBounds.midX - (size.width / 2), +y: displayBounds.maxY - size.height - 140) +return WindowPlacement(position: position, size: size) +} +} +} + +On visionOS, the system always places the first window relative to where the person is looking. The system ignores calls to `defaultWindowPlacement(_:)`. + +You can place any subsequent windows relative to existing ones by returning one of the methods defined by `WindowPlacement.Position` with the existing window. For example, you can align the new window with the trailing edge of the `Content` window: + +struct MyApp: App { +@Environment(\.openWindow) private var openWindow + +var body: some Scene { +WindowGroup("Content", id: "content") { +Button("Open status window") { +openWindow(id: "status") +} +} + +WindowGroup("Status", id: "status") { +StatusView() +} +.windowResizability(.contentSize) +.defaultWindowPlacement { content, context in +if let contentWindow = context.windows.first( +where: { $0.id == "content" }) { +WindowPlacement(.trailing(contentWindow)) +} else { +WindowPlacement() +} +} +} +} + +The placement that your function returns acts as a default for when the window first appears. People can later resize and move the window using interface controls that the system provides. Also, during state restoration, the system restores the window to it’s most recent size and position, rather than the default placement. + +For more information on configuring how scenes behave with state restoration, see `Scene.stateRestoration(_:)`. + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowidealplacement(_:) + +#app-main) + +- SwiftUI +- Scene +- windowIdealPlacement(\_:) + +Instance Method + +# windowIdealPlacement(\_:) + +Provides a function which determines a placement to use when windows of a scene zoom. + +nonisolated + +## Parameters + +`makePlacement` + +A closure which returns the ideal placement for a window derived from this scene. + +## Discussion + +The default behavior will size the window to its maximum size, or the bounds of the display, whichever is smaller. By overriding this behavior, you can provide a size that is appropriate for the contents of your window. + +For example, you can provide a placement with a height equal to the display bounds, and a width based on your content’s ideal width: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.windowIdealPlacement { content, context in +let displayBounds = context.defaultDisplay.visibleRect +let proposal = ProposedViewSize( +width: nil, height: displayBounds.height) +let contentSize = content.sizeThatFits(proposal) +return .init( +width: contentSize.width, +height: contentSize.height) +} +} +} + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/windowplacementcontext + +- SwiftUI +- WindowPlacementContext + +Structure + +# WindowPlacementContext + +A type which represents contextual information used for sizing and positioning windows. + +struct WindowPlacementContext + +## Overview + +The placement context provides information to be used when providing a new placement via the closure provided to the `defaultWindowPlacement(_:)` modifier. + +## Topics + +### Instance Properties + +`var defaultDisplay: DisplayProxy` + +The display on which new windows will be presented by default. + +[`var windows: [WindowProxy]`](https://developer.apple.com/documentation/swiftui/windowplacementcontext/windows) + +The list of current active scenes + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowProxy` + +The proxy for an open window in the app. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/windowproxy + +- SwiftUI +- WindowProxy + +Structure + +# WindowProxy + +The proxy for an open window in the app. + +struct WindowProxy + +## Topics + +### Instance Properties + +`var id: String?` + +The ID for the window, if one was provided. + +`var phase: ScenePhase` + +The window’s current `ScenePhase`. + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct DisplayProxy` + +A type which provides information about display hardware. + +--- + +# https://developer.apple.com/documentation/swiftui/displayproxy + +- SwiftUI +- DisplayProxy + +Structure + +# DisplayProxy + +A type which provides information about display hardware. + +struct DisplayProxy + +## Overview + +You can use this type with your custom window layouts to size and position windows relative to a display’s bounds. + +For example, your custom window layout can position a window 140 points from the bottom of the screen’s visible area: + +Window("Status", id: "status") { +StatusView() +} +.windowResizability(.contentSize) +.defaultWindowPlacement { content, context in +let displayBounds = context.defaultDisplay.visibleRect +let size = content.sizeThatFits(.unspecified) +let position = CGPoint( +x: displayBounds.midX - (size.width / 2), +y: displayBounds.maxY - size.height - 140) +return WindowPlacement(position: position, size: size) +} + +## Topics + +### Instance Properties + +`let bounds: CGRect` + +The full dimensions of the display, including any space occupied by system interface elements. + +`let safeAreaInsets: EdgeInsets` + +The safe area inset of this display. + +`let visibleRect: CGRect` + +The portion of the display where it is safe to place windows. + +## Relationships + +### Conforms To + +- `Equatable` + +## See Also + +### Positioning a window + +Sets a default position for a window. + +`struct WindowLevel` + +The level of a window. + +Sets the window level of this scene. + +`struct WindowLayoutRoot` + +A proxy which represents the root contents of a window. + +`struct WindowPlacement` + +A type which represents a preferred size and position for a window. + +Defines a function used for determining the default placement of windows. + +Provides a function which determines a placement to use when windows of a scene zoom. + +`struct WindowPlacementContext` + +A type which represents contextual information used for sizing and positioning windows. + +`struct WindowProxy` + +The proxy for an open window in the app. + +--- + +# https://developer.apple.com/documentation/swiftui/windowvisibilitytoggle + +- SwiftUI +- WindowVisibilityToggle + +Structure + +# WindowVisibilityToggle + +A specialized button for toggling the visibility of a window. + +## Overview + +This is most commonly used in the main menu, where it can toggle the visibility of `Window` and `UtilityWindow` windows. The default label uses the title of the window in the format of “Show ” and “Hide ” depending on the current visibility of the window. + +A keyboard shortcut can be assigned to this button. + +The below example demonstrates how a main menu can be constructed with visibility buttons, replacing the default commands added by `Window` and `Utility Window`: + +struct PhotoEditor: App { +var body: some Scene { +WindowGroup { +PhotoEditor() +} +.commands { +CommandGroup(before: .textFormatting) { +Section { +WindowVisibilityToggle(windowID: "formatting") +.keyboardShortcut("t", modifiers: [.command, .shift]) + +// other custom/image formatting controls +} +} +CommandGroup(before: .sidebar) { +Section { +WindowVisibilityToggle(windowID: "photo-library") + +// other controls for showing/hiding UI +} +} +} + +UtilityWindow("Formatting Style", id: "formatting") { +TextAndImageFormatForm() +} +.commandsRemoved() + +Window("Photo Library", id: "photo-library") { +PhotoInfoViewer() +} +.commandsRemoved() +} +} + +## Topics + +### Creating a window visibility toggle + +`init(windowID: String)` + +Create a window visibility toggle to alter the visibility of a specific window. + +### Supporting types + +`struct DefaultWindowVisibilityToggleLabel` + +The default label of a window visibility toggle. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring window visibility + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultlaunchbehavior(_:) + +#app-main) + +- SwiftUI +- Scene +- defaultLaunchBehavior(\_:) + +Instance Method + +# defaultLaunchBehavior(\_:) + +Sets the default launch behavior for this scene. + +nonisolated + +## Discussion + +This behavior can be used to define if a scene is shown on application launch in the absence of any previously saved state. + +On platforms that do not support multiple windows, this value is ignored. + +On platforms other than macOS, there must be at least one scene that presents itself. If no scenes are defined to present, the first scene will be presented, regardless of the value provided to this modifier. + +On macOS, this behavior will also be used to determine which scene is presented when clicking on the icon of a running application with no visible windows. + +On visionOS, the system may background the last dismissed scene instead of closing it. Thus, the suppressed behavior additionally specifies that the scene should not be presented when tapping on the application icon with no visible windows. + +For example, you may wish to present a welcome window on launch of your app when there are no previous document windows being restored: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: MyDocument()) { configuration in +DocumentEditor(configuration.$document) +} + +Window("Welcome to My App", id: "welcome") { +WelcomeView() +} +.defaultLaunchBehavior(.presented) +} +} + +The default value for all scenes if you do not apply this modifier is `automatic`. With that strategy, a scene will only present itself if it is the first scene defined by the app, and no other scenes have presented themselves. + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/scene/restorationbehavior(_:) + +#app-main) + +- SwiftUI +- Scene +- restorationBehavior(\_:) + +Instance Method + +# restorationBehavior(\_:) + +Sets the restoration behavior for this scene. + +nonisolated + +## Discussion + +Use this scene modifier to apply a value of this type to a `Scene` you define in your `App` declaration. The value you specify determines how the system will restore windows from a previous run of your application. + +For example, you may have a scene that you do not wish to be restored on launch: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +Window(id: "network-test", "Network Connection Test") { +NetworkTestView() +} +.restorationBehavior(.disabled) +} +} + +The default value for all scenes if you do not apply the modifier is `automatic`. With that strategy, scenes will restore themselves depending on the default behavior for the platform. + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/scenelaunchbehavior + +- SwiftUI +- SceneLaunchBehavior + +Structure + +# SceneLaunchBehavior + +The launch behavior for a scene. + +struct SceneLaunchBehavior + +## Overview + +Use the `defaultLaunchBehavior(_:)` modifier to apply a value of this type to a `Scene` you specify in your `App`. The value you specify determines how the system will present the scene in the absense of any previously restored scenes on launch of your application. + +For example, you may wish to present a welcome window on launch of your app when there are no previous document windows being restored: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: MyDocument()) { configuration in +DocumentEditor(configuration.$document) +} + +Window("Welcome to My App", id: "welcome") { +WelcomeView() +} +.defaultLaunchBehavior(.presented) +} +} + +## Topics + +### Type Properties + +`static let automatic: SceneLaunchBehavior` + +The automatic behavior. + +`static let presented: SceneLaunchBehavior` + +The presented behavior. The scene will present itself in the absence of any previously restored scenes. + +`static let suppressed: SceneLaunchBehavior` + +The suppressed behavior. The scene will not present itself in the absence of any previously restored scenes. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/scenerestorationbehavior + +- SwiftUI +- SceneRestorationBehavior + +Structure + +# SceneRestorationBehavior + +The restoration behavior for a scene. + +struct SceneRestorationBehavior + +## Overview + +Use the `restorationBehavior(_:)` scene modifier to apply a value of this type to a `Scene` you define in your `App` declaration. The value you specify determines how the system will restore windows from a previous run of your application. + +For example, you may have a scene that you do not wish to be restored on launch: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +Window(id: "network-test", "Network Connection Test") { +NetworkTestView() +} +.restorationBehavior(.disabled) +} +} + +## Topics + +### Type Properties + +`static let automatic: SceneRestorationBehavior` + +The automatic behavior. The scene’s windows will be restored as defined by the underlying platform. + +`static let disabled: SceneRestorationBehavior` + +The disabled behavior. The scene’s windows will not be restored. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/persistentsystemoverlays(_:) + +#app-main) + +- SwiftUI +- Scene +- persistentSystemOverlays(\_:) + +Instance Method + +# persistentSystemOverlays(\_:) + +Sets the preferred visibility of the non-transient system views overlaying the app. + +nonisolated + +## Discussion + +Use this modifier to influence the appearance of system overlays in your app. The behavior varies by platform. + +In iOS, the following example hides every persistent system overlay. In visionOS 2 and later, the SharePlay Indicator hides if the scene is shared through SharePlay, or not shared at all. During screen sharing, the indicator always remains visible. The Home indicator doesn’t appear without specific user intent when you set visibility to `hidden`. For a `WindowGroup`, the modifier affects the visibility of the window chrome. For an `ImmersiveSpace`, it affects the Home indicator. + +struct ImmersiveView: View { +var body: some View { +Text("Maximum immersion") +.persistentSystemOverlays(.hidden) +} +} + +Affected non-transient system views can include, but are not limited to: + +- The Home indicator. + +- The SharePlay indicator. + +- The Multitasking Controls button and Picture in Picture on iPad. + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowtoolbarfullscreenvisibility(_:) + +#app-main) + +- SwiftUI +- View +- windowToolbarFullScreenVisibility(\_:) + +Instance Method + +# windowToolbarFullScreenVisibility(\_:) + +Configures the visibility of the window toolbar when the window enters full screen mode. + +nonisolated + +## Parameters + +`visibility` + +The visibility to use for the window toolbar in full screen mode. + +## Discussion + +By default, the window toolbar will show at the top of the display, above the window’s contents. + +You can use this modifier to override the default behavior. + +For example, you can specify that the window toolbar should be hidden by default, and only show once the mouse moves into the area occupied by the menu bar: + +struct RootView: View { +var body: some View { +ContentView() +.toolbar { +... +} +.windowToolbarFullScreenVisibility(.onHover) +} +} + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +`struct WindowToolbarFullScreenVisibility` + +The visibility of the window toolbar with respect to full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/windowtoolbarfullscreenvisibility + +- SwiftUI +- WindowToolbarFullScreenVisibility + +Structure + +# WindowToolbarFullScreenVisibility + +The visibility of the window toolbar with respect to full screen mode. + +struct WindowToolbarFullScreenVisibility + +## Overview + +Use values of this type in conjunction with the `windowToolbarFullScreenVisibility(_:)` modifier to configure how the window toolbar displays itself when the window enters full screen mode. + +For example, you can specify that the window toolbar should be hidden by default, and only show when the mouse moves into the area occupied by the menu bar: + +struct RootView: View { +var body: some View { +ContentView() +.toolbar { +... +} +.windowToolbarFullScreenVisibility(.onHover) +} +} + +## Topics + +### Type Properties + +`static let automatic: WindowToolbarFullScreenVisibility` + +The window toolbar visibility will be defined by the system default behavior. + +`static let onHover: WindowToolbarFullScreenVisibility` + +Hide the window toolbar in full screen mode by default. It will reveal itself when the mouse moves into the area occupied by the menu bar. + +`static let visible: WindowToolbarFullScreenVisibility` + +Prefer to show window toolbar when the window is in full screen mode. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring window visibility + +`struct WindowVisibilityToggle` + +A specialized button for toggling the visibility of a window. + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +`struct SceneLaunchBehavior` + +The launch behavior for a scene. + +`struct SceneRestorationBehavior` + +The restoration behavior for a scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Configures the visibility of the window toolbar when the window enters full screen mode. + +--- + +# https://developer.apple.com/documentation/swiftui/windowmanagerrole + +- SwiftUI +- WindowManagerRole + +Structure + +# WindowManagerRole + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +struct WindowManagerRole + +## Overview + +Use values of this type in conjunction with the `windowManagerRole(_:)` modifier to override the default system behavior. + +For example, you can specify that a secondary `Window` scene should use the principal role for full screen and Stage Manager: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +Window("Organizer", id: "organizer") { +OrganizerView() +} +.windowManagerRole(.principal) +} +} + +## Topics + +### Type Properties + +`static let associated: WindowManagerRole` + +The associated role. Windows derived from this scene can be shown alongside windows with a `.principal` role in either full screen or Stage Manager, but do not participate in those modes on their own. + +`static let automatic: WindowManagerRole` + +The automatic role. The type and configuration of the scene will be used to determine how its windows behave in full screen and Stage Manager. + +`static let principal: WindowManagerRole` + +The principal role. Windows derived from this scene will show in full screen, if enabled, or in Stage Manager. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Managing window behavior + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowmanagerrole(_:) + +#app-main) + +- SwiftUI +- Scene +- windowManagerRole(\_:) + +Instance Method + +# windowManagerRole(\_:) + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +nonisolated + +## Discussion + +By default, the type of `Scene` and its placement within the app’s definition will determine the behavior of its windows within a window management context. + +You can use this modifier to override the default behaivor. + +For example, you can specify that a secondary `Window` scene should use the principal behavior for full screen and Stage Manager: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +Window("Organizer", id: "organizer") { +OrganizerView() +} +.windowManagerRole(.principal) +} +} + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/windowinteractionbehavior + +- SwiftUI +- WindowInteractionBehavior + +Structure + +# WindowInteractionBehavior + +Options for enabling and disabling window interaction behaviors. + +struct WindowInteractionBehavior + +## Overview + +Use values of this type in conjunction with the following view and scene modifiers to adjust the supported functionality for the window: + +- `windowDismissBehavior(_:)` + +- `windowMinimizeBehavior(_:)` + +- `windowFullScreenBehavior(_:)` + +- `windowResizeBehavior(_:)` + +- `windowBackgroundDragBehavior(_:)` + +For example, you can create a custom “About” window which only allows for dismissal: + +struct MyApp: App { +var body: some Scene { +... +Window("About MyApp", id: "about") { +AboutView() +.windowMinimizeBehavior(.disabled) +.windowResizeBehavior(.disabled) +} +.windowResizability(.contentSize) +} +} + +## Topics + +### Type Properties + +`static let automatic: WindowInteractionBehavior` + +The automatic behavior. The associated window behavior will be enabled or disabled depending on the configuration of the enclosing `Scene`. + +`static let disabled: WindowInteractionBehavior` + +The disabled behavior. The associated window interaction behavior will be disabled. + +`static let enabled: WindowInteractionBehavior` + +The enabled behavior. The associated window interaction behavior will be enabled. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowdismissbehavior(_:) + +#app-main) + +- SwiftUI +- View +- windowDismissBehavior(\_:) + +Instance Method + +# windowDismissBehavior(\_:) + +Configures the dismiss functionality for the window enclosing `self`. + +nonisolated + +## Parameters + +`behavior` + +The dismiss behavior. + +## Discussion + +By default, the window dismiss functionality is determined by the scene, as well as any modifiers applied to it. + +You can use this modifier to override the default behavior. + +For example, you can create a welcome workflow window which disables the dismiss functionality: + +struct MyApp: App { +var body: some Scene { +... +Window("Welcome", id: "welcome") { +WelcomeView() +.windowDismissBehavior(.disabled) +} +} +} + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowfullscreenbehavior(_:) + +#app-main) + +- SwiftUI +- View +- windowFullScreenBehavior(\_:) + +Instance Method + +# windowFullScreenBehavior(\_:) + +Configures the full screen functionality for the window enclosing `self`. + +nonisolated + +## Parameters + +`behavior` + +The full screen behavior. + +## Discussion + +By default, the window full screen functionality is determined by the scene, as well as any modifiers applied to it. Additionally, when using the `windowResizability(_:)` modifier, the maximum size of the window’s contents will also determine whether a window can be made full screen. + +You can use this modifier to override the default behavior. + +For example, you can specify that a window cannot enter full screen mode: + +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +.windowFullScreenBehavior(.disabled) +} +} +} + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowminimizebehavior(_:) + +#app-main) + +- SwiftUI +- View +- windowMinimizeBehavior(\_:) + +Instance Method + +# windowMinimizeBehavior(\_:) + +Configures the minimize functionality for the window enclosing `self`. + +nonisolated + +## Parameters + +`behavior` + +The resize behavior. + +## Discussion + +On macOS, windows which support being minimized will move into the Dock when the minimize button is clicked, or the corresponding menu item is selected. + +By default, the window minimize functionality is determined by the scene, as well as any modifiers applied to it. + +You can use this modifier to override the default behavior. + +For example, you can create a custom “About” window which disables the minimize functionality: + +struct MyApp: App { +var body: some Scene { +... +Window("About MyApp", id: "about") { +AboutView() +.windowResizeBehavior(.disabled) +.windowMinimizeBehavior(.disabled) +} +.windowResizability(.contentSize) +} +} + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowresizebehavior(_:) + +#app-main) + +- SwiftUI +- View +- windowResizeBehavior(\_:) + +Instance Method + +# windowResizeBehavior(\_:) + +Configures the resize functionality for the window enclosing `self`. + +nonisolated + +## Parameters + +`behavior` + +The resize behavior. + +## Discussion + +By default, the window resizability functionality is determined by the scene, as well as any modifiers applied to it. Additionally, when using the `windowResizability(_:)` modifier, the minimum and maximum size of the window’s contents will also determine the resizability behavior. + +You can use this modifier to override the default behavior. + +For example, you can create a custom “About” window which only allows for dismissal: + +struct MyApp: App { +var body: some Scene { +... +Window("About MyApp", id: "about") { +AboutView() +.windowResizeBehavior(.disabled) +.windowMinimizeBehavior(.disabled) +} +.windowResizability(.contentSize) +} +} + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the behavior of dragging a window by its background. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowbackgrounddragbehavior(_:) + +#app-main) + +- SwiftUI +- Scene +- windowBackgroundDragBehavior(\_:) + +Instance Method + +# windowBackgroundDragBehavior(\_:) + +Configures the behavior of dragging a window by its background. + +nonisolated + +## Parameters + +`behavior` + +The behavior of dragging the modified window by its background. + +## Return Value + +A scene configured with the specified behavior of dragging it by its background background. + +## Discussion + +By default, or when you apply the `automatic` behavior, the system will determine the best suitable behavior based on the configuration of the modified scene. + +You can use this modifier to override the default behavior. For example, to always enable dragging a window by its background: + +struct MyApp: App { +var body: some Scene { +Window("About MyApp", id: "about") { +AboutView() +} +.windowBackgroundDragBehavior(.enabled) +} +} + +If you want to let your users drag your window by a specific view instead of (or in addition to) letting them drag it by its background, use `WindowDragGesture`. + +Applying the `enabled` behavior is equivalent to adding a `WindowDragGesture` to the window’s background view. + +## See Also + +### Managing window behavior + +`struct WindowManagerRole` + +Options for defining how a scene’s windows behave when used within a managed window context, such as full screen mode and Stage Manager. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +`struct WindowInteractionBehavior` + +Options for enabling and disabling window interaction behaviors. + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +--- + +# https://developer.apple.com/documentation/swiftui/view/onvolumeviewpointchange(updatestrategy:initial:_:) + +#app-main) + +- SwiftUI +- View +- onVolumeViewpointChange(updateStrategy:initial:\_:) + +Instance Method + +# onVolumeViewpointChange(updateStrategy:initial:\_:) + +Adds an action to perform when the viewpoint of the volume changes. + +@MainActor @preconcurrency +func onVolumeViewpointChange( +updateStrategy: VolumeViewpointUpdateStrategy = .supported, +initial: Bool = true, + +## Parameters + +`updateStrategy` + +Whether the action should be run for all viewpoint changes or only for supported viewpoint changes. + +`initial` + +Whether the action should be run when this view initially appears. + +`action` + +A closure to run when the viewpoint changes. The closure is also run when the volume is first opened if `initial` is `true`. + +## Discussion + +Use the provided `Viewpoint3D` to update the content of the volume: + +struct RobotContentView: View { +@State var robotRotation: Rotation3D = .identity + +var body: some View { +Model3D(named: "robot") +.onVolumeViewpointChange { _, newValue in +robotRotation = Rotation3D.slerp( +from: robotRotation, +to: newValue.squareAzimuth.orientation, +t: 1.0, +along: .shortest +) +} +.rotation3DEffect(robotRotation) +.animation(.easeInOut, value: robotRotation) +} +} + +By default, the action will only be run when the new viewpoint is equivalent to one of the values provided through `supportedVolumeViewpoints(_:)`. The viewpoint will be equivalent to where the window bar and ornaments are presented for a volume. Providing `.all` for the `updateStrategy` argument will result in the action being called without regard to the supported viewpoints. + +To determine if the volume is being viewed from an unsupported viewpoint, provide `.all` for the `updateStrategy` argument and check if the viewpoint is not within the supported viewpoints: + +struct ContentView: View { +@State var showingMoveToFrontSign = false +@State var moveToFrontSignViewpoint: Viewpoint3D = .standard + +let supportedViewpoints = [SquareAzimuth.front] + +var body: some View { +MoveToFrontSignView(viewpoint: moveToFrontSignViewpoint) +.opacity(showingMoveToFrontSign ? 1.0 : 0.0) +.animation(.easeInOut, value: showingMoveToFrontSign) +.onVolumeViewpointChange(updateStrategy: .all) +{ _, newValue in + +moveToFrontSignViewpoint = newViewpoint + +let isSupported = supportedViewpoints.contains( +newViewpoint.squareAzimuth) +showingMoveToFrontSign = !isSupported +} +.supportedVolumeViewpoints(supportedViewpoints) +} +} + +The old and new `Viewpoint3D` provided to the action are relative to the center of the volume. + +Reading this value is only valid inside a `View` that inherits the environment of a `Scene` created with a `VolumetricWindowStyle`. + +## See Also + +### Interacting with volumes + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/view/supportedvolumeviewpoints(_:) + +#app-main) + +- SwiftUI +- View +- supportedVolumeViewpoints(\_:) + +Instance Method + +# supportedVolumeViewpoints(\_:) + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +nonisolated + +## Discussion + +This defaults to all viewpoints and determines which viewpoints the window bar and ornaments will ‘follow’ the user to as they move around the volume. + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/volumeviewpointupdatestrategy + +- SwiftUI +- VolumeViewpointUpdateStrategy + +Structure + +# VolumeViewpointUpdateStrategy + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +struct VolumeViewpointUpdateStrategy + +## Topics + +### Type Properties + +`static let all: VolumeViewpointUpdateStrategy` + +The action should be run for all viewpoint changes. + +`static let supported: VolumeViewpointUpdateStrategy` + +The action should only be run when the new viewpoint is equivalent to one of the values provided through `supportedVolumeViewpoints(_:)`. + +## Relationships + +### Conforms To + +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/viewpoint3d + +- SwiftUI +- Viewpoint3D + +Structure + +# Viewpoint3D + +A type describing what direction something is being viewed from. + +struct Viewpoint3D + +## Topics + +### Instance Properties + +`var squareAzimuth: SquareAzimuth` + +A value describing what direction something is being viewed from along the horizontal plane. + +### Type Properties + +`static let standard: Viewpoint3D` + +A value that represents being viewed from the front middle. + +## Relationships + +### Conforms To + +- `CustomDebugStringConvertible` +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/squareazimuth + +- SwiftUI +- SquareAzimuth + +Enumeration + +# SquareAzimuth + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +@frozen +enum SquareAzimuth + +## Topics + +### Structures + +`struct Set` + +### Enumeration Cases + +`case back` + +Has an orientation with an horizontal angle equal to `180°` + +`case front` + +Has an orientation with an horizontal angle equal to `0°`. + +`case left` + +Has an orientation with an horizontal angle equal to `270°`. + +`case right` + +Has an orientation with an horizontal angle equal to `90°`. + +### Initializers + +`init(closestToAzimuth: Angle)` + +Creates a `SquareAzimuth` case with an orientation that has a horizontal angle closest to the provided azimuth. + +### Instance Properties + +`var orientation: Rotation3D` + +A 3D rotation that is snapped to the center of one of the four sides. + +## Relationships + +### Conforms To + +- `BitwiseCopyable` +- `CaseIterable` +- `Copyable` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/worldalignmentbehavior + +- SwiftUI +- WorldAlignmentBehavior + +Structure + +# WorldAlignmentBehavior + +A type representing the world alignment behavior for a scene. + +struct WorldAlignmentBehavior + +## Overview + +A value of this type can be provided to the `volumeWorldAlignment(_:)` scene modifier to control the world alignment volumes should maintain as they are repositioned. The default value is `automatic`. + +## Topics + +### Type Properties + +`static var adaptive: WorldAlignmentBehavior` + +When lifted above eye level, the volume will tilt so the front remains fully visible. + +`static var automatic: WorldAlignmentBehavior` + +The world alignment behavior that is standard for the system. + +`static var gravityAligned: WorldAlignmentBehavior` + +The volume will not tilt so as to remain aligned with gravity. + +## Relationships + +### Conforms To + +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/scene/volumeworldalignment(_:) + +#app-main) + +- SwiftUI +- Scene +- volumeWorldAlignment(\_:) + +Instance Method + +# volumeWorldAlignment(\_:) + +Specifies how a volume should be aligned when moved in the world. + +nonisolated + +## Discussion + +For example, you can create a volume that remains parallel to the floor even when lifted up high above eye level by applying a `gravityAligned` alignment to the scene: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.windowStyle(.volumetric) +.volumeWorldAlignment(.gravityAligned) +} +} + +The default value if you don’t apply the modifier is `automatic`. With that strategy, volumes will tilt themselves so the front remains fully visible while being repositioned. + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/worldscalingbehavior + +- SwiftUI +- WorldScalingBehavior + +Structure + +# WorldScalingBehavior + +Specifies the scaling behavior a window should have within the world. + +struct WorldScalingBehavior + +## Overview + +By default, a regular `WindowGroup` uses a scaling behavior of `dynamic`, and a window with `volumetric` has a fixed scale. + +Dynamic scale means the window will scale larger as it moves further away, maintaining the same angular size. Fixed scale means the window will keep its physical size in the world. + +For further information, see Spatial layout in the Human Interface Guidelines. + +## Topics + +### Type Properties + +`static var automatic: WorldScalingBehavior` + +The scaling behavior that is standard for the window’s style. + +`static var dynamic: WorldScalingBehavior` + +The window will scale up as it moves further away, maintaining the same angular size. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultworldscaling(_:) + +#app-main) + +- SwiftUI +- Scene +- defaultWorldScaling(\_:) + +Instance Method + +# defaultWorldScaling(\_:) + +Specify the world scaling behavior for the window. + +nonisolated + +## Discussion + +By default, regular windows increase their physical size as they move further away, ensuring they remain at the same angular size. This preserves legibility and ease of use for text and controls. Volumes render with a fixed physical size, because they are most commonly used for 3D content which is meant to behave with greater physical accuracy. + +This modifier overrides the physical scaling behavior for volumes, so they scale like windows while still maintaining other volumetric behaviors. + +This modifier has no effect on immersive spaces or windows without a window style of `volumetric`. + +@main +struct SampleApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.windowStyle(.volumetric) +.defaultWorldScaling(.dynamic) +} +} + +For further information, see Spatial layout in the Human Interface Guidelines. + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/worldscalingcompensation + +- SwiftUI +- WorldScalingCompensation + +Structure + +# WorldScalingCompensation + +Indicates whether returned metrics will take dynamic scaling into account. + +struct WorldScalingCompensation + +## Overview + +On visionOS, a window scene or a volume scene with the `defaultWorldScaling(_:)` modifier may scale dynamically when the user repositions it. In those cases, the metrics returned by a `PhysicalMetric` or `PhysicalMetricsConverter` value may or may not correspond to the units of a `RealityView`. + +World scale compensation lets you specify if this scaling is taken into account. If the values are `unscaled`, they will correspond to the physical metrics of the user’s surroundings, regardless of dynamic scale. If `scaled`, they will be scaled appropriately for the scene, which means they will match the default coordinate system of a `RealityView` in that scene. + +## Topics + +### Type Properties + +`static let scaled: WorldScalingCompensation` + +Returns metrics that are scaled appropriately to match the coordinate system of their scene, including any world scaling behavior. + +`static let unscaled: WorldScalingCompensation` + +Returns metrics that match the scale of the user’s surroundings, regardless of the world scaling behavior of their scene. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/worldtrackinglimitations + +- SwiftUI +- EnvironmentValues +- worldTrackingLimitations + +Instance Property + +# worldTrackingLimitations + +The current limitations of the device tracking the user’s surroundings. + +## Discussion + +Read this environment value from within a view to obtain the current limitations of the device tracking the user’s surroundings. The device’s capabilities may be limited due to physical circumstances such as the lighting. If any of the limitations occur due to changing circumstances, the set is updated accordingly. For example, the following `Text` view automatically updates when the world tracking limitations change: + +@Environment(\.worldTrackingLimitations) +private var worldTrackingLimitations + +var body: some View { +Text("Can track translation?" + worldTrackingLimitations +.contains(.translation) ? "No" : "Yes") +} + +When the device’s world tracking capabilities are limited, don’t prevent the user from experiencing your app entirely. Instead, try to adapt the user experience to the current circumstances in order to provide a meaningful experience at all times. + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/worldtrackinglimitation + +- SwiftUI +- WorldTrackingLimitation + +Structure + +# WorldTrackingLimitation + +A structure to represent limitations of tracking the user’s surroundings. + +struct WorldTrackingLimitation + +## Overview + +You receive a set of world tracking limitations when you read the `worldTrackingLimitations` environment value. The value tells you which limitations the device currently is facing. If any of the limitations occur due to changing circumstances, e.g., the lighting, the set is updated accordingly. For example, the following `Text` view automatically updates when the world tracking limitations change: + +@Environment(\.worldTrackingLimitations) +private var worldTrackingLimitations + +var body: some View { +Text("Can track translation?" + worldTrackingLimitations +.contains(.translation) ? "No" : "Yes") +} + +## Topics + +### Type Properties + +`static let orientation: WorldTrackingLimitation` + +The device capabilities of tracking orientation changes in all dimensions are currently limited. + +`static let translation: WorldTrackingLimitation` + +The device capabilities of tracking translation changes in all dimensions are currently limited. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct SurfaceSnappingInfo` + +A type representing information about the window scenes snap state. + +Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/surfacesnappinginfo + +- SwiftUI +- SurfaceSnappingInfo Beta + +Structure + +# SurfaceSnappingInfo + +A type representing information about the window scenes snap state. + +struct SurfaceSnappingInfo + +## Overview + +Use the provided `SurfaceSnappingInfo` to modify the contents of your view. + +struct LightFixtureView: View { +@Environment(\.surfaceSnappingInfo) +var snappingInfo: SurfaceSnappingInfo + +var body: some View { +if snappingInfo.isSnapped { +switch SurfaceSnappingInfo.authorizationStatus { +case .authorized: +switch snappingInfo.classification { +case .table: +LampView() +case .floor: +FloorLampView() +default: +DefaultLampView() +} +default: +DefaultLampView() +} +} else { +FloatingOrbLampView() +} +} +} + +The bottom of volumes may snap to horizontal surfaces and the back of windows may snap to vertical surfaces. + +## Topics + +### Instance Properties + +`var classification: SurfaceClassification?` + +A type that provides information about the surface classification the scene is snapped to. This property only has a value if the scene is snapped and `authorizationStatus` is `.authorized`. + +`var isSnapped: Bool` + +A value that represents whether the scene is currently snapped to a physical surface or not. + +### Type Properties + +`static var authorizationStatus: SurfaceSnappingInfo.AuthorizationStatus` + +A value that represents whether the user has authorized providing more detailed information about the surface scenes are snapped to. To request this detailed surface information, in your `Info.plist` file, set `UIWantsDetailedSurfaceInfo` to `YES` and set `NSWorldSensingUsageDescription` to provide a description of why your app is requesting this information. + +### Enumerations + +`enum AuthorizationStatus` + +A type representing whether the user has granted permissions to provide more detailed information about the surface a scene is snapped to. + +## Relationships + +### Conforms To + +- `CustomDebugStringConvertible` +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Interacting with volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +`struct VolumeViewpointUpdateStrategy` + +A type describing when the action provided to `onVolumeViewpointChange(updateStrategy:initial:_:)` should be called. + +`struct Viewpoint3D` + +A type describing what direction something is being viewed from. + +`enum SquareAzimuth` + +A type describing what direction something is being viewed from along the horizontal plane and snapped to 4 directions. + +`struct WorldAlignmentBehavior` + +A type representing the world alignment behavior for a scene. + +Specifies how a volume should be aligned when moved in the world. + +`struct WorldScalingBehavior` + +Specifies the scaling behavior a window should have within the world. + +Specify the world scaling behavior for the window. + +`struct WorldScalingCompensation` + +Indicates whether returned metrics will take dynamic scaling into account. + +The current limitations of the device tracking the user’s surroundings. + +`struct WorldTrackingLimitation` + +A structure to represent limitations of tracking the user’s surroundings. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/controlactivestate + +- SwiftUI +- ControlActiveState Deprecated + +Enumeration + +# ControlActiveState + +The active appearance expected of controls in a window. + +macOS 10.15–26.0Deprecated + +enum ControlActiveState + +## Overview + +`ControlActiveState` and `EnvironmentValues.controlActiveState` are deprecated, use `EnvironmentValues.appearsActive` instead. + +## Topics + +### Getting control active states + +`case key` + +`case active` + +`case inactive` + +## Relationships + +### Conforms To + +- `CaseIterable` +- `Copyable` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +--- + +# https://developer.apple.com/documentation/swiftui/windowgroup), + + + +--- + +# https://developer.apple.com/documentation/swiftui/window) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultposition(_:)). + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/presentedwindowstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/customizing-window-styles-and-state-restoration-behavior-in-macos) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/bringing_multiple_windows_to_your_swiftui_app) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/windowgroup) + + + +--- + +# https://developer.apple.com/documentation/swiftui/utilitywindow) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowstyle) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarlabelstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowtoolbarlabelstyle(fixed:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/windowtoolbarstyle) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/supportsmultiplewindows) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/openwindow) + + + +--- + +# https://developer.apple.com/documentation/swiftui/openwindowaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/pushwindowaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismisswindow) + + + +--- + +# https://developer.apple.com/documentation/swiftui/dismisswindowaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismiss) + + + +--- + +# https://developer.apple.com/documentation/swiftui/dismissaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/dismissbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:depth:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(_:in:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultsize(width:height:depth:in:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowresizability(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowresizability) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowidealsize(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowidealsize) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultposition(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowlevel) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowlevel(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowlayoutroot) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultwindowplacement(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowidealplacement(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowplacementcontext) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowproxy) + + + +--- + +# https://developer.apple.com/documentation/swiftui/displayproxy) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowvisibilitytoggle) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultlaunchbehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/restorationbehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scenelaunchbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scenerestorationbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/persistentsystemoverlays(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowtoolbarfullscreenvisibility(_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/windowtoolbarfullscreenvisibility) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowmanagerrole) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowmanagerrole(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/windowinteractionbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowdismissbehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowfullscreenbehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowminimizebehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowresizebehavior(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/windowbackgrounddragbehavior(_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/onvolumeviewpointchange(updatestrategy:initial:_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/supportedvolumeviewpoints(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/volumeviewpointupdatestrategy) + + + +--- + +# https://developer.apple.com/documentation/swiftui/viewpoint3d) + + + +--- + +# https://developer.apple.com/documentation/swiftui/squareazimuth) + + + +--- + +# https://developer.apple.com/documentation/swiftui/worldalignmentbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/volumeworldalignment(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/worldscalingbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/defaultworldscaling(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/worldscalingcompensation) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/worldtrackinglimitations) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/worldtrackinglimitation) + + + +--- + +# https://developer.apple.com/documentation/swiftui/surfacesnappinginfo) + + + +--- + +# https://developer.apple.com/documentation/swiftui/controlactivestate) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitview + +- SwiftUI +- NavigationSplitView + +Structure + +# NavigationSplitView + +A view that presents views in two or three columns, where selections in leading columns control presentations in subsequent columns. + +## Mentioned in + +Migrating to new navigation types + +Adding a search interface to your app + +## Overview + +You create a navigation split view with two or three columns, and typically use it as the root view in a `Scene`. People choose one or more items in a leading column to display details about those items in subsequent columns. + +To create a two-column navigation split view, use the `init(sidebar:detail:)` initializer: + +var body: some View { +NavigationSplitView { +List(model.employees, selection: $employeeIds) { employee in +Text(employee.name) +} +} detail: { +EmployeeDetails(for: employeeIds) +} +} + +In the above example, the navigation split view coordinates with the `List` in its first column, so that when people make a selection, the detail view updates accordingly. Programmatic changes that you make to the selection property also affect both the list appearance and the presented detail view. + +To create a three-column view, use the `init(sidebar:content:detail:)` initializer. The selection in the first column affects the second, and the selection in the second column affects the third. For example, you can show a list of departments, the list of employees in the selected department, and the details about all of the selected employees: + +@State private var departmentId: Department.ID? // Single selection. + +var body: some View { +NavigationSplitView { +List(model.departments, selection: $departmentId) { department in +Text(department.name) +} +} content: { +if let department = model.department(id: departmentId) { +List(department.employees, selection: $employeeIds) { employee in +Text(employee.name) +} +} else { +Text("Select a department") +} +} detail: { +EmployeeDetails(for: employeeIds) +} +} + +You can also embed a `NavigationStack` in a column. Tapping or clicking a `NavigationLink` that appears in an earlier column sets the view that the stack displays over its root view. Activating a link in the same column adds a view to the stack. Either way, the link must present a data type for which the stack has a corresponding `navigationDestination(for:destination:)` modifier. + +On watchOS and tvOS, and with narrow sizes like on iPhone or on iPad in Slide Over, the navigation split view collapses all of its columns into a stack, and shows the last column that displays useful information. For example, the three-column example above shows the list of departments to start, the employees in the department after someone selects a department, and the employee details when someone selects an employee. For rows in a list that have `NavigationLink` instances, the list draws disclosure chevrons while in the collapsed state. + +### Control column visibility + +You can programmatically control the visibility of navigation split view columns by creating a `State` value of type `NavigationSplitViewVisibility`. Then pass a `Binding` to that state to the appropriate initializer — such as `init(columnVisibility:sidebar:detail:)` for two columns, or the `init(columnVisibility:sidebar:content:detail:)` for three columns. + +The following code updates the first example above to always hide the first column when the view appears: + +@State private var columnVisibility = +NavigationSplitViewVisibility.detailOnly + +var body: some View { +NavigationSplitView(columnVisibility: $columnVisibility) { +List(model.employees, selection: $employeeIds) { employee in +Text(employee.name) +} +} detail: { +EmployeeDetails(for: employeeIds) +} +} + +The split view ignores the visibility control when it collapses its columns into a stack. + +### Collapsed split views + +At narrow size classes, such as on iPhone or Apple Watch, a navigation split view collapses into a single stack. Typically SwiftUI automatically chooses the view to show on top of this single stack, based on the content of the split view’s columns. + +For custom navigation experiences, you can provide more information to help SwiftUI choose the right column. Create a `State` value of type `NavigationSplitViewColumn`. Then pass a `Binding` to that state to the appropriate initializer, such as `init(preferredCompactColumn:sidebar:detail:)` or `init(preferredCompactColumn:sidebar:content:detail:)`. + +The following code shows the blue detail view when run on iPhone. When the person using the app taps the back button, they’ll see the yellow view. The value of `preferredPreferredCompactColumn` will change from `.detail` to `.sidebar`: + +@State private var preferredColumn = +NavigationSplitViewColumn.detail + +var body: some View { +NavigationSplitView(preferredCompactColumn: $preferredColumn) { +Color.yellow +} detail: { +Color.blue +} +} + +### Customize a split view + +To specify a preferred column width in a navigation split view, use the `navigationSplitViewColumnWidth(_:)` modifier. To set minimum, maximum, and ideal sizes for a column, use `navigationSplitViewColumnWidth(min:ideal:max:)`. You can specify a different modifier in each column. The navigation split view does its best to accommodate the preferences that you specify, but might make adjustments based on other constraints. + +To specify how columns in a navigation split view interact, use the `navigationSplitViewStyle(_:)` modifier with a `NavigationSplitViewStyle` value. For example, you can specify whether to emphasize the detail column or to give all of the columns equal prominence. + +On some platforms, `NavigationSplitView` adds a `sidebarToggle` toolbar item. Use the `toolbar(removing:)` modifier to remove the default item. + +## Topics + +### Creating a navigation split view + +Creates a two-column navigation split view. + +Creates a three-column navigation split view. + +### Hiding columns in a navigation split view + +Creates a two-column navigation split view that enables programmatic control of the sidebar’s visibility. + +Creates a three-column navigation split view that enables programmatic control of leading columns’ visibility. + +### Specifying a preferred compact column + +Creates a two-column navigation split view that enables programmatic control over which column appears on top when the view collapses into a single column in narrow sizes. + +Creates a three-column navigation split view that enables programmatic control over which column appears on top when the view collapses into a single column in narrow sizes. + +### Specifying a preferred compact column and column visibility + +Creates a two-column navigation split view that enables programmatic control of the sidebar’s visibility in regular sizes and which column appears on top when the view collapses into a single column in narrow sizes. + +Creates a three-column navigation split view that enables programmatic control of leading columns’ visibility in regular sizes and which column appears on top when the view collapses into a single column in narrow sizes. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Presenting views in columns + +Bringing robust navigation structure to your SwiftUI app + +Use navigation links, stacks, destinations, and paths to provide a streamlined experience for all platforms, as well as behaviors such as deep linking and state restoration. + +Improve navigation behavior in your app by replacing navigation views with navigation stacks and navigation split views. + +Sets the style for navigation split views within this view. + +Sets a fixed, preferred width for the column containing this view. + +Sets a flexible, preferred width for the column containing this view. + +`struct NavigationSplitViewVisibility` + +The visibility of the leading columns in a navigation split view. + +`struct NavigationLink` + +A view that controls a navigation presentation. + +--- + +# https://developer.apple.com/documentation/swiftui/image + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/backgroundextensioneffect() + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-applying-a-background-extension-effect + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-extending-horizontal-scrolling-under-a-sidebar-or-inspector + +- SwiftUI +- Landmarks: Building an app with Liquid Glass +- Landmarks: Extending horizontal scrolling under a sidebar or inspector Beta + +Sample Code + +# Landmarks: Extending horizontal scrolling under a sidebar or inspector + +Improve your horizontal scrollbar’s appearance by extending it under a sidebar or inspector. + +Download + +Xcode 26.0+Beta + +## Overview + +The Landmarks app lets people explore interesting sites around the world. Whether it’s a national park near their home or a far-flung location on a different continent, the app provides a way for people to organize and mark their adventures and receive custom activity badges along the way. + +This sample demonstrates how to extend horizontal scrolling under a sidebar or inspector. Within each continent section in `LandmarksView`, an instance of `LandmarkHorizontalListView` shows a horizontally scrolling list of landmark views. When open, the landmark views can scroll underneath the sidebar or inspector. + +## Configure the scroll view + +To achieve this effect, the sample configures the `LandmarkHorizontalListView` so it touches the leading and trailing edges. When a scroll view touches the sidebar or inspector, the system automatically adjusts it to scroll under the sidebar or inspector and then off the edge of the screen. + +The sample adds a `Spacer` at the beginning of the `ScrollView` to inset the content so it aligns with the title padding: + +ScrollView(.horizontal, showsIndicators: false) { +LazyHStack(spacing: Constants.standardPadding) { +Spacer() +.frame(width: Constants.standardPadding) +ForEach(landmarkList) { landmark in +//... +} +} +} + +## See Also + +### App features + +Landmarks: Applying a background extension effect + +Configure an image to blur and extend under a sidebar or inspector panel. + +Landmarks: Refining the system provided Liquid Glass effect in toolbars + +Organize toolbars into related groupings to improve their appearance and utility. + +Landmarks: Displaying custom activity badges + +Provide people with a way to mark their adventures by displaying animated custom activity badges. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-refining-the-system-provided-glass-effect-in-toolbars + +- SwiftUI +- Landmarks: Building an app with Liquid Glass +- Landmarks: Refining the system provided Liquid Glass effect in toolbars Beta + +Sample Code + +# Landmarks: Refining the system provided Liquid Glass effect in toolbars + +Organize toolbars into related groupings to improve their appearance and utility. + +Download + +Xcode 26.0+Beta + +## Overview + +The Landmarks app lets people explore interesting sites around the world. Whether it’s a national park near their home or a far-flung location on a different continent, the app provides a way for people to organize and mark their adventures and receive custom activity badges along the way. + +This sample demonstrates how to refine the system provided glass effect in toolbars. In `LandmarkDetailView`, the sample adds toolbar items for: + +- sharing a landmark + +- adding or removing a landmark from a list of Favorites + +- adding or removing a landmark from Collections + +- showing or hiding the inspector + +The system applies Liquid Glass to the toolbar items automatically. + +## Organize the toolbar items into logical groupings + +To organize the toolbar items into logical groupings, the sample adds `ToolbarSpacer` items and passes `fixed` as the `sizing` parameter to divide the toolbar into sections: + +.toolbar { +ToolbarSpacer(.flexible) + +ToolbarItem { +ShareLink(item: landmark, preview: landmark.sharePreview) +} + +ToolbarSpacer(.fixed) + +ToolbarItemGroup { +LandmarkFavoriteButton(landmark: landmark) +LandmarkCollectionsMenu(landmark: landmark) +} + +ToolbarItem { +Button("Info", systemImage: "info") { +modelData.selectedLandmark = landmark +modelData.isLandmarkInspectorPresented.toggle() +} +} +} + +## See Also + +### App features + +Landmarks: Applying a background extension effect + +Configure an image to blur and extend under a sidebar or inspector panel. + +Landmarks: Extending horizontal scrolling under a sidebar or inspector + +Improve your horizontal scrollbar’s appearance by extending it under a sidebar or inspector. + +Landmarks: Displaying custom activity badges + +Provide people with a way to mark their adventures by displaying animated custom activity badges. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffect(_:in:isenabled:) + +#app-main) + +- SwiftUI +- View +- glassEffect(\_:in:isEnabled:) Beta + +Instance Method + +# glassEffect(\_:in:isEnabled:) + +Applies the Liquid Glass effect to a view. + +nonisolated +func glassEffect( +_ glass: Glass = .regular, +in shape: some Shape = .capsule, +isEnabled: Bool = true + +## Mentioned in + +Applying Liquid Glass to custom views + +## Discussion + +When you use this effect, the system: + +- Renders a shape anchored behind a view with the Liquid Glass material. + +- Applies the foreground effects of Liquid Glass over a view. + +For example, to add this effect to a `Text`: + +Text("Hello, World!") +.font(.title) +.padding() +.glassEffect() + +SwiftUI uses the `regular` variant by default along with a `Capsule` shape. + +SwiftUI anchors the Liquid Glass to a view’s bounds. For the example above, the material fills the entirety of the `Text` frame, which includes the padding. + +You typically use this modifier with a `GlassEffectContainer` to combine multiple Liquid Glass shapes into a single shape that can morph into one another. + +## See Also + +### Styling views with Liquid Glass + +Configure, combine, and morph views using Liquid Glass effects. + +Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +Returns a copy of the structure configured to be interactive. + +Beta + +`struct GlassEffectContainer` + +A view that combines multiple Liquid Glass shapes into a single shape that can morph individual shapes into one another. + +`struct GlassEffectTransition` + +A structure that describes changes to apply when a glass effect is added or removed from the view hierarchy. + +`struct GlassButtonStyle` + +A button style that applies glass border artwork based on the button’s context. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/glasseffectcontainer + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffectid(_:in:) + +#app-main) + +- SwiftUI +- View +- glassEffectID(\_:in:) Beta + +Instance Method + +# glassEffectID(\_:in:) + +Associates an identity value to Liquid Glass effects defined within this view. + +nonisolated +func glassEffectID( +_ id: (some Hashable & Sendable)?, +in namespace: Namespace.ID + +## Mentioned in + +Applying Liquid Glass to custom views + +## Discussion + +You use this modifier with the `glassEffect(_:in:isEnabled:)` view modifier and a `GlassEffectContainer` view. When used together, SwiftUI uses the identifier to animate shapes to and from each other during transitions. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-displaying-custom-activity-badges + + + +--- + +# https://developer.apple.com/documentation/swiftui/applying-liquid-glass-to-custom-views + +- SwiftUI +- View styles +- Applying Liquid Glass to custom views + +Article + +# Applying Liquid Glass to custom views + +Configure, combine, and morph views using Liquid Glass effects. + +## Overview + +Interfaces across Apple platforms feature a new dynamic material called Liquid Glass, which combines the optical properties of glass with a sense of fluidity. Liquid Glass is a material that blurs content behind it, reflects color and light of surrounding content, and reacts to touch and pointer interactions in real time. Standard components in SwiftUI use Liquid Glass. Adopt Liquid Glass on custom components to move, combine, and morph them into one another with unique animations and transitions. + +To learn about Liquid Glass and more, see Landmarks: Building an app with Liquid Glass. + +## Apply and configure Liquid Glass effects + +Use the `glassEffect(_:in:isEnabled:)` modifier to add Liquid Glass effects to a view. By default, the modifier uses the `regular` variant of `Glass` and applies the given effect within a `Capsule` shape behind the view’s content. + +Configure the effect to customize your components in a variety of ways: + +- Use different shapes to have a consistent look and feel across custom components in your app. For example, use a rounded rectangle if you’re applying the effect to larger components that would look odd as a `Capsule` or `Circle`. + +- Define a tint color to suggest prominence. + +- Add `interactive(_:)` to custom components to make them react to touch and pointer interactions. This applies the same responsive and fluid reactions that `glass` provides to standard buttons. + +In the examples below, observe how to apply Liquid Glass effects to a view, use an alternate shape with a specific corner radius, and create a tinted view that responds to interactivity: + +Video with custom controls. + +Content description: A video showing examples including a Text view with Liquid Glass effects applied, a Text view with a custom shape, corner radius effect, and Liquid Glass effects applied, and a Text view with an orange tint color effect that responds to interactivity, with Liquid Glass effects applied. + +Play + +Text("Hello, World!") +.font(.title) +.padding() +.glassEffect() + +Text("Hello, World!") +.font(.title) +.padding() +.glassEffect(in: .rect(cornerRadius: 16.0)) + +Text("Hello, World!") +.font(.title) +.padding() +.glassEffect(.regular.tint(.orange).interactive()) + +## Combine multiple views with Liquid Glass containers + +Use `GlassEffectContainer` when applying Liquid Glass effects on multiple views to achieve the best rendering performance. A container also allows views with Liquid Glass effects to blend their shapes together and to morph in and out of each other during transitions. Inside a container, each view with the `glassEffect(_:in:isEnabled:)` modifier renders with the effects behind it. + +Customize the spacing on the container to set layout spacing between views and to affect how the Liquid Glass effects behind views interact with one another. Views close to one another merge their effects into a single shape. The farther views are from each other, the sooner the shapes merge into each other. + +The `.glassEffect()` modifier captures the content to send to the container to render. Apply the `.glassEffect()` modifier after other modifiers that will affect the appearance of the view. + +In the example below, two images are placed close to each other and the Liquid Glass effects begin to blend their shapes together. This creates a fluid animation as components move around each other within a container: + +GlassEffectContainer(spacing: 40.0) { +HStack(spacing: 40.0) { +Image(systemName: "scribble.variable") +.frame(width: 80.0, height: 80.0) +.font(.system(size: 36)) +.glassEffect() + +Image(systemName: "eraser.fill") +.frame(width: 80.0, height: 80.0) +.font(.system(size: 36)) +.glassEffect() + +// An `offset` shows how Liquid Glass effects react to each other in a container. +// Use animations and components appearing and disappearing to obtain effects that look purposeful. +.offset(x: -40.0, y: 0.0) +} +} + +In some cases, you want the geometries of multiple views to contribute to a single Liquid Glass effect capsule, even when your content is at rest. Use the `glassEffectUnion(id:namespace:)` modifier to specify that a view contributes to a united effect with a particular ID. This combines all effects with a similar shape, Liquid Glass effect, and ID into a single shape with the applied Liquid Glass material. This is especially useful when creating views dynamically, or with views that live outside of an `HStack` or `VStack`. + +let symbolSet: [String] = ["cloud.bolt.rain.fill", "sun.rain.fill", "moon.stars.fill", "moon.fill"] + +GlassEffectContainer(spacing: 20.0) { +HStack(spacing: 20.0) { +ForEach(symbolSet.indices, id: \.self) { item in +Image(systemName: symbolSet[item]) +.frame(width: 80.0, height: 80.0) +.font(.system(size: 36)) +.glassEffect() +.glassEffectUnion(id: item < 2 ? "1" : "2", namespace: namespace) +} +} +} + +## Morph Liquid Glass effects during transitions + +Morphing effects occur during transitions between views with Liquid Glass effects. Add these transitions to views with effects in a container by using the `glassEffectID(_:in:)` modifier. + +Associate each Liquid Glass effect with a unique identifier within a namespace the `Namespace` property wrapper provides. These IDs ensure SwiftUI animates the same shapes correctly when a shape appears or disappears due to view hierarchy changes. SwiftUI uses the spacing provided to the effect container along with the geometry of the shapes themselves to determine appropriate shapes to morph into and out of. + +In the example below, the eraser image transitions into and out of the pencil image when the `isExpanded` variable changes. The `GlassEffectContainer` has a spacing value of `40.0`, and the `HStack` within it has a spacing of `40.0`. This morphs the eraser image into the pencil image when the eraser’s nearest edge is less than or equal to the container’s spacing. + +Content description: A video which shows two views, a scribble symbol on the left and a eraser symbol on the right, with Liquid Glass effects morphing in and out of each other as a button below them is pressed. + +@State private var isExpanded: Bool = false +@Namespace private var namespace + +var body: some View { +GlassEffectContainer(spacing: 40.0) { +HStack(spacing: 40.0) { +Image(systemName: "scribble.variable") +.frame(width: 80.0, height: 80.0) +.font(.system(size: 36)) +.glassEffect() +.glassEffectID("pencil", in: namespace) + +if isExpanded { +Image(systemName: "eraser.fill") +.frame(width: 80.0, height: 80.0) +.font(.system(size: 36)) +.glassEffect() +.glassEffectID("eraser", in: namespace) +} +} +} + +Button("Toggle") { +withAnimation { +isExpanded.toggle() +} +} +.buttonStyle(.glass) +} + +## See Also + +### Styling views with Liquid Glass + +Landmarks: Building an app with Liquid Glass + +Enhance your app experience with system-provided and custom Liquid Glass. + +Applies the Liquid Glass effect to a view. + +Beta + +Returns a copy of the structure configured to be interactive. + +`struct GlassEffectContainer` + +A view that combines multiple Liquid Glass shapes into a single shape that can morph individual shapes into one another. + +`struct GlassEffectTransition` + +A structure that describes changes to apply when a glass effect is added or removed from the view hierarchy. + +`struct GlassButtonStyle` + +A button style that applies glass border artwork based on the button’s context. + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/image) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/backgroundextensioneffect()) + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-applying-a-background-extension-effect). + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-extending-horizontal-scrolling-under-a-sidebar-or-inspector). + +.#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-refining-the-system-provided-glass-effect-in-toolbars). + +.#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffect(_:in:isenabled:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/glasseffectcontainer), + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffectid(_:in:)). + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-displaying-custom-activity-badges). + + + +--- + +# https://developer.apple.com/documentation/swiftui/applying-liquid-glass-to-custom-views). + +.#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-applying-a-background-extension-effect) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-extending-horizontal-scrolling-under-a-sidebar-or-inspector) + + + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-refining-the-system-provided-glass-effect-in-toolbars) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/landmarks-displaying-custom-activity-badges) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/uiapplicationdelegateadaptor + +- SwiftUI +- UIApplicationDelegateAdaptor + +Structure + +# UIApplicationDelegateAdaptor + +A property wrapper type that you use to create a UIKit app delegate. + +@MainActor @preconcurrency @propertyWrapper + +## Mentioned in + +Migrating to the SwiftUI life cycle + +## Overview + +To handle app delegate callbacks in an app that uses the SwiftUI life cycle, define a type that conforms to the `UIApplicationDelegate` protocol, and implement the delegate methods that you need. For example, you can implement the `application(_:didRegisterForRemoteNotificationsWithDeviceToken:)` method to handle remote notification registration: + +class MyAppDelegate: NSObject, UIApplicationDelegate, ObservableObject { +func application( +_ application: UIApplication, +didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data +) { +// Record the device token. +} +} + +Then use the `UIApplicationDelegateAdaptor` property wrapper inside your `App` declaration to tell SwiftUI about the delegate type: + +@main +struct MyApp: App { +@UIApplicationDelegateAdaptor private var appDelegate: MyAppDelegate + +var body: some Scene { ... } +} + +SwiftUI instantiates the delegate and calls the delegate’s methods in response to life cycle events. Define the delegate adaptor only in your `App` declaration, and only once for a given app. If you declare it more than once, SwiftUI generates a runtime error. + +If your app delegate conforms to the `ObservableObject` protocol, as in the example above, then SwiftUI puts the delegate it creates into the `Environment`. You can access the delegate from any scene or view in your app using the `EnvironmentObject` property wrapper: + +@EnvironmentObject private var appDelegate: MyAppDelegate + +This enables you to use the dollar sign ( `$`) prefix to get a binding to published properties that you declare in the delegate. For more information, see `projectedValue`. + +### Scene delegates + +Some iOS apps define a `UIWindowSceneDelegate` to handle scene-based events, like app shortcuts: + +class MySceneDelegate: NSObject, UIWindowSceneDelegate, ObservableObject { +func windowScene( +_ windowScene: UIWindowScene, +performActionFor shortcutItem: UIApplicationShortcutItem + +// Do something with the shortcut... + +return true +} +} + +You can provide this kind of delegate to a SwiftUI app by returning the scene delegate’s type from the `application(_:configurationForConnecting:options:)` method inside your app delegate: + +extension MyAppDelegate { +func application( +_ application: UIApplication, +configurationForConnecting connectingSceneSession: UISceneSession, +options: UIScene.ConnectionOptions + +let configuration = UISceneConfiguration( +name: nil, +sessionRole: connectingSceneSession.role) +if connectingSceneSession.role == .windowApplication { +configuration.delegateClass = MySceneDelegate.self +} +return configuration +} +} + +When you configure the `UISceneConfiguration` instance, you only need to indicate the delegate class, and not a scene class or storyboard. SwiftUI creates and manages the delegate instance, and sends it any relevant delegate callbacks. + +As with the app delegate, if you make your scene delegate an observable object, SwiftUI automatically puts it in the `Environment`, from where you can access it with the `EnvironmentObject` property wrapper, and create bindings to its published properties. + +## Topics + +### Creating a delegate adaptor + +`init(_:)` + +Creates a UIKit app delegate adaptor using an observable delegate. + +### Getting the delegate adaptor + +A projection of the observed object that provides bindings to its properties. + +`var wrappedValue: DelegateType` + +The underlying app delegate. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Targeting iOS and iPadOS + +`UILaunchScreen` + +The user interface to show while an app launches. + +`UILaunchScreens` + +The user interfaces to show while an app launches in response to different URL schemes. + +--- + +# https://developer.apple.com/documentation/swiftui/backyard-birds-sample + +- SwiftUI +- App organization +- Backyard Birds: Building an app with SwiftData and widgets + +Sample Code + +# Backyard Birds: Building an app with SwiftData and widgets + +Create an app with persistent data, interactive widgets, and an all new in-app purchase experience. + +Download + +Xcode 15.1+ + +## Overview + +Backyard Birds offers a rich environment in which you can watch the birds that visit your backyard garden. You can monitor their water and food supply to ensure they always have fresh water and plenty to eat, or upgrade the game using an in-app purchase to provide tastier food for the birds to eat. + +The sample implements its data model using SwiftData for persistence, and integrates seamlessly with SwiftUI using the `Observable` protocol. The game’s widgets implement App Intents for interactive and configurable widgets. The in-app purchase experience uses the `ProductView` and `SubscriptionStoreView` from StoreKit. + +You can access the source code for this sample on GitHub. + +### Configure the sample code project + +To configure the Backyard Birds app to run on your devices, follow these steps: + +1. Open the project in Xcode 15 or later. + +2. Edit the multiplatform target’s scheme, and on the Options tab, choose the `Store.storekit` file for StoreKit configuration. + +3. Repeat the previous step for the watchOS target’s scheme. + +4. Select the top-level Backyard Birds project. + +5. For all targets, choose your team from the Team menu in the Signing & Capabilities pane so Xcode can automatically manage your provisioning profile. + +### Create a data-driven app + +The app defines its data model by conforming the model objects to `PersistentModel` using the `Model` macro. Using the `Attribute` macro with the `unique` option ensures that the `id` property is unique. + +@Model public class BirdSpecies { +@Attribute(.unique) public var id: String +public var naturalScale: Double +public var isEarlyAccess: Bool +public var parts: [BirdPart] + +@Relationship(deleteRule: .cascade, inverse: \Bird.species) +public var birds: [Bird] = [] + +public var info: BirdSpeciesInfo { BirdSpeciesInfo(rawValue: id) } + +public init(info: BirdSpeciesInfo, naturalScale: Double = 1, isEarlyAccess: Bool = false, parts: [BirdPart]) { +self.id = info.rawValue +self.naturalScale = naturalScale +self.isEarlyAccess = isEarlyAccess +self.parts = parts +} +} + +### Construct interactive widgets + +Backyard Birds displays interactive widgets by presenting a `Button` to refill a backyard’s supplies when the water and food are running low. The app does this by placing a `Button` in the widget’s view, and passing a `ResupplyBackyardIntent` instance to the `init(intent:label:)` initializer: + +Button(intent: ResupplyBackyardIntent(backyard: BackyardEntity(from: snapshot.backyard))) { +Label("Refill Water", systemImage: "arrow.clockwise") +.foregroundStyle(.secondary) +.frame(maxWidth: .infinity) +.padding(.vertical, 8) +.padding(.horizontal, 12) +.background(.quaternary, in: .containerRelative) +} + +The app allows for configuration of the widget by implementing the `WidgetConfigurationIntent` protocol: + +struct BackyardWidgetIntent: WidgetConfigurationIntent { +static let title: LocalizedStringResource = "Backyard" +static let description = IntentDescription("Keep track of your backyards.") + +@Parameter(title: "Backyards", default: BackyardWidgetContent.all) +var backyards: BackyardWidgetContent + +@Parameter(title: "Backyard") +var specificBackyard: BackyardEntity? + +init(backyards: BackyardWidgetContent = .all, specificBackyard: BackyardEntity? = nil) { +self.backyards = backyards +self.specificBackyard = specificBackyard +} + +init() { +} + +static var parameterSummary: some ParameterSummary { +When(\.$backyards, .equalTo, BackyardWidgetContent.specific) { +Summary { +\.$backyards +\.$specificBackyard +} +} otherwise: { +Summary { +\.$backyards +} +} +} +} + +### Provide a new in-app purchase experience + +The sample app uses `ProductView` to display several different bird food upgrades available for purchase on a store shelf. To prominently feature an in-app purchase item, the app uses the `.productViewStyle(.large)` modifier: + +ProductView(id: product.id) { +BirdFoodProductIcon(birdFood: birdFood, quantity: product.quantity) +.bestBirdFoodValueBadge() +} +.padding(.vertical) +.background(.background.secondary, in: .rect(cornerRadius: 20)) +.productViewStyle(.large) + +The Backyard Birds Pass page displays renewable subscriptions using the `SubscriptionStoreView` view. The app uses the `PassMarketingContent` view as the content of the `SubscriptionStoreView`: + +SubscriptionStoreView( +groupID: passGroupID, +visibleRelationships: showPremiumUpgrade ? .upgrade : .all +) { +PassMarketingContent(showPremiumUpgrade: showPremiumUpgrade) +#if !os(watchOS) +.containerBackground(for: .subscriptionStoreFullHeight) { +SkyBackground() +} +#endif +} + +## See Also + +### Creating an app + +Destination Video + +Leverage SwiftUI to build an immersive media experience in a multiplatform app. + +Hello World + +Use windows, volumes, and immersive spaces to teach people about the Earth. + +Food Truck: Building a SwiftUI multiplatform app + +Create a single codebase and app target for Mac, iPad, and iPhone. + +Fruta: Building a Feature-Rich App with SwiftUI + +Create a shared codebase to build a multiplatform app that offers widgets and an App Clip. + +Migrating to the SwiftUI life cycle + +Use a scene-based life cycle in SwiftUI while keeping your existing codebase. + +`protocol App` + +A type that represents the structure and behavior of an app. + +--- + +# https://developer.apple.com/documentation/swiftui/food_truck_building_a_swiftui_multiplatform_app + +- SwiftUI +- Food Truck: Building a SwiftUI multiplatform app + +Sample Code + +# Food Truck: Building a SwiftUI multiplatform app + +Create a single codebase and app target for Mac, iPad, and iPhone. + +Download + +Xcode 14.3+ + +## Overview + +Using the Food Truck app, someone who operates a food truck can keep track of orders, discover the most-popular menu items, and check the weather at their destination. The sample implements the new `NavigationSplitView` to manage the app’s views, Layout modifiers to show the main interface and pending orders, Swift Charts to show trends, and `WeatherService` to get weather data. Food Truck also implements Live Activities to show the remaining order preparation time with ActivityKit on the lock screen, and with `DynamicIsland` on the home screen. + +You can access the source code for this sample on GitHub. + +The Food Truck sample project contains two types of app targets: + +- Simple app target you can build using personal team signing. This app runs in Simulator, and only requires a standard Apple ID to install on a device. It includes in-app purchase, and a widget extension that enable users to add a widget to their iOS Home Screen or the macOS Notification Center. + +- Full-featured Food Truck All app target. The full app runs in Simulator, and on devices with an Apple Developer membership. It also allows you to create and sign in with passkeys. + +### Configure the sample code project + +To configure the Food Truck app without an Apple Developer account, follow these steps: + +1. In the Food Truck target’s Signing & Capabilities panes click Add Account, and log in with your Apple ID. + +2. Chose Your Name (Personal Team) from the team menu for the Food Truck and Widgets targets. + +3. Build and run your app. + +To configure the Food Truck All app to run on your devices, follow these steps: + +1. Open the sample with Xcode 14.3 or later. + +2. Select the top-level Food Truck project. + +3. For all targets, choose your team from the Team menu in the Signing & Capabilities pane, so Xcode can automatically manage your provisioning profile. + +4. Add the Associated Domains capability, and specify your domain with the `webcredentials` service. For more information about the `webcredentials` service, see `Associated Domains Entitlement`. + +5. Ensure an `apple-app-site-association` (AASA) file is present on your domain, in the `.well-known` directory, and it contains an entry for this app’s App ID for the `webcredentials` service. For more information about the `apple-app-site-association` file, see Supporting associated domains. + +6. In the `AccountManager.swift` file, replace all occurrences of `example.com` with the name of your domain. + +### Create a multiplatform app + +Food Truck is a multiplatform app, and there are no separate targets to run on macOS or iOS. Instead, there is only one app target that builds for macOS, iPadOS, and iOS. + +### Define a default navigation destination + +The sample’s navigation interface consists of a `NavigationSplitView` with a `Sidebar` view, and a `NavigationStack`: + +NavigationSplitView { +Sidebar(selection: $selection) +} detail: { +NavigationStack(path: $path) { +DetailColumn(selection: $selection, model: model) +} +} + +At app launch, the sample presents the `TruckView` as the default view. The `Panel` enum encodes the views the user can select in the sidebar, and hence appear in the detail view. The value corresponding to `TruckView` is `.truck`, and the app sets this to be the default selection. + +@State private var selection: Panel? = Panel.truck + +### Construct a dynamic layout + +In the Truck view, the New Orders panel shows the five most-recent orders, and each order shows a `DonutStackView`, which is a diagonal stack of donut thumbnails. The Layout modifiers protocol allows the app to define a `DiagonalDonutStackLayout` that arranges the donut thumbnails into the diagonal layout. The layout’s `placeSubviews(in:proposal:subviews:cache:)` implementation calculates the donuts’ positions. + +for index in subviews.indices { +switch (index, subviews.count) { +case (_, 1): +subviews[index].place( +at: center, +anchor: .center, +proposal: ProposedViewSize(size) +) + +case (_, 2): +let direction = index == 0 ? -1.0 : 1.0 +let offsetX = minBound * direction * 0.15 +let offsetY = minBound * direction * 0.20 +subviews[index].place( +at: CGPoint(x: center.x + offsetX, y: center.y + offsetY), +anchor: .center, +proposal: ProposedViewSize(CGSize(width: size.width * 0.7, height: size.height * 0.7)) +) +case (1, 3): +subviews[index].place( +at: center, +anchor: .center, +proposal: ProposedViewSize(CGSize(width: size.width * 0.65, height: size.height * 0.65)) +) + +case (_, 3): +let direction = index == 0 ? -1.0 : 1.0 +let offsetX = minBound * direction * 0.15 +let offsetY = minBound * direction * 0.23 +subviews[index].place( +at: CGPoint(x: center.x + offsetX, y: center.y + offsetY), +anchor: .center, +proposal: ProposedViewSize(CGSize(width: size.width * 0.7, height: size.height * 0.65)) +) + +### Display a chart of popular items + +The sample contains several charts. The most popular items are shown on the `TopFiveDonutsView`. This chart is implemented in `TopDonutSalesChart`, which uses a `BarMark` to construct a bar chart. + +Chart { +ForEach(sortedSales) { sale in +BarMark( +x: .value("Donut", sale.donut.name), +y: .value("Sales", sale.sales) +) +.cornerRadius(6, style: .continuous) +.foregroundStyle(.linearGradient(colors: [Color("BarBottomColor"), .accentColor], startPoint: .bottom, endPoint: .top)) +.annotation(position: .top, alignment: .top) { +Text(sale.sales.formatted()) +.padding(.vertical, 4) +.padding(.horizontal, 8) +.background(.quaternary.opacity(0.5), in: Capsule()) +.background(in: Capsule()) +.font(.caption) +} +} +} + +The _x_ axis of the chart shows labels with the names and thumbnails of the items that correspond to each data point. + +.chartXAxis { +AxisMarks { value in +AxisValueLabel { +let donut = donutFromAxisValue(for: value) +VStack { +DonutView(donut: donut) +.frame(height: 35) + +Text(donut.name) +.lineLimit(2, reservesSpace: true) +.multilineTextAlignment(.center) +} +.frame(idealWidth: 80) +.padding(.horizontal, 4) + +} +} +} + +### Obtain a weather forecast + +The app shows a forecasted temperature graph in the Forecast panel in the Truck view. The app obtains this data from the WeatherKit framework. + +.task(id: city.id) { +for parkingSpot in city.parkingSpots { +do { +let weather = try await WeatherService.shared.weather(for: parkingSpot.location) +condition = weather.currentWeather.condition + +cloudCover = weather.currentWeather.cloudCover +temperature = weather.currentWeather.temperature +symbolName = weather.currentWeather.symbolName + +let attribution = try await WeatherService.shared.attribution +attributionLink = attribution.legalPageURL +attributionLogo = colorScheme == .light ? attribution.combinedMarkLightURL : attribution.combinedMarkDarkURL + +if willRainSoon == false { +spot = parkingSpot +break +} +} catch { +print("Could not gather weather information...", error.localizedDescription) +condition = .clear +willRainSoon = false +cloudCover = 0.15 +} +} +} + +### Configure the project for WeatherKit + +The data from the `WeatherService` instance in WeatherKit requires additional configuration for the Food Truck All target. If you don’t configure WeatherKit, the sample will detect an error and use static data in the project instead. + +1. Create a unique App ID on the Provisioning Portal, and select the WeatherKit service on the App Services tab. + +2. In Xcode, for the Food Truck All target on the Signing & Capabilities tab, change the bundle ID to be the same as the App ID from step 1, and add the WeatherKit capability. + +3. For the Widgets target on the Signing & Capabilities tab, change the bundle ID to make the part before `.Widgets` the same as the bundle ID for the Food Truck All target. + +4. Wait 30 minutes while the service registers your app’s bundle ID. + +5. Build and run the Food Truck All target. + +### Track preparation time with Live Activity + +The app allows the food truck operator to keep track of order preparation time, which is guaranteed to be 60 seconds or less. To facilitate this, the app implements a toolbar button on the order details screen for orders with `placed` status. Tapping this button changes the order status to `preparing`, and creates an `Activity` instance to start a Live Activity, which shows the countdown timer and order details on an iPhone lock screen. + +let timerSeconds = 60 +let activityAttributes = TruckActivityAttributes( +orderID: String(order.id.dropFirst(6)), +order: order.donuts.map(\.id), +sales: order.sales, +activityName: "Order preparation activity." +) + +let future = Date(timeIntervalSinceNow: Double(timerSeconds)) + +let initialContentState = TruckActivityAttributes.ContentState(timerRange: Date.now...future) + +let activityContent = ActivityContent(state: initialContentState, staleDate: Calendar.current.date(byAdding: .minute, value: 2, to: Date())!) + +do { + +pushType: nil) +print(" Requested MyActivity live activity. ID: \(myActivity.id)") +postNotification() +} catch let error { +print("Error requesting live activity: \(error.localizedDescription)") +} + +The app also implements `DynamicIsland` to show the same information as on the lock screen in the Dynamic Island on iPhone 14 Pro devices. + +DynamicIsland { +DynamicIslandExpandedRegion(.leading) { +ExpandedLeadingView() +} + +DynamicIslandExpandedRegion(.trailing, priority: 1) { +ExpandedTrailingView(orderNumber: context.attributes.orderID, timerInterval: context.state.timerRange) +.dynamicIsland(verticalPlacement: .belowIfTooWide) +} +} compactLeading: { +Image("IslandCompactIcon") +.padding(4) +.background(.indigo.gradient, in: ContainerRelativeShape()) + +} compactTrailing: { +Text(timerInterval: context.state.timerRange, countsDown: true) +.monospacedDigit() +.foregroundColor(Color("LightIndigo")) +.frame(width: 40) +} minimal: { +Image("IslandCompactIcon") +.padding(4) +.background(.indigo.gradient, in: ContainerRelativeShape()) +} +.contentMargins(.trailing, 32, for: .expanded) +.contentMargins([.leading, .top, .bottom], 6, for: .compactLeading) +.contentMargins(.all, 6, for: .minimal) +.widgetURL(URL(string: "foodtruck://order/\(context.attributes.orderID)")) + +Tapping the same button again changes the status to `complete`, and ends the Live Activity. This removes the Live Activity from the lock screen and from the Dynamic Island. + +Task { + +// Check if this is the activity associated with this order. +if activity.attributes.orderID == String(order.id.dropFirst(6)) { +await activity.end(nil, dismissalPolicy: .immediate) +} +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/migrating-to-the-swiftui-life-cycle + +- SwiftUI +- App organization +- Migrating to the SwiftUI life cycle + +Article + +# Migrating to the SwiftUI life cycle + +Use a scene-based life cycle in SwiftUI while keeping your existing codebase. + +## Overview + +Take advantage of the declarative syntax in SwiftUI and its compatibility with spatial frameworks by moving your app to the SwiftUI life cycle. + +Moving to the SwiftUI life cycle requires several steps, including changing your app’s entry point, configuring the launch of your app, and monitoring life-cycle changes with the methods that SwiftUI provides. + +### Change your app’s entry point + +The UIKit framework defines the `AppDelegate` file as the entry point of your app with the annotation `@main`. For more information on `@main`, see the Attributes section in The Swift Programming Language. To indicate the entry of a SwiftUI app, you’ll need to create a new file that defines your app’s structure. + +1. Open your project in Xcode. + +4. Add `import SwiftUI` at the top of the file. + +5. Annotate the app structure with the `@main` attribute to indicate the entry point of the SwiftUI app, as shown in the code snippet below. + +Use following code to create the SwiftUI app structure. To learn more about this structure, follow the tutorial in Exploring the structure of a SwiftUI app. + +import SwiftUI + +@main +struct MyExampleApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +} +} + +### Support app delegate methods + +To continue using methods in your app delegate, use the `UIApplicationDelegateAdaptor` property wrapper. To tell SwiftUI about a delegate that conforms to the `UIApplicationDelegate` protocol, place this property wrapper inside your `App` declaration: + +@main +struct MyExampleApp: App { +@UIApplicationDelegateAdaptor private var appDelegate: MyAppDelegate +var body: some Scene { ... } +} + +This example marks a custom app delegate named `MyAppDelegate` as the delegate adaptor. Be sure to implement any necessary delegate methods in that type. + +### Configure the launch of your app + +If you’re migrating an app that contains storyboards to SwiftUI, make sure to remove them when they’re no longer needed. + +2. Remove `Main.storyboard` from the project navigator. + +3. Choose your app’s target. + +4. Open the `Info.plist` file. + +5. Remove the `Main storyboard file base name` key. + +This figure shows the structure of the `Info.plist` file before removing these keys. + +The scene delegate continues to be called after removing the keys from the `Info.plist` file, so you can still handle other scene-based life cycle changes in this file. If you were previously launching your app in your scene delegate, remove the `scene(_:willConnectTo:options:)` method from your scene delegate. + +If you didn’t previously support scenes in your app and rely on your app delegate to respond to the launch of your app, ensure you’re no longer setting a root view controller in `application(_:didFinishLaunchingWithOptions:)`. Instead, return `true`. + +### Monitor life cycle changes + +You will no longer be able to monitor life-cycle changes in your app delegate due to the scene-based nature of SwiftUI (see `Scene`). Prefer to handle these changes in `ScenePhase`, the life cycle enumeration that SwiftUI provides to monitor the phases of a scene. Observe the `Environment` value to initiate actions when the phase changes. + +@Environment(\.scenePhase) private var scenePhase + +Interpret the value differently based on where you read it from. If you read the phase from inside a `View` instance, the value reflects the phase of the scene that contains the view. If you read the phase from within an `App` instance, the value reflects an aggregation of the phases of all of the scenes in your app. + +To handle scene-based events with a scene delegate, provide your scene delegate to your SwiftUI app inside your app delegate. For more information, see the “Scene delegates” section of `UIApplicationDelegateAdaptor`. + +For more information on handling scene-based life cycle events, see Managing your app’s life cycle. + +## See Also + +### Creating an app + +Destination Video + +Leverage SwiftUI to build an immersive media experience in a multiplatform app. + +Hello World + +Use windows, volumes, and immersive spaces to teach people about the Earth. + +Backyard Birds: Building an app with SwiftData and widgets + +Create an app with persistent data, interactive widgets, and an all new in-app purchase experience. + +Food Truck: Building a SwiftUI multiplatform app + +Create a single codebase and app target for Mac, iPad, and iPhone. + +Fruta: Building a Feature-Rich App with SwiftUI + +Create a shared codebase to build a multiplatform app that offers widgets and an App Clip. + +`protocol App` + +A type that represents the structure and behavior of an app. + +--- + +# https://developer.apple.com/documentation/swiftui/nsapplicationdelegateadaptor + +- SwiftUI +- NSApplicationDelegateAdaptor + +Structure + +# NSApplicationDelegateAdaptor + +A property wrapper type that you use to create an AppKit app delegate. + +@MainActor @preconcurrency @propertyWrapper + +## Mentioned in + +Migrating to the SwiftUI life cycle + +## Overview + +To handle app delegate callbacks in an app that uses the SwiftUI life cycle, define a type that conforms to the `NSApplicationDelegate` protocol, and implement the delegate methods that you need. For example, you can implement the `application(_:didRegisterForRemoteNotificationsWithDeviceToken:)` method to handle remote notification registration: + +class MyAppDelegate: NSObject, NSApplicationDelegate, ObservableObject { +func application( +_ application: NSApplication, +didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data +) { +// Record the device token. +} +} + +Then use the `NSApplicationDelegateAdaptor` property wrapper inside your `App` declaration to tell SwiftUI about the delegate type: + +@main +struct MyApp: App { +@NSApplicationDelegateAdaptor private var appDelegate: MyAppDelegate + +var body: some Scene { ... } +} + +SwiftUI instantiates the delegate and calls the delegate’s methods in response to life cycle events. Define the delegate adaptor only in your `App` declaration, and only once for a given app. If you declare it more than once, SwiftUI generates a runtime error. + +If your app delegate conforms to the `ObservableObject` protocol, as in the example above, then SwiftUI puts the delegate it creates into the `Environment`. You can access the delegate from any scene or view in your app using the `EnvironmentObject` property wrapper: + +@EnvironmentObject private var appDelegate: MyAppDelegate + +This enables you to use the dollar sign ( `$`) prefix to get a binding to published properties that you declare in the delegate. For more information, see `projectedValue`. + +## Topics + +### Creating a delegate adaptor + +`init(_:)` + +Creates an AppKit app delegate adaptor using an observable delegate. + +### Getting the delegate adaptor + +A projection of the observed object that provides bindings to its properties. + +`var wrappedValue: DelegateType` + +The underlying delegate. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +--- + +# https://developer.apple.com/documentation/swiftui/wkapplicationdelegateadaptor + +- SwiftUI +- WKApplicationDelegateAdaptor + +Structure + +# WKApplicationDelegateAdaptor + +A property wrapper that is used in `App` to provide a delegate from WatchKit. + +@MainActor @preconcurrency @propertyWrapper + +## Mentioned in + +Migrating to the SwiftUI life cycle + +## Topics + +### Creating a delegate adaptor + +`init(_:)` + +Creates an `WKApplicationDelegateAdaptor` using a WatchKit Application Delegate. + +### Getting the delegate adaptor + +A projection of the observed object that creates bindings to its properties using dynamic member lookup. + +`var wrappedValue: DelegateType` + +The underlying delegate. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Targeting watchOS + +`struct WKExtensionDelegateAdaptor` + +A property wrapper type that you use to create a WatchKit extension delegate. + +--- + +# https://developer.apple.com/documentation/swiftui/wkextensiondelegateadaptor + +- SwiftUI +- WKExtensionDelegateAdaptor + +Structure + +# WKExtensionDelegateAdaptor + +A property wrapper type that you use to create a WatchKit extension delegate. + +@MainActor @preconcurrency @propertyWrapper + +## Overview + +To handle extension delegate callbacks in an extension that uses the SwiftUI life cycle, define a type that conforms to the `WKExtensionDelegate` protocol, and implement the delegate methods that you need. For example, you can implement the `didRegisterForRemoteNotifications(withDeviceToken:)` method to handle remote notification registration: + +class MyExtensionDelegate: NSObject, WKExtensionDelegate, ObservableObject { +func didRegisterForRemoteNotifications(withDeviceToken: Data) { +// Record the device token. +} +} + +Then use the `WKExtensionDelegateAdaptor` property wrapper inside your `App` declaration to tell SwiftUI about the delegate type: + +@main +struct MyApp: App { +@WKExtensionDelegateAdaptor private var extensionDelegate: MyExtensionDelegate + +var body: some Scene { ... } +} + +SwiftUI instantiates the delegate and calls the delegate’s methods in response to life cycle events. Define the delegate adaptor only in your `App` declaration, and only once for a given extension. If you declare it more than once, SwiftUI generates a runtime error. + +If your extension delegate conforms to the `ObservableObject` protocol, as in the example above, then SwiftUI puts the delegate it creates into the `Environment`. You can access the delegate from any scene or view in your extension using the `EnvironmentObject` property wrapper: + +@EnvironmentObject private var extensionDelegate: MyExtensionDelegate + +This enables you to use the dollar sign ( `$`) prefix to get a binding to published properties that you declare in the delegate. For more information, see `projectedValue`. + +## Topics + +### Creating a delegate adaptor + +`init(_:)` + +Creates a WatchKit extension delegate adaptor using an observable delegate. + +### Getting the delegate adaptor + +A projection of the observed object that provides bindings to its properties. + +`var wrappedValue: DelegateType` + +The underlying delegate. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Targeting watchOS + +`struct WKApplicationDelegateAdaptor` + +A property wrapper that is used in `App` to provide a delegate from WatchKit. + +--- + +# https://developer.apple.com/documentation/swiftui/creating-a-tvos-media-catalog-app-in-swiftui + +- SwiftUI +- App organization +- Creating a tvOS media catalog app in SwiftUI + +Sample Code + +# Creating a tvOS media catalog app in SwiftUI + +Build standard content lockups and rows of content shelves for your tvOS app. + +Download + +Xcode 16.0+ + +## Overview + +This sample code project shows how to create the standard content lockups for tvOS, and provides best practices for building out rows of content shelves. It also includes examples for product pages, search views, and tab views, including the new sidebar adaptive tab view style that provides a sidebar in tvOS. + +The sample project contains the following examples: + +- `StackView` implements an example landing page for a content catalog app, defining several shelves with a showcase or hero header area above them. It also gives an example of an above- and below-the-fold switching animation. + +- `ButtonsView` provides a showcase of the various button styles available in tvOS. + +- `DescriptionView` provides an example of how to build a product page similar to those you see on the Apple TV app, with a custom material blur. + +- `SearchView` shows an example of a simple search page using the `searchable(text:placement:prompt:)` and `searchSuggestions(_:)` modifiers. + +- `SidebarContentView` shows how to make a sectioned sidebar using the new tab bar APIs in tvOS 18. + +- `HeroHeaderView` gives an example of creating a material gradient to blur content in a certain area, fading it into unblurred content. + +### Create content lockups + +The `borderless` button style provides the primary lockup style you use in tvOS, including all the focus interactions and hover effects. The button’s title and any nearby section titles automatically move out of the way of the button’s image as it scales up on focus. + +Provide a separate `Image` and `Text` view in the button’s label closure to ensure the correct vertical appearance. Using a `Label` usually results in a horizontal layout, and, depending on the current label style, may not give you the appearance you expect. + +Button { /* action */ } label: { +Image("discovery_portrait") +.resizable() +.frame(width: 250, height: 375) +Text("Borderless Portrait") +} + +By default, the button style locates the first `Image` within the button’s label and attaches a `highlight` hover effect to it, providing lift, a specular highlight, and gimbal motion effects. + +To ensure the hover effect applies to exactly the right view, you can manually attach it to a particular subview of the button’s label using the `hoverEffect(_:)` modifier. For instance, to ensure an SF Symbols image hovers along with its background, do the following: + +Button { /* action */ } label: { +Image(systemName: "person.circle") +.font(.title) +.background(Color.blue.grayscale(0.7)) +.hoverEffect(.highlight) +Text("Shaped") +} +.buttonBorderShape(.circle) + +You can also attach the hover effect to a custom view. + +Button { /* action */ } label: { +CodeSampleArtwork(size: .appIconSize) +.frame(width: 400, height: 240) +.hoverEffect(.highlight) +Text("Custom Icon View") +} + +### Show information-dense lockups + +For lockups with more dense information, consider using the `card` button style, which provides a platter and a more subtle motion effect on focus. Providing containers with padding as the button’s label gives you something similar to the search result lockups on the Apple TV app. + +Button { /* action */ } label: { +HStack(alignment: .top, spacing: 10) { +Image( . . . ) +.resizable() +.aspectRatio(contentMode: .fit) +.clipShape(RoundedRectangle(cornerRadius: 12)) + +VStack(alignment: .leading) { +Text(asset.title) +.font(.body) +Text("Subtitle text goes here, limited to two lines.") +.font(.caption2) +.foregroundStyle(.secondary) +.lineLimit(2) +Spacer(minLength: 0) +HStack(spacing: 4) { +ForEach(1..<4) { _ in +Image(systemName: "ellipsis.rectangle.fill") +} +} +.foregroundStyle(.secondary) +} +} +.padding(12) +} + +You can also use a custom `LabelStyle` to create a standard card-based lockup appearance while keeping your button’s declarations clean at the point of use. + +struct CardOverlayLabelStyle: LabelStyle { + +ZStack(alignment: .bottomLeading) { +configuration.icon +.resizable() +.aspectRatio(400/240, contentMode: .fit) +.overlay { +LinearGradient( +stops: [\ +.init(color: .black.opacity(0.6), location: 0.1),\ +.init(color: .black.opacity(0.2), location: 0.25),\ +.init(color: .black.opacity(0), location: 0.4)\ +], +startPoint: .bottom, endPoint: .top +) +} +.overlay { +RoundedRectangle(cornerRadius: 12) +.stroke(lineWidth: 2) +.foregroundStyle(.quaternary) +} + +configuration.title +.font(.caption.bold()) +.foregroundStyle(.secondary) +.padding(6) +} +.frame(maxWidth: 400) +} +} + +Button { /* action */ } label: { +Label("Title at the bottom", image: "discovery_landscape") +} + +### Display content shelves + +Content shelves are usually horizontal stacks in scroll views. + +Disabling scroll clipping is necessary to allow the focus effects to scale up and lift each lockup. Shelves typically contain only a single style of lockup, so assign your button style on the outside of the shelf container. + +ScrollView(.horizontal) { +LazyHStack(spacing: 40) { +ForEach(Asset.allCases) { asset in +// . . . +} +} +} +.scrollClipDisabled() +.buttonStyle(.borderless) + +To arrange your lockups nicely, use the `containerRelativeFrame(_:count:span:spacing:alignment:)` modifier to let SwiftUI determine the best size for each. You can specify how many lockups you want on the screen, and the amount of spacing your stack view provides. Then SwiftUI arranges the content so that the edges of the leading and trailing items align with the leading and trailing safe area insets of its container. + +For borderless buttons, you can attach the modifier to the `Image` instance within the button’s label closure to make the image the source of the frame calculations and alignments. + +asset.portraitImage +.resizable() +.aspectRatio(250 / 375, contentMode: .fit) +.containerRelativeFrame(.horizontal, count: 6, spacing: 40) +Text(asset.title) + +### Show content above and below the fold + +For a landing page you can implement above- and below-the-fold appearances through a combination of `ScrollTargetBehavior` and a background view with a gradient mask. + +Define your showcase or header section as a stack with a container relative frame to make it take up a particular percentage of the available space. Attach a `focusSection()` modifier to the stack as well, so that its full width can act as a target for focus movement, which it then diverts to its content. Otherwise, moving focus up from the right side of the shelves below might fail, or might jump all the way to the tab bar because the focus engine searches for the nearest focusable view along a straight line from the currently focused item. + +VStack(alignment: .leading) { +// Header content. +} +.frame(maxWidth: .infinity, alignment: .leading) +.focusSection() +.containerRelativeFrame(.vertical, alignment: .topLeading) { +length, _ in length * 0.8 +} + +The code above is the above-the-fold section. To detect when focus moves below the fold, use `onScrollVisibilityChange(threshold:_:)` to detect when the header view moves more than halfway off the screen. + +.onScrollVisibilityChange { visible in +// When the header scrolls more than 50% offscreen, toggle +// to the below-the-fold state. +withAnimation { +belowFold = !visible +} +} + +You can define the background of your landing page using a full-screen image with a material in an overlay. Then you can turn the material into a gradient by masking it with a `LinearGradient`, and you can adjust the opacity of that gradient’s stops according to the view’s above- or below-the-fold status. + +Image("beach_landscape") +.resizable() +.aspectRatio(contentMode: .fill) +.overlay { +// Build the gradient material by filling an area with a material, and +// then masking that area using a linear gradient. +Rectangle() +.fill(.regularMaterial) +.mask { +LinearGradient( +stops: [\ +.init(color: .black, location: 0.25),\ +.init(color: .black.opacity(belowFold ? 1 : 0.3), location: 0.375),\ +.init(color: .black.opacity(belowFold ? 1 : 0), location: 0.5)\ +], +startPoint: .bottom, endPoint: .top +) +} +} +.ignoresSafeArea() + +By adjusting the opacity of the gradient stops, rather than swapping out the mask view, you achieve a smooth animation between the above-the-fold appearance, where the material fades out above a certain height to reveal the image behind, and the below-the-fold appearance where the entire image blurs. + +### Snap at the fold point + +You can implement a custom `ScrollTargetBehavior` to create a fold-snapping effect. Then add a check to determine whether the target of a scroll event is crossing a fold threshold, and update that target to either the top of the page (if moving upward) or to the top of your first content shelf (if moving downward). With your view already tracking the above/below fold state, it can pass that information into the behavior to indicate which operation to check for. + +ScrollView { +// . . . +} +.scrollTargetBehavior( +FoldSnappingScrollTargetBehavior( +aboveFold: !belowFold, showcaseHeight: showcaseHeight)) + +struct FoldSnappingScrollTargetBehavior: ScrollTargetBehavior { +var aboveFold: Bool +var showcaseHeight: CGFloat + +func updateTarget(_ target: inout ScrollTarget, context: TargetContext) { +// The view is above the fold and not moving far enough down, so make no +// change. +if aboveFold && target.rect.minY < showcaseHeight * 0.3 { +return +} + +// The view is below the fold, and the header isn't coming onscreen, so +// make no change. + +return +} + +// Upward movement: Require revealing over 30% of the header, or don't let +// the scroll go upward. +let showcaseRevealThreshold = showcaseHeight * 0.7 +let snapToHideRange = showcaseRevealThreshold...showcaseHeight + +if aboveFold || snapToHideRange.contains(target.rect.origin.y) { +// Snap to align the first content shelf at the top of the screen. +target.rect.origin.y = showcaseHeight +} +else { +// Snap upward to reveal the header. +target.rect.origin.y = 0 +} +} +} + +### Provide product highlight pages + +It’s common for product pages to use a material gradient appearance with above- and below-the-fold snapping. You most likely need to tune the gradient a little differently to account for a taller bar of content at the bottom of the screen, but you typically want to keep the content’s showcase image, with a suitable blur, as a background for the view when scrolling below. + +This makes each product’s page unique, with its defining artwork tinting the content. This is the same effect that root screen on the Apple TV uses — the system blurs the most recently displayed top-shelf image and uses it as the background of the tvOS home screen. + +In your description view, you may want to display a stack of bordered buttons, and stretch each to the same width. SwiftUI implements bordered buttons by attaching a background to their labels, so increasing the size of the button view isn’t necessarily going to cause the background platter to grow. Instead, you need to specify that the _label content_ is able to expand, and its background then expands as well. Attaching a `frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)` modifier to the button’s label content achieves this for you. + +VStack(spacing: 12) { +Button { /* action */ } label: { +Text("Sign Up") +.font(.body.bold()) +.frame(maxWidth: .infinity) +} + +Button { /* action */ } label: { +Text("Buy or Rent") +.font(.body.bold()) +.frame(maxWidth: .infinity) +} + +Button { /* action */ } label: { +Label("Add to Up Next", systemImage: "plus") +.font(.body.bold()) +.frame(maxWidth: .infinity) +} +} + +When displaying your content’s description, allow it to truncate on the page, and place it within a `Button` using the `.plain` style. People can then select it, and you can present the full description using an overlay view that you attach with the `fullScreenCover(isPresented:onDismiss:content:)` modifier. + +.fullScreenCover(isPresented: $showDescription) { +VStack(alignment: .center) { +Text(loremIpsum) +.frame(maxWidth: 600) +} +} + +### Search for content + +For your search page, prefer using a `LazyVGrid` to contain your results, and a landscape orientation for the lockups themselves. This allows more content to appear onscreen at one time, with several rows of three to five items per row. A tall content container area makes it much easier to see the effects of changes to your search term. + +The search implementation consists of simple view modifiers that function identically on each Apple platform. The `searchable(text:placement:prompt:)` modifier provides the entire search UI for you, binding the search field to the provided text. By attaching a `searchSuggestions(_:)` modifier, you can present a list of potential search keyword completions. These are commonly `Text` instances, but `Button` and `Label` also work. + +Be sure to sort your search results so that the content of your grid is stable and predictable. + +ScrollView(.vertical) { +LazyVGrid( +columns: Array(repeating: .init(.flexible(), spacing: 40), count: 4), +spacing: 40 +) { +ForEach(/* matching assets, sorted */) { asset in +Button { /* action */ } label: { +asset.landscapeImage +.resizable() +.aspectRatio(16 / 9, contentMode: .fit) +Text(asset.title) +} +} +} +.buttonStyle(.borderless) +} +.scrollClipDisabled() +.searchable(text: $searchTerm) +.searchSuggestions { +ForEach(/* keywords matching search term */, id: \.self) { suggestion in +Text(suggestion) +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/worldrecenterphase + +- SwiftUI +- WorldRecenterPhase Beta + +Enumeration + +# WorldRecenterPhase + +A type that represents information associated with a phase of a system recenter event. Values of this type are passed to the closure specified in View.onWorldRecenter(action:). + +enum WorldRecenterPhase + +## Topics + +### Enumeration Cases + +`case began` + +The app has begun to fade out. It is not re-positioned yet. + +`case ended` + +The app has begun to fade in after it has been re-positioned. + +## Relationships + +### Conforms To + +- `Copyable` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/uiapplicationdelegateadaptor). + + + +--- + +# https://developer.apple.com/documentation/swiftui/backyard-birds-sample) + + + +--- + +# https://developer.apple.com/documentation/swiftui/food_truck_building_a_swiftui_multiplatform_app) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/migrating-to-the-swiftui-life-cycle) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/uiapplicationdelegateadaptor) + + + +--- + +# https://developer.apple.com/documentation/swiftui/nsapplicationdelegateadaptor) + + + +--- + +# https://developer.apple.com/documentation/swiftui/wkapplicationdelegateadaptor) + + + +--- + +# https://developer.apple.com/documentation/swiftui/wkextensiondelegateadaptor) + + + +--- + +# https://developer.apple.com/documentation/swiftui/creating-a-tvos-media-catalog-app-in-swiftui) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/worldrecenterphase) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/immersionstyle(selection:in:) + +#app-main) + +- SwiftUI +- Scene +- immersionStyle(selection:in:) + +Instance Method + +# immersionStyle(selection:in:) + +Sets the style for an immersive space. + +nonisolated +func immersionStyle( + +in styles: any ImmersionStyle... + +## Parameters + +`selection` + +A `Binding` to the style that the space uses. You can change this value to change the scene’s style even after you present the immersive space. Even though you provide a binding, the value changes only if you change it. + +`styles` + +The list of styles that the `selection` input can have. Include any styles that you plan to use during the lifetime of the scene. + +## Return Value + +A scene that uses one of the specified `styles`. + +## Discussion + +Use this modifier to configure the appearance and behavior of an `ImmersiveSpace`. Specify a style that conforms to the `ImmersionStyle` protocol, like `mixed` or `full`. For example, the following app defines a solar system scene that uses full immersion: + +@main +struct SolarSystemApp: App { +@State private var style: ImmersionStyle = .full + +var body: some Scene { +ImmersiveSpace { +SolarSystem() +} +.immersionStyle(selection: $style, in: .full) +} +} + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +`struct ProgressiveImmersionAspectRatio` Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/mixed + +- SwiftUI +- ImmersionStyle +- mixed + +Type Property + +# mixed + +An immersion style that displays unbounded content intermixed with other app content, along with passthrough video. + +static var mixed: MixedImmersionStyle { get } + +Available when `Self` is `MixedImmersionStyle`. + +## Discussion + +When this immersion style is selected, the immersion amount reported by the closure of `onImmersionChange(initial:_:)` is `0.0`. + +Use the `immersionStyle(selection:in:)` scene modifier to specify this style for an `ImmersiveSpace`. However, this is the default immersion style if you don’t specify one. + +The immersion style affects how windows interact with virtual objects in the environment. In `mixed` immersion, a virtual object obscures part or all of a window that’s behind the object. Similarly, a window obscures a virtual object that’s behind the window. + +## See Also + +### Getting built-in styles + +`static var automatic: AutomaticImmersionStyle` + +The default immersion style. + +`static var full: FullImmersionStyle` + +An immersion style that displays unbounded content that completely replaces passthrough video. + +`static var progressive: ProgressiveImmersionStyle` + +An immersion style that displays unbounded content that partially replaces passthrough video. + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/full + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/progressive + +- SwiftUI +- ImmersionStyle +- progressive + +Type Property + +# progressive + +An immersion style that displays unbounded content that partially replaces passthrough video. + +static var progressive: ProgressiveImmersionStyle { get } + +Available when `Self` is `ProgressiveImmersionStyle`. + +## Discussion + +The system initially uses a radial portal effect that replaces passthrough in a portion of the field of view. People can interactively adjust the size of the portal by turning the Digital Crown, including down to a minimum amount of immersion defined by the system and up to the point where the portal fully covers passthrough. If someone tries to reduce the portal size below the minimum value, the portal smoothly bounces immersion style, including the configurable visibility of the viewer’s upper limbs. + +When this immersion style is selected, the immersion amount reported by the closure of `onImmersionChange(initial:_:)` is within the range of the immersion that this style uses. + +Use the `immersionStyle(selection:in:)` scene modifier to specify this style for an `ImmersiveSpace`: + +@main +struct ImmersiveApp: App { +@State private var immersionStyle: ImmersionStyle = .progressive +var body: some Scene { +ImmersiveSpace { ... } +.immersionStyle(selection: $immersionStyle, in: .progressive)) +} +} + +The immersion style affects how windows interact with virtual objects in the environment. In `progressive` immersion, windows always render in front of virtual content, no matter how someone positions the window or the content. This helps people avoid losing track of windows behind virtual content when passthrough is off. + +## See Also + +### Getting built-in styles + +`static var automatic: AutomaticImmersionStyle` + +The default immersion style. + +`static var full: FullImmersionStyle` + +An immersion style that displays unbounded content that completely replaces passthrough video. + +`static var mixed: MixedImmersionStyle` + +An immersion style that displays unbounded content intermixed with other app content, along with passthrough video. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/immersivespace + +- SwiftUI +- ImmersiveSpace + +Structure + +# ImmersiveSpace + +A scene that presents its content in an unbounded space. + +## Overview + +Use an immersive space as a container for a view hierarchy that your app presents. The hierarchy that you declare as the immersive space’s content serves as a template for it: + +@main +struct SolarSystemApp: App { +var body: some Scene { +ImmersiveSpace { +SolarSystem() +} +} +} + +If you want to create a bounded scene instead, use one of the types that creates a window or a volume, like `WindowGroup` or `DocumentGroup`. + +### Style the immersive space + +By default, immersive spaces use the `mixed` style which places virtual content in a person’s surroundings. You can select a different style for the immersive space by adding the `immersionStyle(selection:in:)` scene modifier to the scene. For example, you can completely control the visual experience using the `full` immersion style: + +@main +struct SolarSystemApp: App { +@State private var style: ImmersionStyle = .full + +var body: some Scene { +ImmersiveSpace { +SolarSystem() +} +.immersionStyle(selection: $style, in: .full) +} +} + +You can change the immersion style after presenting the immersive space by changing the modifier’s `selection` input, although you can only use one of the values that you specify in the modifier’s second parameter. For any style of immersion, the other parts of your app’s interface — namely its windows — remain visible. However, the immersion style affects how windows interact with virtual objects in the environment: + +- For the `mixed` style, a virtual object obscures part or all of a window that’s behind the object. Similarly, a window obscures a virtual object that’s behind the window. + +- For other styles, windows always render in front of virtual content, no matter how someone positions the window or the content. This helps people to avoid losing track of windows behind virtual content when passthrough is partially or completely off. + +### Open an immersive space + +You can programmatically open an immersive space by giving it an identifier. For example, you can label the solar system view from the previous example: + +ImmersiveSpace(id: "solarSystem") { +SolarSystem() +} + +Elsewhere in your code, you use the `openImmersiveSpace` environment value to get the instance of the `OpenImmersiveSpaceAction` structure for a given `Environment`. You call the instance directly — for example, from a button’s closure, like in the following code — using the identifier: + +struct NewSolarSystemImmersiveSpace: View { +var solarSystem: SolarSystem +@Environment(\.openImmersiveSpace) private var openImmersiveSpace + +var body: some View { +Button("Present Solar System") { +Task { +await openImmersiveSpace(id: "solarSystem") +} +} +} +} + +Mark the call to the action with `await` because it executes asynchronously. When your app opens an immersive space, the system hides all other visible apps. The system allows only one immersive space to be open at a time. Be sure to close the open immersive space before opening another one. + +### Dismiss an immersive space + +You can dismiss an immersive space by calling the `dismissImmersiveSpace` action from the environment. For example, you can define a button that dismisses an immersive space: + +struct DismissImmersiveSpaceButton: View { +@Environment(\.dismissImmersiveSpace) +private var dismissImmersiveSpace + +var body: some View { +Button("Close Solar System") { +Task { +await dismissImmersiveSpace() +} +} +} +} + +The dismiss action runs asynchronously, like the open action. You don’t need to specify an identifier when dismissing an immersive space because there can only be one immersive space open at a time. + +### Present an immersive space at launch + +When an app launches, it opens an instance of the first scene that’s listed in the app’s body. However, to open an immersive space at launch, you need to provide additional configuration information in your app’s `Info.plist` file. In particular, set the `UIApplicationPreferredDefaultSceneSessionRole` key in the scene manifest to the value `UISceneSessionRoleImmersiveSpaceApplication`. + +To configure the style of the immersive space that opens at launch, add a scene configuration to the scene session role. Use the `UISceneInitialImmersionStyle` key together with a value that indicates one of the mixed, full, or progressive styles. See the initial immersion style key for more information. + +## Topics + +### Creating an immersive space + +`init(content:)` + +Creates an immersive space. + +### Identifying an immersive space + +`init(id:content:)` + +Creates the immersive space associated with the specified identifier. + +Deprecated + +### Creating a data-driven immersive space + +`init(for:content:)` + +Creates the immersive space for a specified type of presented data. + +`init(id:for:content:)` + +Creates the immersive space associated with an identifier for a specified type of presented data. + +### Providing default data to an immersive space + +`init(for:content:defaultValue:)` + +`init(id:for:content:defaultValue:)` + +Creates the immersive space associated with an identifier for a specified type of presented data, and a default value, if the data is not set. + +### Supporting types + +`struct ImmersiveSpaceViewContent` + +Immersive space content that uses a SwiftUI view hierarchy as the content. + +`protocol ImmersiveSpaceContent` + +A type that you can use as the content of an immersive space. + +### Initializers + +`init(id:makeContent:)` + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +`struct ProgressiveImmersionAspectRatio` Beta + +--- + +# https://developer.apple.com/documentation/swiftui/immersivespacecontentbuilder + +- SwiftUI +- ImmersiveSpaceContentBuilder + +Structure + +# ImmersiveSpaceContentBuilder + +A result builder for composing a collection of immersive space elements. + +@resultBuilder +struct ImmersiveSpaceContentBuilder + +## Topics + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +`struct ProgressiveImmersionAspectRatio` Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle + +- SwiftUI +- ImmersionStyle + +Protocol + +# ImmersionStyle + +The styles that an immersive space can have. + +protocol ImmersionStyle + +## Overview + +Configure the appearance and behavior of an `ImmersiveSpace` by adding the `immersionStyle(selection:in:)` scene modifier to the space and specifying a style that conforms to this protocol, like `mixed` or `full`. For example, the following app defines a solar system scene that uses full immersion: + +@main +struct SolarSystemApp: App { +@State private var style: ImmersionStyle = .full + +var body: some Scene { +ImmersiveSpace { +SolarSystem() +} +.immersionStyle(selection: $style, in: .full) +} +} + +## Topics + +### Getting built-in styles + +`static var automatic: AutomaticImmersionStyle` + +The default immersion style. + +`static var full: FullImmersionStyle` + +An immersion style that displays unbounded content that completely replaces passthrough video. + +`static var mixed: MixedImmersionStyle` + +An immersion style that displays unbounded content intermixed with other app content, along with passthrough video. + +`static var progressive: ProgressiveImmersionStyle` + +An immersion style that displays unbounded content that partially replaces passthrough video. + +### Supporting types + +`struct AutomaticImmersionStyle` + +The default style of immersive spaces. + +`struct FullImmersionStyle` + +`struct MixedImmersionStyle` + +`struct ProgressiveImmersionStyle` + +### Type Methods + +`static progressive(_:initialAmount:)` + +`static progressive(_:initialAmount:aspectRatio:)` + +Beta + +## Relationships + +### Conforming Types + +- `AutomaticImmersionStyle` +- `FullImmersionStyle` +- `MixedImmersionStyle` +- `ProgressiveImmersionStyle` + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +`struct ProgressiveImmersionAspectRatio` Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/immersivespacedisplacement + +- SwiftUI +- EnvironmentValues +- immersiveSpaceDisplacement + +Instance Property + +# immersiveSpaceDisplacement + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +var immersiveSpaceDisplacement: Pose3D { get } + +## Discussion + +By default, the system places the origin of the immersive space at floor level, at the person’s feet. When joining a shared activity, the system moves the immersive space to an appropriate location for all participants. As participants join and leave the activity, the location of participants and the immersive space can update. Read this property to get the current offset of the immersive space relative to its default position. + +If you access this property outside of an open immersive space, it contains the value `identity`. + +If you display participant-specific views or entities in your shared activity, use the inverse of this displacement value to position those views and entities in the immersive space. Applying the inverse value positions them as if they were in a single-participant immersive space. + +In the following example, this value is applied to position a game HUD entity at the person’s location, rather than the shared activity’s location: + +@main +struct GameApp: App { +var body: some Scene { +ImmersiveSpace { +ImmersiveGameView() +} +} +} + +struct ImmersiveGameView: View { +@Environment(\.immersiveSpaceDisplacement) private var immersiveSpaceDisplacement + +let gameHUDEntity = makeGameHUDEntity() + +var body: some View { +RealityView { content in +// ... +} update: { content in +let inverseDisplacement = float4x4(immersiveSpaceDisplacement.inverse) +gameHUDEntity.setTransformMatrix(inverseDisplacement, relativeTo: nil) +} +} +} + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +`struct ProgressiveImmersionAspectRatio` Beta + +--- + +# https://developer.apple.com/documentation/swiftui/immersiveenvironmentbehavior + +- SwiftUI +- ImmersiveEnvironmentBehavior Beta + +Structure + +# ImmersiveEnvironmentBehavior + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +struct ImmersiveEnvironmentBehavior + +## Overview + +Use one of these values with the `immersiveEnvironmentBehavior(_:)` scene modifier to indicate how the immersive environment should behave when your app opens a scene. + +## Topics + +### Type Properties + +`static var automatic: ImmersiveEnvironmentBehavior` + +A behavior that matches the system default behavior. + +`static var coexist: ImmersiveEnvironmentBehavior` + +A behavior that keeps the system’s immersive environment as is when opening a scene. + +`static var replace: ImmersiveEnvironmentBehavior` + +A behavior that replaces any currently opened immersive environment with the new scene. + +## Relationships + +### Conforms To + +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ProgressiveImmersionAspectRatio` Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/progressiveimmersionaspectratio + +- SwiftUI +- ProgressiveImmersionAspectRatio Beta + +Structure + +# ProgressiveImmersionAspectRatio + +struct ProgressiveImmersionAspectRatio + +## Topics + +### Type Properties + +`static var automatic: ProgressiveImmersionAspectRatio` + +The system will choose a default portal aspect ratio. + +`static var landscape: ProgressiveImmersionAspectRatio` + +The portal will be wide. + +`static var portrait: ProgressiveImmersionAspectRatio` + +The portal will be tall. + +## Relationships + +### Conforms To + +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Creating an immersive space + +`struct ImmersiveSpace` + +A scene that presents its content in an unbounded space. + +`struct ImmersiveSpaceContentBuilder` + +A result builder for composing a collection of immersive space elements. + +Sets the style for an immersive space. + +`protocol ImmersionStyle` + +The styles that an immersive space can have. + +`var immersiveSpaceDisplacement: Pose3D` + +The displacement that the system applies to the immersive space when moving the space away from its default position, in meters. + +`struct ImmersiveEnvironmentBehavior` + +The behavior of the system-provided immersive environments when a scene is opened by your app. + +Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/openimmersivespace + +- SwiftUI +- EnvironmentValues +- openImmersiveSpace + +Instance Property + +# openImmersiveSpace + +An action that presents an immersive space. + +var openImmersiveSpace: OpenImmersiveSpaceAction { get } + +## Discussion + +Use this environment value to get the instance of the `OpenImmersiveSpaceAction` structure for a given `Environment`. Then call the instance to present a space. You call the instance directly because it defines `callAsFunction()` methods that Swift calls when you call the instance. + +On macOS, this may be used to open a remote immersive space declared with `RemoteImmersiveSpace`. When your app opens a remote immersive space, the system may ask the user for a preferred device with which to display the content. + +For example, you can define a button that opens a specified planet in an immersive space: + +@main +struct SolarSystemApp: App { +var body: some Scene { +ImmersiveSpace(for: Planet.ID.self) { $planetID in +// ... +} +} +} + +struct ShowPlanetButton: View { +var planet: Planet +@Environment(\.openImmersiveSpace) private var openImmersiveSpace + +var body: some View { +Button("Show \(planet.name)") { +Task { +await openImmersiveSpace(value: planet.ID) +} +} +} +} + +You indicate which immersive space to open by providing one of the following: + +- A string identifier that you pass through the `id` parameter. + +- A `value` parameter that has a type that matches the type that you specify in the space’s initializer, as in the above example. + +- Both an identifier and a value. This enables you to define multiple spaces that take input values of the same type and distinguish them by their string identifiers. + +The call is asynchronous and returns after presenting the space or if an error occurs. You can check for errors by inspecting the call’s return value, which is of type `OpenImmersiveSpaceAction.Result`. For example, the call returns an error if you already have an immersive space open, because the system enables only one space to be open at a time. + +If you provide a value when you open the space, the scene’s trailing closure receives a binding to the value that you provide. For best performance, use lightweight data for the presentation value. For structured model values that conform to `Identifiable`, the value’s identifier makes a good presentation value, like the `planet.ID` value in the above code. + +## See Also + +### Opening an immersive space + +`struct OpenImmersiveSpaceAction` + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/openimmersivespaceaction + +- SwiftUI +- OpenImmersiveSpaceAction + +Structure + +# OpenImmersiveSpaceAction + +An action that presents an immersive space. + +@MainActor +struct OpenImmersiveSpaceAction + +## Overview + +Use the `openImmersiveSpace` environment value to get the instance of this structure for a given `Environment`. Then call the instance to present a space. You call the instance directly because it defines `callAsFunction()` methods that Swift calls when you call the instance. + +On macOS, this may be used to open a remote immersive space declared with `RemoteImmersiveSpace`. When your app opens a remote immersive space, the system may ask the user for a preferred device with which to display the content. + +For example, you can define a button that opens a specified planet in an immersive space: + +@main +struct SolarSystemApp: App { +var body: some Scene { +ImmersiveSpace(for: Planet.ID.self) { $planetID in +// ... +} +} +} + +struct ShowPlanetButton: View { +var planet: Planet +@Environment(\.openImmersiveSpace) private var openImmersiveSpace + +var body: some View { +Button("Show \(planet.name)") { +Task { +await openImmersiveSpace(value: planet.ID) +} +} +} +} + +You indicate which immersive space to open by providing one of the following: + +- A string identifier that you pass through the `id` parameter. + +- A `value` parameter that has a type that matches the type that you specify in the space’s initializer, as in the above example. + +- Both an identifier and a value. This enables you to define multiple spaces that take input values of the same type and distinguish them by their string identifiers. + +The call is asynchronous and returns after presenting the space or if an error occurs. You can check for errors by inspecting the call’s return value, which is of type `OpenImmersiveSpaceAction.Result`. For example, the call returns an error if you already have an immersive space open, because the system enables only one space to be open at a time. + +If you provide a value when you open the space, the scene’s trailing closure receives a binding to the value that you provide. For best performance, use lightweight data for the presentation value. For structured model values that conform to `Identifiable`, the value’s identifier makes a good presentation value, like the `planet.ID` value in the above code. + +## Topics + +### Calling the action + +Presents an immersive space for the scene with the specified identifier. + +Presents the immersive space that your app defines for the specified identifier and that handles the type of the presented value. + +Presents the immersive space that handles the type of the presented value. + +### Getting the result + +`enum Result` + +The outcome of an attempt to open an immersive space. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Opening an immersive space + +`var openImmersiveSpace: OpenImmersiveSpaceAction` + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismissimmersivespace + +- SwiftUI +- EnvironmentValues +- dismissImmersiveSpace + +Instance Property + +# dismissImmersiveSpace + +An immersive space dismissal action stored in a view’s environment. + +var dismissImmersiveSpace: DismissImmersiveSpaceAction { get } + +## Discussion + +Use this environment value to get a `DismissImmersiveSpaceAction` instance for a given `Environment`. Then call the instance to dismiss a space. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +On macOS, this may be used to dismiss a remote immersive space declared with `RemoteImmersiveSpace`. + +For example, you can define a button that dismisses an immersive space: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +DismissImmersiveSpaceButton() +} +ImmersiveSpace(id: "solarSystem") { +SolarSystemView() +} +} +} + +struct DismissImmersiveSpaceButton: View { +@Environment(\.dismissImmersiveSpace) private var dismissImmersiveSpace + +var body: some View { +Button("Dismiss") { +Task { +await dismissImmersiveSpace() +} +} +} +} + +The asynchronous call returns after the system finishes dismissing the space. Unlike the call to `openImmersiveSpace` that you use to open the space — which requires an identifier, a value, or both to specify which space to open — the dismiss action requires no parameters because there can be only one immersive space open at a time. The call closes the space that is currently open, if any. + +## See Also + +### Closing the immersive space + +`struct DismissImmersiveSpaceAction` + +An action that dismisses an immersive space. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/dismissimmersivespaceaction + +- SwiftUI +- DismissImmersiveSpaceAction + +Structure + +# DismissImmersiveSpaceAction + +An action that dismisses an immersive space. + +@MainActor +struct DismissImmersiveSpaceAction + +## Overview + +Use the `dismissImmersiveSpace` environment value to get an instance of this type for a given `Environment`. Then call the instance to dismiss a space. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +On macOS, this may be used to dismiss a remote immersive space declared with `RemoteImmersiveSpace`. + +For example, you can define a button that dismisses an immersive space: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +DismissImmersiveSpaceButton() +} +ImmersiveSpace(id: "solarSystem") { +SolarSystemView() +} +} +} + +struct DismissImmersiveSpaceButton: View { +@Environment(\.dismissImmersiveSpace) private var dismissImmersiveSpace + +var body: some View { +Button("Dismiss") { +Task { +await dismissImmersiveSpace() +} +} +} +} + +The asynchronous call returns after the system finishes dismissing the space. Unlike the call to `openImmersiveSpace` that you use to open the space — which requires an identifier, a value, or both to specify which space to open — the dismiss action requires no parameters because there can be only one immersive space open at a time. The call closes the space that is currently open, if any. + +## Topics + +### Calling the action + +`func callAsFunction() async` + +Dismisses the currently opened immersive space. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Closing the immersive space + +`var dismissImmersiveSpace: DismissImmersiveSpaceAction` + +An immersive space dismissal action stored in a view’s environment. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/scene/upperlimbvisibility(_:) + +#app-main) + +- SwiftUI +- Scene +- upperLimbVisibility(\_:) + +Instance Method + +# upperLimbVisibility(\_:) + +Sets the preferred visibility of the user’s upper limbs, while an `ImmersiveSpace` scene is presented. + +nonisolated + +## Parameters + +`preferredVisibility` + +A value indicating if the upper limbs should be visible. Use `.automatic` for a system-defined standard behavior, `.visible` to keep the upper limbs visible, and `.hidden` to hide the upper limbs. + +## Discussion + +The system can show the user’s upper limbs during fully immersive experiences, but you can also hide them, for example, in order to display virtual hands instead. + +Note that this modifier only sets a preference and ultimately the system will decide if it will honor it or not. The system may by unable to honor the preference if the immersive space is currently not visible. + +## See Also + +### Hiding upper limbs during immersion + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/upperlimbvisibility(_:) + +#app-main) + +- SwiftUI +- View +- upperLimbVisibility(\_:) + +Instance Method + +# upperLimbVisibility(\_:) + +Sets the preferred visibility of the user’s upper limbs, while an `ImmersiveSpace` scene is presented. + +nonisolated + +## Parameters + +`preferredVisibility` + +A value indicating if the upper limbs should be visible. Use `.automatic` for a system-defined standard behavior, `.visible` to keep the upper limbs visible, and `.hidden` to hide the upper limbs. + +## Discussion + +The system can show the user’s upper limbs during fully immersive experiences, but you can also hide them, for example, in order to display virtual hands instead. + +Note that this modifier only sets a preference and ultimately the system will decide if it will honor it or not. The system may by unable to honor the preference if the immersive space is currently not visible. + +## See Also + +### Hiding upper limbs during immersion + +--- + +# https://developer.apple.com/documentation/swiftui/scene/immersivecontentbrightness(_:) + +#app-main) + +- SwiftUI +- Scene +- immersiveContentBrightness(\_:) + +Instance Method + +# immersiveContentBrightness(\_:) + +Sets the content brightness of an immersive space. + +nonisolated + +## Parameters + +`brightness` + +The level of content brightness that you prefer. + +## Return Value + +A scene that has the specified content brightness. + +## Discussion + +Pass one of the standard brightness levels defined in `ImmersiveContentBrightness` or a custom one that you create with the `custom(_:)` method to this scene modifier to set a preference for the content brightness in an `ImmersiveSpace`. The system takes the value that you set into account, but might not be able to honor a specific preference. + +When you do this to create an environment that’s suitable for video playback, the standard brightness values provide good results for most use cases. To optimize further, you can create a custom brightness using a normalized value that expresses the linear brightness ratio between a standard dynamic range white video frame and the background that surrounds the player window. + +## See Also + +### Adjusting content brightness + +`struct ImmersiveContentBrightness` + +The content brightness of an immersive space. + +--- + +# https://developer.apple.com/documentation/swiftui/immersivecontentbrightness + +- SwiftUI +- ImmersiveContentBrightness + +Structure + +# ImmersiveContentBrightness + +The content brightness of an immersive space. + +struct ImmersiveContentBrightness + +## Overview + +Use a value of this type as an input to the `immersiveContentBrightness(_:)` scene modifier to indicate the ambient content brightness of an `ImmersiveSpace`. + +When you do this to create an environment that’s suitable for video playback, use one of the standard brightness values like `bright`, `dim`, or `dark` to provide good results for most use cases. To optimize further, you can create a custom brightness using a normalized value that expresses the linear brightness ratio between a standard dynamic range white video frame and the background that surrounds the player window. + +## Topics + +### Type Properties + +`static let automatic: ImmersiveContentBrightness` + +The default content brightness. + +`static let bright: ImmersiveContentBrightness` + +A bright content brightness. + +`static let dark: ImmersiveContentBrightness` + +A dark content brightness. + +`static let dim: ImmersiveContentBrightness` + +A dimmed content brightness. + +### Type Methods + +Creates a content brightness with a custom value. + +## Relationships + +### Conforms To + +- `Equatable` + +## See Also + +### Adjusting content brightness + +Sets the content brightness of an immersive space. + +--- + +# https://developer.apple.com/documentation/swiftui/view/onimmersionchange(initial:_:) + +#app-main) + +- SwiftUI +- View +- onImmersionChange(initial:\_:) + +Instance Method + +# onImmersionChange(initial:\_:) + +Performs an action when the immersion state of your app changes. + +nonisolated +func onImmersionChange( +initial: Bool = true, + +## Parameters + +`initial` + +Whether the action should be run when this view initially appears. + +`action` + +A closure to run when the immersion changes. + +## Discussion + +Depending on the immersion style used for the Immersive Space in your app, the amount of immersion can be controlled by actions such as turning the Digital Crown. Use this modifier to define a closure that is run when the immersion state changes. The following example sets the value of a binding depending on the current amount of immersion: + +struct ImmersiveView: View { +@Binding var enableSoundEffects: Bool + +var body: some View { +MyView() +.onImmersionChange { _, newImmersion in +guard let amount = newImmersion.amount else { +enableSoundEffects = false +return +} +// Enable some effects based on the updated +// amount of immersion + +} +} +} + +## See Also + +### Responding to immersion changes + +`struct ImmersionChangeContext` + +A structure that represents a state of immersion of your app. + +--- + +# https://developer.apple.com/documentation/swiftui/immersionchangecontext + +- SwiftUI +- ImmersionChangeContext + +Structure + +# ImmersionChangeContext + +A structure that represents a state of immersion of your app. + +struct ImmersionChangeContext + +## Overview + +You don’t use this structure directly. Instead, SwiftUI provides instances of this structure via the `onImmersionChange` modifier’s closure. + +## Topics + +### Instance Properties + +`let amount: Double?` + +The current amount of immersion. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Responding to immersion changes + +Performs an action when the immersion state of your app changes. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/immersiveenvironmentpicker(content:) + +#app-main) + +- SwiftUI +- View +- immersiveEnvironmentPicker(content:) + +Instance Method + +# immersiveEnvironmentPicker(content:) + +Add menu items to open immersive spaces from a media player’s environment picker. + +nonisolated + +## Discussion + +These items are added alongside recently used system environments. + +SystemPlayerView(player: player) +.immersiveEnvironmentPicker { +Button("Chalet", systemImage: "fireplace") { +Task { +await openImmersiveSpace(id: "Chalet") +} +} +} + +Use a `UIViewControllerRepresentable` instance to display a `AVPlayerViewController` class in your SwiftUI interface. + +struct SystemPlayerView: UIViewControllerRepresentable { +let player: AVPlayer + +return AVPlayerViewController() +} + +func updateUIViewController(_ avPlayerViewController: AVPlayerViewController, context: Context) { +viewController.player = player +} +} + +Items will be donated to media players (like `AVPlayerViewController`) downstream in the hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/remoteimmersivespace + + + +--- + +# https://developer.apple.com/documentation/swiftui/remotedeviceidentifier + +- SwiftUI +- RemoteDeviceIdentifier Beta + +Structure + +# RemoteDeviceIdentifier + +An opaque type that identifies a remote device displaying scene content in a `RemoteImmersiveSpace`. + +struct RemoteDeviceIdentifier + +## Overview + +Access this from the `remoteDeviceIdentifier` environment property in a remote scene to get the identifier for that scene’s device. + +When accessed in a context that is being presented on the local device, this value will be `nil`. + +This identifier can also be used to initialize an `ARKitSession` associated with the remote device. + +struct SolarSystem: CompositorContent { +@Environment(\.remoteDeviceIdentifier) private var deviceID + +var body: some CompositorContent { +RemoteImmersiveSpace { +CompositorLayer { layerRenderer in +// Create an ARSession for the device +let arSession = ARKitSession(deviceID) + +// Set up and run the Metal render loop. +let renderThread = Thread { +let engine = solar_engine_create( +layerRenderer, arSession) +solar_engine_render_loop(engine) +} +renderThread.name = "Render Thread" +renderThread.start() +} +} +} +} + +## Topics + +### Instance Properties + +`var cDevice: ar_device_t` + +Returns the `ar_device` associated with this device. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Handling remote immersive spaces + +`struct RemoteImmersiveSpace` + +A scene that presents its content in an unbounded space on a remote device. + +Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/scene/immersionstyle(selection:in:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/mixed) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/full) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle/progressive) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersivespace) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersivespacecontentbuilder) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersionstyle) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/immersivespacedisplacement) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/immersiveenvironmentbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/progressiveimmersionaspectratio) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/openimmersivespace) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/openimmersivespaceaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/dismissimmersivespace) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/dismissimmersivespaceaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/upperlimbvisibility(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/upperlimbvisibility(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/immersivecontentbrightness(_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/immersivecontentbrightness) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/onimmersionchange(initial:_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/immersionchangecontext) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/immersiveenvironmentpicker(content:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/remoteimmersivespace) + + + +--- + +# https://developer.apple.com/documentation/swiftui/remotedeviceidentifier) + + + +--- + +# https://developer.apple.com/documentation/swiftui/remoteimmersivespace). + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene + +- SwiftUI +- Scene + +Protocol + +# Scene + +A part of an app’s user interface with a life cycle managed by the system. + +@MainActor @preconcurrency +protocol Scene + +## Mentioned in + +Building and customizing the menu bar with SwiftUI + +Migrating to the SwiftUI life cycle + +## Overview + +You create an `App` by combining one or more instances that conform to the `Scene` protocol in the app’s `body`. You can use the built-in scenes that SwiftUI provides, like `WindowGroup`, along with custom scenes that you compose from other scenes. To create a custom scene, declare a type that conforms to the `Scene` protocol. Implement the required `body` computed property and provide the content for your custom scene: + +struct MyScene: Scene { +var body: some Scene { +WindowGroup { +MyRootView() +} +} +} + +A scene acts as a container for a view hierarchy that you want to display to the user. The system decides when and how to present the view hierarchy in the user interface in a way that’s platform-appropriate and dependent on the current state of the app. For example, for the window group shown above, the system lets the user create or remove windows that contain `MyRootView` on platforms like macOS and iPadOS. On other platforms, the same view hierarchy might consume the entire display when active. + +Read the `scenePhase` environment value from within a scene or one of its views to check whether a scene is active or in some other state. You can create a property that contains the scene phase, which is one of the values in the `ScenePhase` enumeration, using the `Environment` attribute: + +struct MyScene: Scene { +@Environment(\.scenePhase) private var scenePhase + +// ... +} + +The `Scene` protocol provides scene modifiers, defined as protocol methods with default implementations, that you use to configure a scene. For example, you can use the `onChange(of:perform:)` modifier to trigger an action when a value changes. The following code empties a cache when all of the scenes in the window group have moved to the background: + +struct MyScene: Scene { +@Environment(\.scenePhase) private var scenePhase +@StateObject private var cache = DataCache() + +var body: some Scene { +WindowGroup { +MyRootView() +} +.onChange(of: scenePhase) { newScenePhase in +if newScenePhase == .background { +cache.empty() +} +} +} +} + +A type conforming to this protocol inherits `@preconcurrency @MainActor` isolation from the protocol if the conformance is included in the type’s base declaration: + +struct MyCustomType: Transition { +// `@preconcurrency @MainActor` isolation by default +} + +Isolation to the main actor is the default, but it’s not required. Declare the conformance in an extension to opt out of main actor isolation: + +extension MyCustomType: Transition { +// `nonisolated` by default +} + +## Topics + +### Creating a scene + +`var body: Self.Body` + +The content and behavior of the scene. + +**Required** + +`associatedtype Body : Scene` + +The type of scene that represents the body of this scene. + +### Watching for changes + +`func onChange(of:initial:_:)` + +Adds an action to perform when the given value changes. + +Specifies the external events for which SwiftUI opens a new instance of the modified scene. + +### Creating background tasks + +Runs the specified action when the system provides a background task. + +### Managing app storage + +The default store used by `AppStorage` contained within the scene and its view content. + +### Setting commands + +Adds commands to the scene. + +Removes all commands defined by the modified scene. + +Replaces all commands defined by the modified scene with the commands from the builder. + +Defines a keyboard shortcut for opening new scene windows. + +### Sizing and positioning the scene + +Sets a default position for a window. + +`func defaultSize(_:)` + +Sets a default size for a window. + +Sets a default width and height for a window. + +Sets a default size for a volumetric window. + +Defines a function used for determining the default placement of windows. + +Sets the kind of resizability to use for a window. + +Specifies how windows derived form this scene should determine their size when zooming. + +Provides a function which determines a placement to use when windows of a scene zoom. + +Configures the role for windows derived from `self` when participating in a managed window context, such as full screen or Stage Manager. + +### Interacting with volumes + +Specifies how a volume should be aligned when moved in the world. + +Specify the world scaling behavior for the window. + +### Configuring scene visibility + +Sets the default launch behavior for this scene. + +Sets the restoration behavior for this scene. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +### Styling the scene + +Sets the style for an immersive space. + +Sets the preferred visibility of the user’s upper limbs, while an `ImmersiveSpace` scene is presented. + +Sets the style for windows created by this scene. + +Sets the window level of this scene. + +Sets the style for the toolbar defined within this scene. + +Sets the label style of items in a toolbar and enables user customization. + +Sets the label style of items in a toolbar. + +### Configuring a data model + +Sets the model context in this scene’s environment. + +Sets the model container and associated model context in this scene’s environment. + +`func modelContainer(for:inMemory:isAutosaveEnabled:isUndoEnabled:onSetup:)` + +Sets the model container in this scene for storing the provided model type, creating a new container if necessary, and also sets a model context for that container in this scene’s environment. + +### Managing the environment + +Places an observable object in the scene’s environment. + +Sets the environment value of the specified key path to the given value. + +Supplies an `ObservableObject` to a view subhierarchy. + +Transforms the environment value of the specified key path with the given function. + +### Interacting with dialogs + +Configures the icon used by alerts. + +Sets the severity for alerts. + +Enables user suppression of an alert with a custom suppression message. + +`func dialogSuppressionToggle(_:isSuppressed:)` + +### Supporting drag behavior + +Configures the behavior of dragging a window by its background. + +### Deprecated symbols + +Deprecated + +### Instance Methods + +Adds to a `DocumentGroupLaunchScene` actions that accept a list of selected files as their parameter. + +Sets the content brightness of an immersive space. + +Sets the immersive environment behavior that should apply when this scene opens. + +Beta + +Sets the style for menu bar extra created by this scene. + +## Relationships + +### Conforming Types + +- `AlertScene` +- `AssistiveAccess` +- `DocumentGroup` +- `DocumentGroupLaunchScene` +- `Group` +Conforms when `Content` conforms to `Scene`. + +- `ImmersiveSpace` +- `MenuBarExtra` +- `ModifiedContent` +Conforms when `Content` conforms to `Scene` and `Modifier` conforms to `_SceneModifier`. + +- `RemoteImmersiveSpace` +- `Settings` +- `UtilityWindow` +- `WKNotificationScene` +- `Window` +- `WindowGroup` + +## See Also + +### Creating scenes + +`struct SceneBuilder` + +A result builder for composing a collection of scenes into a single composite scene. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/commands(content:) + +#app-main) + +- SwiftUI +- Scene +- commands(content:) + +Instance Method + +# commands(content:) + +Adds commands to the scene. + +nonisolated + +## Mentioned in + +Building and customizing the menu bar with SwiftUI + +## Discussion + +Commands are realized in different ways on different platforms. On macOS, the main menu uses the available command menus and groups to organize its main menu items. Each menu is represented as a top-level menu bar menu, and each command group has a corresponding set of menu items in one of the top-level menus, delimited by separator menu items. + +On iPadOS, commands with keyboard shortcuts are exposed in the shortcut discoverability HUD that users see when they hold down the Command (⌘) key. + +## See Also + +### Defining commands + +Removes all commands defined by the modified scene. + +Replaces all commands defined by the modified scene with the commands from the builder. + +`protocol Commands` + +Conforming types represent a group of related commands that can be exposed to the user via the main menu on macOS and key commands on iOS. + +`struct CommandMenu` + +Command menus are stand-alone, top-level containers for controls that perform related, app-specific commands. + +`struct CommandGroup` + +Groups of controls that you can add to existing command menus. + +`struct CommandsBuilder` + +Constructs command sets from multi-expression closures. Like `ViewBuilder`, it supports up to ten expressions in the closure body. + +`struct CommandGroupPlacement` + +The standard locations that you can place new command groups relative to. + +--- + +# https://developer.apple.com/documentation/swiftui/scenebuilder + +- SwiftUI +- SceneBuilder + +Structure + +# SceneBuilder + +A result builder for composing a collection of scenes into a single composite scene. + +@resultBuilder +struct SceneBuilder + +## Topics + +### Building content + +`static buildBlock(_:)` + +Passes a single scene written as a child scene through unmodified. + +Builds an expression within the builder. + +`static buildLimitedAvailability(_:)` + +Processes scene content for a conditional compiler-control statement that performs an availability check. + +Produces an optional scene for conditional statements in multi-statement closures that’s only visible when the condition evaluates to true. + +## See Also + +### Creating scenes + +`protocol Scene` + +A part of an app’s user interface with a life cycle managed by the system. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/scenephase + +- SwiftUI +- EnvironmentValues +- scenePhase + +Instance Property + +# scenePhase + +The current phase of the scene. + +var scenePhase: ScenePhase { get set } + +## Discussion + +The system sets this value to provide an indication of the operational state of a scene or collection of scenes. The exact meaning depends on where you access the value. For more information, see `ScenePhase`. + +## See Also + +### Monitoring scene life cycle + +`enum ScenePhase` + +An indication of a scene’s operational state. + +--- + +# https://developer.apple.com/documentation/swiftui/scenephase + +- SwiftUI +- ScenePhase + +Enumeration + +# ScenePhase + +An indication of a scene’s operational state. + +enum ScenePhase + +## Mentioned in + +Migrating to the SwiftUI life cycle + +## Overview + +The system moves your app’s `Scene` instances through phases that reflect a scene’s operational state. You can trigger actions when the phase changes. Read the current phase by observing the `scenePhase` value in the `Environment`: + +@Environment(\.scenePhase) private var scenePhase + +How you interpret the value depends on where it’s read from. If you read the phase from inside a `View` instance, you obtain a value that reflects the phase of the scene that contains the view. The following example uses the `onChange(of:initial:_:)` method to enable a timer whenever the enclosing scene enters the `ScenePhase.active` phase and disable the timer when entering any other phase: + +struct MyView: View { +@ObservedObject var model: DataModel +@Environment(\.scenePhase) private var scenePhase + +var body: some View { +TimerView() +.onChange(of: scenePhase) { +model.isTimerRunning = (scenePhase == .active) +} +} +} + +If you read the phase from within an `App` instance, you obtain an aggregate value that reflects the phases of all the scenes in your app. The app reports a value of `ScenePhase.active` if any scene is active, or a value of `ScenePhase.inactive` when no scenes are active. This includes multiple scene instances created from a single scene declaration; for example, from a `WindowGroup`. When an app enters the `ScenePhase.background` phase, expect the app to terminate soon after. You can use that opportunity to free any resources: + +@main +struct MyApp: App { +@Environment(\.scenePhase) private var scenePhase + +var body: some Scene { +WindowGroup { +MyRootView() +} +.onChange(of: scenePhase) { +if scenePhase == .background { +// Perform cleanup when all scenes within +// MyApp go to the background. +} +} +} +} + +## Topics + +### Getting scene phases + +`case active` + +The scene is in the foreground and interactive. + +`case inactive` + +The scene is in the foreground but should pause its work. + +`case background` + +The scene isn’t currently visible in the UI. + +## Relationships + +### Conforms To + +- `Comparable` +- `Copyable` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Monitoring scene life cycle + +`var scenePhase: ScenePhase` + +The current phase of the scene. + +--- + +# https://developer.apple.com/documentation/swiftui/settings + +- SwiftUI +- Settings + +Structure + +# Settings + +A scene that presents an interface for viewing and modifying an app’s settings. + +## Mentioned in + +Declaring a custom view + +Building and customizing the menu bar with SwiftUI + +## Overview + +Use a settings scene to have SwiftUI manage views with controls for your app’s settings when you declare your app using the `App` protocol. When you use an `App` declaration for multiple platforms, compile the settings scene only in macOS: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +#if os(macOS) +Settings { +SettingsView() +} +#endif +} +} + +Passing a view as the argument to a settings scene in the `App` declaration causes SwiftUI to enable the app’s Settings menu item. SwiftUI manages displaying and removing the settings view when the user selects the Settings item from the application menu or the equivalent keyboard shortcut: + +The contents of your settings view are controls that modify bindings to `UserDefaults` values that SwiftUI manages using the `AppStorage` property wrapper: + +struct GeneralSettingsView: View { +@AppStorage("showPreview") private var showPreview = true +@AppStorage("fontSize") private var fontSize = 12.0 + +var body: some View { +Form { +Toggle("Show Previews", isOn: $showPreview) +Slider(value: $fontSize, in: 9...96) { +Text("Font Size (\(fontSize, specifier: "%.0f") pts)") +} +} +} +} + +You can define your settings in a single view, or you can use a `TabView` to group settings into different collections: + +struct SettingsView: View { +var body: some View { +TabView { +Tab("General", systemImage: "gear") { +GeneralSettingsView() +} +Tab("Advanced", systemImage: "star") { +AdvancedSettingsView() +} +} +.scenePadding() +.frame(maxWidth: 350, minHeight: 100) +} +} + +## Topics + +### Creating a settings scene + +Creates a scene that presents an interface for viewing and modifying an app’s preferences. + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Managing a settings window + +`struct SettingsLink` + +A view that opens the Settings scene defined by an app. + +`struct OpenSettingsAction` + +An action that presents the settings scene for an app. + +`var openSettings: OpenSettingsAction` + +A Settings presentation action stored in a view’s environment. + +--- + +# https://developer.apple.com/documentation/swiftui/settingslink + +- SwiftUI +- SettingsLink + +Structure + +# SettingsLink + +A view that opens the Settings scene defined by an app. + +## Overview + +On macOS, clicking on the link opens the window for the scene or orders it to the front if it is already open. + +## Topics + +### Creating a settings link + +`init()` + +Creates a settings link with the default system label. + +Creates a settings link with a custom label. + +### Supporting types + +`struct DefaultSettingsLinkLabel` + +The default label to use for a settings link. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Managing a settings window + +`struct Settings` + +A scene that presents an interface for viewing and modifying an app’s settings. + +`struct OpenSettingsAction` + +An action that presents the settings scene for an app. + +`var openSettings: OpenSettingsAction` + +A Settings presentation action stored in a view’s environment. + +--- + +# https://developer.apple.com/documentation/swiftui/opensettingsaction + +- SwiftUI +- OpenSettingsAction + +Structure + +# OpenSettingsAction + +An action that presents the settings scene for an app. + +@MainActor @preconcurrency +struct OpenSettingsAction + +## Overview + +Use the `openSettings` environment value to get the instance of this structure for a given `Environment`. Then call the instance to open a window. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +For example, you can define a button that opens the settings window to a particular tab: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +#if os(macOS) +Settings { +SettingsView() +} +#endif +} +} + +struct SettingsView: View { +@AppStorage("selectedSettingsTab") +private var selectedSettingsTab = SettingsTab.general + +var body: some View { +TabView(selection: $selectedSettingsTab) { +GeneralSettings() +AdvancedSettings() +} +} +} + +struct AdvancedSettingsButton: View { +@AppStorage("selectedSettingsTab") +private var selectedSettingsTab = SettingsTab.general + +@Environment(\.openSettings) private var openSettings + +var body: some View { +Button("Open Advanced Settings…") { +selectedSettingsTab = .advanced +openSettings() +} +} +} + +enum SettingsTab: Int { +case general +case advanced +} + +## Topics + +### Instance Methods + +`func callAsFunction()` + +Opens the window associated to the `Settings` scene defined by this app, if one exists. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` + +## See Also + +### Managing a settings window + +`struct Settings` + +A scene that presents an interface for viewing and modifying an app’s settings. + +`struct SettingsLink` + +A view that opens the Settings scene defined by an app. + +`var openSettings: OpenSettingsAction` + +A Settings presentation action stored in a view’s environment. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/opensettings + +- SwiftUI +- EnvironmentValues +- openSettings + +Instance Property + +# openSettings + +A Settings presentation action stored in a view’s environment. + +var openSettings: OpenSettingsAction { get } + +## Discussion + +Use the `openSettings` environment value to get an `OpenSettingsAction` instance for a given `Environment`. Then call the instance to open a window. You call the instance directly because it defines a `callAsFunction()` method that Swift calls when you call the instance. + +For example, you can define a button that opens the settings window to a particular tab: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +#if os(macOS) +Settings { +SettingsView() +} +#endif +} +} + +struct SettingsView: View { +@AppStorage("selectedSettingsTab") +private var selectedSettingsTab = SettingsTab.general + +var body: some View { +TabView(selection: $selectedSettingsTab) { +GeneralSettings() +AdvancedSettings() +} +} +} + +struct AdvancedSettingsButton: View { +@AppStorage("selectedSettingsTab") +private var selectedSettingsTab = SettingsTab.general + +@Environment(\.openSettings) private var openSettings + +var body: some View { +Button("Open Advanced Settings…") { +selectedSettingsTab = .advanced +openSettings() +} +} +} + +enum SettingsTab: Int { +case general +case advanced +} + +## See Also + +### Managing a settings window + +`struct Settings` + +A scene that presents an interface for viewing and modifying an app’s settings. + +`struct SettingsLink` + +A view that opens the Settings scene defined by an app. + +`struct OpenSettingsAction` + +An action that presents the settings scene for an app. + +--- + +# https://developer.apple.com/documentation/swiftui/building-and-customizing-the-menu-bar-with-swiftui + +- SwiftUI +- Menus and commands +- Building and customizing the menu bar with SwiftUI + +Article + +# Building and customizing the menu bar with SwiftUI + +Provide a seamless, cross-platform user experience by building a native menu bar for iPadOS and macOS. + +## Overview + +On iPadOS and macOS, the menu bar provides access to crucial system-provided actions, such as Cut, Copy, Paste, and window management. The system groups these actions by function into menus and submenus through the menu bar. Apps can add contextual actions, like showing and hiding a sidebar, and can also create custom menus and menu items to allow people to perform app-specific actions from the menu bar. You can also bind menu bar to keyboard shortcuts to make your app quicker and easier to use. + +Apps include instances of `Scene` which display the main views of the app. Each scene provides different default menu sets and actions in the menu bar. Contextually relevant menus and actions, and even custom menus and actions, are specified with the `commands(content:)` modifier. + +The order of system-provided menus and menu items is consistent across all apps, but some menus and menu items are added depending on context. For example, document-based apps include options in the File menu for creating and opening documents. Similarly, not all apps include text-formatting capabilities, but those that include text editing views get a Format menu with options for choosing fonts and styling text by including `TextFormattingCommands` in the scene’s commands. The system will then add the appropriate menu groups and items that people expect in this context. + +## Populate the menu bar + +When your app launches, the menu bar populates with menus and menu items based on the implemented scenes and commands. Menu items for conditional or context-dependent commands are made active or inactive dynamically, using information from the active scene and its view hierarchy in focus. + +Each scene includes a set of default menus and menu items, which you can supplement with your own app-specific needs using the `commands(content:)` modifier. + +A scene’s default menus and menu items are dependent on the functionality the scene type supports. For example, `WindowGroup` includes commands for quitting and hiding the app, as well as Copy and Paste support and window management. + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +} +} + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} + +#if os(macOS) +Settings { +SettingsView() +} +#endif +} +} + +The `DocumentGroup` scene includes actions that `WindowGroup` includes, as well as a number of actions that support document management capabilities, like Save and Duplicate. + +Using scenes together creates a menu bar that includes menu items for all of the core functionality of an app that creates and edits documents, manages multiple windows, and exposes user-configurable settings. + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: MyAppDocument()) { file in +// ... +} + +#if os(macOS) +Settings { +// ... +} +#endif + +## Add contextual system-provided menu items + +Some common menu items are optional, but are helpful if the app contains certain capabilities. For example, not every scene includes a navigation sidebar, but for those that do, people expect to find a menu item that controls the navigation sidebar’s visibility. If your scene includes a navigation sidebar, include this menu item using the `commands(content:)` modifier and implementing `SidebarCommands`: + +@main +struct MyApp: App { +var body: some Scene { +DocumentGroup(newDocument: MyAppDocument()) { file in +ContentView(document: file.$document) +} +.commands { +SidebarCommands() +} +} +} + +For more information on system-provided command groups, such as text formatting, toolbars, and inspectors, see `Commands`. + +## Create custom menus and menu items + +Organize and group your app’s custom menu items in custom menus using `CommandMenu`. The system inserts custom menus into the menu bar after the View menu. + +Custom menu items are created with standard SwiftUI views, for example `Button` and `Toggle`. `Menu` creates a submenu. For more information about menu item creation, see Populating SwiftUI menus with adaptive controls. + +WindowGroup { +ContentView() +} +.commands { +CommandMenu("Actions") { +Button("Run", systemImage: "play.fill") { ... } +.keyboardShortcut("R") + +Button("Stop", systemImage: "stop.fill") { ... } +.keyboardShortcut(".") +} +} + +## Modify standard menus + +Modify system-provided menus using `CommandGroup`. These groups either extend menus with additional menu items or they replace existing menu items in the indicated command group. When you add menu items in this way, you can specify the location of the menu item based on system-provided menu items. + +WindowGroup { +ContentView() +} +.commands { +CommandGroup(before: .systemServices) { +Button("Check for Updates") { ... } +} + +CommandGroup(after: .newItem) { +Button("New from Clipboard") { ... } +} + +CommandGroup(replacing: .help) { +Button("User Manual") { ... } +} +} + +## Update menus and menu items dynamically + +Many menu items update their appearance or action depending on whether the scene is active, if the scene has focus, or what is currently selected. For example, the system grays out the Close Window command in the File menu when the app’s last window closes. Similarly, the Cut and Copy menu items are only available in the active window if the person selects copyable data. This behavior also applies to custom menus and menu items your app provides. + +Use `FocusedValue` to create contextual dependencies with your menus and menu items. For example, a menu item’s title can change if the current focus is on a photo or a photo album. A focused value is state data that requires an active scene with its view hierarchy in focus. Use a dynamic property to react to changes in the views of the scene. + +In the following, an app with a `WindowGroup` scene has an `Observable()` data model for each window that supplies that window’s contents. The active window’s data model is made available as a focused value using the `focusedSceneValue(_:)` modifier in the window view hierarchy. + +@Observable +final class DataModel { +var messages: [Message] +... +} + +struct ContentView: View { +@State private var model = DataModel() + +var body: some View { +VStack { +ForEach(model.messages) { ... } +} +.focusedSceneValue(model) +} +} + +Use the `FocusedValue` property wrapper to represent the active scene’s data model in the menu bar. The data model changes whether the “New Message” button is active or inactive: + +struct MessageCommands: Commands { +@FocusedValue(DataModel.self) private var dataModel: DataModel? + +var body: some Commands { +CommandGroup(after: .newItem) { +Button("New Message") { +dataModel?.messages.append(...) +} +.disabled(dataModel == nil) +} +} +} + +@main struct MessagesApp: App { +var body: some Scene { +WindowGroup { +ContentView() +} +.commands { +MessageCommands() +} +} +} + +Similar to the `Environment` dynamic property, `FocusedValue` uses a key you provide to find the current value. When the focused value is an `Observable` object, that key can simply be the object’s type. + +To share value-typed values, extend `FocusedValues` with a custom entry using the `Entry()` macro, and pass the resulting key path when declaring the `FocusedValue` property. Custom entry values must always be optional. + +struct ContentView: View { +@State private var items: [Item] = ... +@State private var selection: UUID? + +var body: some View { +List(items, selection: $selection) { item in +... +} +// When active, views in the same scene or in the menu bar +// can read the selected item ID. +.focusedSceneValue(\.selectedItemID, selection) +} +} + +struct ItemCommands: Commands { +@FocusedValue(\.selectedItemID) var selectedItemID: UUID? + +var body: some Commands { +... +} +} + +extension FocusedValues { +@Entry var selectedItemID: UUID? +} + +Use `focusedValue(_:)` when a menu item depends on the current placement of focus within the active scene’s view hierarchy. This creates a focused value that’s’ only visible to other views when focus is on the modified view or one of its subviews. When focus is elsewhere, the value of corresponding `FocusedValue` property is `nil`. + +var body: some View { +NavigationSplitView { +SidebarContent() +} detail: { +List(items, selection: $selection) { item in +... +} + +// The selected item ID is visible when focus is on the +// navigation detail list. If focus is on the sidebar, the value of +// `@FocusedValue(\.selectedItemID)` is `nil`. +.focusedValue(\.selectedItemID, selection) +} +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/menubarextra + +- SwiftUI +- MenuBarExtra + +Structure + +# MenuBarExtra + +A scene that renders itself as a persistent control in the system menu bar. + +## Overview + +Use a `MenuBarExtra` when you want to provide access to commonly used functionality, even when your app is not active. + +@main +struct AppWithMenuBarExtra: App { +@AppStorage("showMenuBarExtra") private var showMenuBarExtra = true + +var body: some Scene { +WindowGroup { +ContentView() +} +MenuBarExtra( +"App Menu Bar Extra", systemImage: "star", +isInserted: $showMenuBarExtra) +{ +StatusMenu() +} +} +} + +Or alternatively, to create a utility app that only shows in the menu bar. + +@main +struct UtilityApp: App { +var body: some Scene { +MenuBarExtra("Utility App", systemImage: "hammer") { +AppMenu() +} +} +} + +An app that only shows in the menu bar will be automatically terminated if the user removes the extra from the menu bar. + +For apps that only show in the menu bar, a common behavior is for the app to not display its icon in either the Dock or the application switcher. To enable this behavior, set the `LSUIElement` flag in your app’s `Information Property List` file to `true`. + +For more complex or data rich menu bar extras, you can use the `window` style, which displays a popover-like window from the menu bar icon that contains standard controls. You define the layout and contents of those controls with the content that you provide: + +MenuBarExtra("Utility App", systemImage: "hammer") { +ScrollView { +LazyVGrid(...) +} +} +.menuBarExtraStyle(.window) + +## Topics + +### Creating a menu bar extra + +`init(_:content:)` + +Creates a menu bar extra with a key for a localized string to use as the label. The extra defines the primary scene of an `App`. + +Creates a menu bar extra that will be displayed in the system menu bar, and defines the primary scene of an `App`. + +`init(_:isInserted:content:)` + +Creates a menu bar extra with a key for a localized string to use as the label. The item will be displayed in the system menu bar when the specified binding is set to `true`. If the user removes the item from the menu bar, the binding will be set to `false`. + +Creates a menu bar extra. The item will be displayed in the system menu bar when the specified binding is set to `true`. If the user removes the item from the menu bar, the binding will be set to `false`. + +### Creating a menu bar extra with an image + +`init(_:image:content:)` + +Creates a menu bar extra with an image to use as the items label. The provided title will be used by the accessibility system. + +`init(_:image:isInserted:content:)` + +`init(_:systemImage:content:)` + +Creates a menu bar extra with a system image to use as the items label. The provided title will be used by the accessibility system. + +`init(_:systemImage:isInserted:content:)` + +## Relationships + +### Conforms To + +- `Scene` + +## See Also + +### Creating a menu bar extra + +Sets the style for menu bar extra created by this scene. + +`protocol MenuBarExtraStyle` + +A specification for the appearance and behavior of a menu bar extra scene. + +--- + +# https://developer.apple.com/documentation/swiftui/scene/menubarextrastyle(_:) + +#app-main) + +- SwiftUI +- Scene +- menuBarExtraStyle(\_:) + +Instance Method + +# menuBarExtraStyle(\_:) + +Sets the style for menu bar extra created by this scene. + +nonisolated + +## See Also + +### Creating a menu bar extra + +`struct MenuBarExtra` + +A scene that renders itself as a persistent control in the system menu bar. + +`protocol MenuBarExtraStyle` + +A specification for the appearance and behavior of a menu bar extra scene. + +--- + +# https://developer.apple.com/documentation/swiftui/menubarextrastyle + +- SwiftUI +- MenuBarExtraStyle + +Protocol + +# MenuBarExtraStyle + +A specification for the appearance and behavior of a menu bar extra scene. + +protocol MenuBarExtraStyle + +## Topics + +### Getting menu bar extra styles + +`static var automatic: AutomaticMenuBarExtraStyle` + +The default menu bar extra style. + +`static var menu: PullDownMenuBarExtraStyle` + +A menu bar extra style that renders its contents as a menu that pulls down from the icon in the menu bar. + +`static var window: WindowMenuBarExtraStyle` + +A menu bar extra style that renders its contents in a popover-like window. + +### Supporting types + +`struct AutomaticMenuBarExtraStyle` + +The default menu bar extra style. You can also use `automatic` to construct this style. + +`struct PullDownMenuBarExtraStyle` + +`struct WindowMenuBarExtraStyle` + +## Relationships + +### Conforming Types + +- `AutomaticMenuBarExtraStyle` +- `PullDownMenuBarExtraStyle` +- `WindowMenuBarExtraStyle` + +## See Also + +### Creating a menu bar extra + +`struct MenuBarExtra` + +A scene that renders itself as a persistent control in the system menu bar. + +Sets the style for menu bar extra created by this scene. + +--- + +# https://developer.apple.com/documentation/swiftui/wknotificationscene + +- SwiftUI +- WKNotificationScene + +Structure + +# WKNotificationScene + +A scene which appears in response to receiving the specified category of remote or local notifications. + +## Mentioned in + +Declaring a custom view + +## Topics + +### Creating a notification scene + +`init(controller: Controller.Type, category: String)` + +Creates a scene that appears in response to receiving a specific category of remote or local notifications. + +## Relationships + +### Conforms To + +- `Scene` + +--- + +# https://developer.apple.com/documentation/swiftui/scene) + + + +--- + +# https://developer.apple.com/documentation/swiftui/documents). + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/commands(content:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scenebuilder) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/scenephase) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scenephase) + + + +--- + +# https://developer.apple.com/documentation/swiftui/settings) + + + +--- + +# https://developer.apple.com/documentation/swiftui/settingslink) + + + +--- + +# https://developer.apple.com/documentation/swiftui/opensettingsaction) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/opensettings) + + + +--- + +# https://developer.apple.com/documentation/swiftui/building-and-customizing-the-menu-bar-with-swiftui) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/menubarextra) + + + +--- + +# https://developer.apple.com/documentation/swiftui/scene/menubarextrastyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/menubarextrastyle) + + + +--- + +# https://developer.apple.com/documentation/swiftui/wknotificationscene) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationstack + +- SwiftUI +- NavigationStack + +Structure + +# NavigationStack + +A view that displays a root view and enables you to present additional views over the root view. + +@MainActor @preconcurrency + +## Mentioned in + +Migrating to new navigation types + +Understanding the navigation stack + +Adding a search interface to your app + +## Overview + +Use a navigation stack to present a stack of views over a root view. People can add views to the top of the stack by clicking or tapping a `NavigationLink`, and remove views using built-in, platform-appropriate controls, like a Back button or a swipe gesture. The stack always displays the most recently added view that hasn’t been removed, and doesn’t allow the root view to be removed. + +To create navigation links, associate a view with a data type by adding a `navigationDestination(for:destination:)` modifier inside the stack’s view hierarchy. Then initialize a `NavigationLink` that presents an instance of the same kind of data. The following stack displays a `ParkDetails` view for navigation links that present data of type `Park`: + +NavigationStack { +List(parks) { park in +NavigationLink(park.name, value: park) +} +.navigationDestination(for: Park.self) { park in +ParkDetails(park: park) +} +} + +In this example, the `List` acts as the root view and is always present. Selecting a navigation link from the list adds a `ParkDetails` view to the stack, so that it covers the list. Navigating back removes the detail view and reveals the list again. The system disables backward navigation controls when the stack is empty and the root view, namely the list, is visible. + +### Manage navigation state + +By default, a navigation stack manages state to keep track of the views on the stack. However, your code can share control of the state by initializing the stack with a binding to a collection of data values that you create. The stack adds items to the collection as it adds views to the stack and removes items when it removes views. For example, you can create a `State` property to manage the navigation for the park detail view: + +@State private var presentedParks: [Park] = [] + +Initializing the state as an empty array indicates a stack with no views. Provide a `Binding` to this state property using the dollar sign ( `$`) prefix when you create a stack using the `init(path:root:)` initializer: + +NavigationStack(path: $presentedParks) { +List(parks) { park in +NavigationLink(park.name, value: park) +} +.navigationDestination(for: Park.self) { park in +ParkDetails(park: park) +} +} + +Like before, when someone taps or clicks the navigation link for a park, the stack displays the `ParkDetails` view using the associated park data. However, now the stack also puts the park data in the `presentedParks` array. Your code can observe this array to read the current stack state. It can also modify the array to change the views on the stack. For example, you can create a method that configures the stack with a specific set of parks: + +func showParks() { +presentedParks = [Park("Yosemite"), Park("Sequoia")] +} + +The `showParks` method replaces the stack’s display with a view that shows details for Sequoia, the last item in the new `presentedParks` array. Navigating back from that view removes Sequoia from the array, which reveals a view that shows details for Yosemite. Use a path to support deep links, state restoration, or other kinds of programmatic navigation. + +### Navigate to different view types + +To create a stack that can present more than one kind of view, you can add multiple `navigationDestination(for:destination:)` modifiers inside the stack’s view hierarchy, with each modifier presenting a different data type. The stack matches navigation links with navigation destinations based on their respective data types. + +To create a path for programmatic navigation that contains more than one kind of data, you can use a `NavigationPath` instance as the path. + +## Topics + +### Creating a navigation stack + +Creates a navigation stack that manages its own navigation state. + +### Creating a navigation stack with a path + +`init(path:root:)` + +Creates a navigation stack with homogeneous navigation state that you can control. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Stacking views in one column + +`struct NavigationPath` + +A type-erased list of data representing the content of a navigation stack. + +Associates a destination view with a presented data type for use within a navigation stack. + +Associates a destination view with a binding that can be used to push the view onto a `NavigationStack`. + +`func navigationDestination(item: Binding>, destination: (D) -> C) -> some View` + +Associates a destination view with a bound value for use within a navigation stack or navigation split view + +--- + +# https://developer.apple.com/documentation/swiftui/tabview + +- SwiftUI +- TabView + +Structure + +# TabView + +A view that switches between multiple child views using interactive user interface elements. + +## Overview + +To create a user interface with tabs, place `Tab` s in a `TabView`. On iOS, you can also use one of the badge modifiers, like `badge(_:)`, to assign a badge to each of the tabs. + +The following example creates a tab view with three tabs, each presenting a custom child view. The first tab has a numeric badge and the third has a string badge. + +TabView { +Tab("Received", systemImage: "tray.and.arrow.down.fill") { +ReceivedView() +} +.badge(2) + +Tab("Sent", systemImage: "tray.and.arrow.up.fill") { +SentView() +} + +Tab("Account", systemImage: "person.crop.circle.fill") { +AccountView() +} +.badge("!") +} + +To programatically select different tabs, use the `init(selection:content:)` initializer. You can assign a selection value to each tab using a `Tab` initializer that takes a value. Each tab should have a unique selection value and all tabs should have the same selection value type. When people select a tab in the tab view, the tab view updates the selection binding to the value of the currently selected tab. + +The following example creates a tab view that supports programatic selection and has 3 tabs. + +TabView(selection: $selection) { +Tab("Received", systemImage: "tray.and.arrow.down.fill", value: 0) { +ReceivedView() +} + +Tab("Sent", systemImage: "tray.and.arrow.up.fill", value: 1) { +SentView() +} + +Tab("Account", systemImage: "person.crop.circle.fill", value: 2) { +AccountView() +} +} + +You can use the `page` style to display a tab view with multiple scrolling pages of content. + +The following example uses a `ForEach` to create a scrolling tab view that shows the temperatures of various cities. + +TabView { +ForEach(cities) { city in +TemperatureView(city) +} +} +.tabViewStyle(.page) + +### Using tab sections + +The `sidebarAdaptable` style supports declaring a secondary tab hierarchy by grouping tabs with a `TabSection`. + +On iPadOS, tab sections appear in both the sidebar and the tab bar. On iOS and the horizontally compact size class on iPadOS, secondary tabs appear in the tab bar. When secondary tabs appear in the tab bar, the section header doesn’t appear in the tab bar. Consider limiting the number of tabs on iOS and the iPadOS horizontal compact size class so all tabs fit in the tab bar. + +The following example has 5 tabs, three of which are grouped within a `TabSection`. + +TabView { +Tab("Requests", systemImage: "paperplane") { +RequestsView() +} + +Tab("Account", systemImage: "person.crop.circle.fill") { +AccountView() +} + +TabSection("Messages") { +Tab("Received", systemImage: "tray.and.arrow.down.fill") { +ReceivedView() +} + +Tab("Drafts", systemImage: "pencil") { +DraftsView() +} +} +} +.tabViewStyle(.sidebarAdaptable) + +### Changing tab structure between horizontal and regular size classes + +The following example shows a `TabView` with 4 tabs in compact and 5 tabs in regular. In compact, one of the tabs is a ‘Browse’ tab that displays a custom list view. This list view allows navigating to the destinations that are contained within the ‘Library’ and ‘Playlists’ sections in the horizontally regular size class. The navigation path and the selection state are updated when the number of tabs changes. + +struct BrowseTabExample: View { +@Environment(\.horizontalSizeClass) var sizeClass + +@State var selection: MusicTab = .listenNow +@State var browseTabPath: [MusicTab] = [] +@State var playlists = [Playlist("All Playlists"), Playlist("Running")] + +var body: some View { +TabView(selection: $selection) { +Tab("Listen Now", systemImage: "play.circle", value: .listenNow) { +ListenNowView() +} + +Tab("Radio", systemImage: "dot.radiowaves.left.and.right", value: .radio) { +RadioView() +} + +Tab("Search", systemImage: "magnifyingglass", value: .search) { +SearchDetailView() +} + +Tab("Browse", systemImage: "list.bullet", value: .browse) { +LibraryView(path: $browseTabPath) +} +.hidden(sizeClass != .compact) + +TabSection("Library") { +Tab("Recently Added", systemImage: "clock", value: MusicTab.library(.recentlyAdded)) { +RecentlyAddedView() +} + +Tab("Artists", systemImage: "music.mic", value: MusicTab.library(.artists)) { +ArtistsView() +} +} +.hidden(sizeClass == .compact) + +TabSection("Playlists") { +ForEach(playlists) { playlist in +Tab(playlist.name, image: playlist.imafe, value: MusicTab.playlists(playlist)) { +playlist.detailView() +} +} +} +.hidden(sizeClass == .compact) +} +.tabViewStyle(.sidebarAdaptable) +.onChange(of: sizeClass, initial: true) { _, sizeClass in +if sizeClass == .compact && selection.showInBrowseTab { +browseTabPath = [selection] +selection = .browse +} else if sizeClass == .regular && selection == .browse { +selection = browseTabPath.last ?? .library(.recentlyAdded) +} +} +} +} +} + +struct LibraryView: View { +@Binding var path: [MusicTab] + +var body: some View { +NavigationStack(path: $path) { +List { +ForEach(MusicLibraryTab.allCases, id: \.self) { tab in +NavigationLink(tab.rawValue, value: MusicTab.library(tab)) +} +// Code to add playlists here +} +.navigationDestination(for: MusicTab.self) { tab in +tab.detail() +} +} +} +} + +### Adding support for customization + +You can allow people to customize the tabs in a `TabView` by using `sidebarAdaptable` style with the `tabViewCustomization(_:)` modifier. Customization allows people to drag tabs from the sidebar to the tab bar, hide tabs, and rearrange tabs in the sidebar. + +All tabs and tab sections that support customization need to have a customization ID. You can mark a tab as being non-customizable by specifying a `disabled` behavior in all adaptable tab bar placements using `customizationBehavior(_:for:)`. + +On macOS, a default interaction is provided for reordering sections but not for controlling the visibility of individual tabs. A custom experience should be provided if desired by setting the visibility of the tab on the customization. + +You can use `@AppStorage` or `@SceneStorage` to automatically persist any visibility or section order customizations a person makes. + +The following example supports customizing all 4 tabs in the tab view and uses `@AppStorage` to persist the customizations a person makes. + +@AppStorage +private var customization: TabViewCustomization + +TabView { +Tab("Home", systemImage: "house") { +MyHomeView() +} +.customizationID("com.myApp.home") + +Tab("Reports", systemImage: "chart.bar") { +MyReportsView() +} +.customizationID("com.myApp.reports") + +TabSection("Categories") { +Tab("Climate", systemImage: "fan") { +ClimateView() +} +.customizationID("com.myApp.climate") + +Tab("Lights", systemImage: "lightbulb") { +LightsView() +} +.customizationID("com.myApp.lights") +} +.customizationID("com.myApp.browse") +} +.tabViewStyle(.sidebarAdaptable) +.tabViewCustomization($customization) + +## Topics + +### Creating a tab view + +`init(content:)` + +Creates a tab view that uses a builder to create its tabs. + +`init(selection:content:)` + +Creates a tab view that uses a builder to create and specify selection values for its tabs. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Presenting views in tabs + +Enhancing your app’s content with tab navigation + +Keep your app content front and center while providing quick access to navigation using the tab bar. + +`struct Tab` + +The content for a tab and the tab’s associated tab item in a tab view. + +`struct TabRole` + +A value that defines the purpose of the tab. + +`struct TabSection` + +A container that you can use to add hierarchy within a tab view. + +Sets the style for the tab view within the current environment. + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewstyle(_:) + +#app-main) + +- SwiftUI +- View +- navigationSplitViewStyle(\_:) + +Instance Method + +# navigationSplitViewStyle(\_:) + +Sets the style for navigation split views within this view. + +nonisolated + +## Parameters + +`style` + +The style to set. + +## Return Value + +A view that uses the specified navigation split view style. + +## Mentioned in + +Migrating to new navigation types + +## See Also + +### Presenting views in columns + +Bringing robust navigation structure to your SwiftUI app + +Use navigation links, stacks, destinations, and paths to provide a streamlined experience for all platforms, as well as behaviors such as deep linking and state restoration. + +Improve navigation behavior in your app by replacing navigation views with navigation stacks and navigation split views. + +`struct NavigationSplitView` + +A view that presents views in two or three columns, where selections in leading columns control presentations in subsequent columns. + +Sets a fixed, preferred width for the column containing this view. + +Sets a flexible, preferred width for the column containing this view. + +`struct NavigationSplitViewVisibility` + +The visibility of the leading columns in a navigation split view. + +`struct NavigationLink` + +A view that controls a navigation presentation. + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationtitle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/understanding-the-composition-of-navigation-stack + + + +--- + +# https://developer.apple.com/documentation/swiftui/bringing-robust-navigation-structure-to-your-swiftui-app + + + +--- + +# https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewcolumnwidth(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewcolumnwidth(min:ideal:max:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitviewvisibility + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationlink + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationpath + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(for:destination:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(ispresented:destination:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(item:destination:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitviewcolumn + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsubtitle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdocument(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdocument(_:preview:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationbarbackbuttonhidden(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationbartitledisplaymode(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationbaritem + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/sidebarrowsize + + + +--- + +# https://developer.apple.com/documentation/swiftui/sidebarrowsize + +- SwiftUI +- SidebarRowSize + +Enumeration + +# SidebarRowSize + +The standard sizes of sidebar rows. + +enum SidebarRowSize + +## Overview + +On macOS, sidebar rows have three different sizes: small, medium, and large. The size is primarily controlled by the current users’ “Sidebar Icon Size” in Appearance settings, and applies to all applications. + +On all other platforms, the only supported sidebar size is `.medium`. + +This size can be read or written in the environment using `EnvironmentValues.sidebarRowSize`. + +## Topics + +### Getting row sizes + +`case small` + +The standard “small” row size + +`case medium` + +The standard “medium” row size + +`case large` + +The standard “large” row size + +## Relationships + +### Conforms To + +- `Copyable` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring the sidebar + +`var sidebarRowSize: SidebarRowSize` + +The current size of sidebar rows. + +--- + +# https://developer.apple.com/documentation/swiftui/enhancing-your-app-content-with-tab-navigation + + + +--- + +# https://developer.apple.com/documentation/swiftui/tab + +- SwiftUI +- Tab + +Structure + +# Tab + +The content for a tab and the tab’s associated tab item in a tab view. + +## Topics + +### Creating a tab + +Creates a new tab that you can use in a tab view, with an empty label. + +`init(value:content:)` + +`init(value:role:content:)` + +Creates a new tab with a label inferred from the role. + +### Creating a tab with label + +Creates a new tab with a label that you can use in a tab view. + +### Creating a tab with system symbol + +`init(_:systemImage:content:)` + +Creates a new tab that you can use in a tab view using a system image for the tab item’s image, and a localized string key label. + +`init(_:systemImage:value:content:)` + +Creates a tab that the tab view presents when the tab view’s selection matches the tab’s value using a system image for the tab’s tab item image, with a localized string key label. + +`init(_:systemImage:role:content:)` + +`init(_:systemImage:value:role:content:)` + +### Creating a tab with image + +`init(_:image:content:)` + +Creates a new tab that you can use in a tab view, with a localized string key label. + +`init(_:image:value:content:)` + +Creates a tab that the tab view presents when the tab view’s selection matches the tab’s value, with a localized string key label. + +`init(_:image:role:content:)` + +`init(_:image:value:role:content:)` + +### Supporting types + +`struct DefaultTabLabel` + +The default label to use for a tab or tab section. + +### Initializers + +`init(value:content:label:)` + +`init(value:role:content:label:)` + +## Relationships + +### Conforms To + +- `Copyable` +- `TabContent` +Conforms when `Value` conforms to `Hashable`, `Content` conforms to `View`, and `Label` conforms to `View`. + +## See Also + +### Presenting views in tabs + +Enhancing your app’s content with tab navigation + +Keep your app content front and center while providing quick access to navigation using the tab bar. + +`struct TabView` + +A view that switches between multiple child views using interactive user interface elements. + +`struct TabRole` + +A value that defines the purpose of the tab. + +`struct TabSection` + +A container that you can use to add hierarchy within a tab view. + +Sets the style for the tab view within the current environment. + +--- + +# https://developer.apple.com/documentation/swiftui/tabrole + +- SwiftUI +- TabRole + +Structure + +# TabRole + +A value that defines the purpose of the tab. + +struct TabRole + +## Topics + +### Type Properties + +`static var search: TabRole` + +The search role. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Presenting views in tabs + +Enhancing your app’s content with tab navigation + +Keep your app content front and center while providing quick access to navigation using the tab bar. + +`struct TabView` + +A view that switches between multiple child views using interactive user interface elements. + +`struct Tab` + +The content for a tab and the tab’s associated tab item in a tab view. + +`struct TabSection` + +A container that you can use to add hierarchy within a tab view. + +Sets the style for the tab view within the current environment. + +--- + +# https://developer.apple.com/documentation/swiftui/tabsection + +- SwiftUI +- TabSection + +Structure + +# TabSection + +A container that you can use to add hierarchy within a tab view. + +## Overview + +Use `TabSection` to organize tab content into separate sections. Each section has custom tab content that you provide on a per-instance basis. You can also provide a header for each section. + +## Topics + +### Creating a tab section + +`init(content:)` + +Creates a section with the provided section content. + +`init(_:content:)` + +Creates a section with the provided content. + +`init(content:header:)` + +Creates a section with a header and the provided section content. + +### Supporting types + +`struct DefaultTabLabel` + +The default label to use for a tab or tab section. + +## Relationships + +### Conforms To + +- `Copyable` +- `TabContent` +Conforms when `Header` conforms to `View`, `Content` conforms to `TabContent`, `Footer` conforms to `View`, and `SelectionValue` is `Content.TabValue`. + +## See Also + +### Presenting views in tabs + +Enhancing your app’s content with tab navigation + +Keep your app content front and center while providing quick access to navigation using the tab bar. + +`struct TabView` + +A view that switches between multiple child views using interactive user interface elements. + +`struct Tab` + +The content for a tab and the tab’s associated tab item in a tab view. + +`struct TabRole` + +A value that defines the purpose of the tab. + +Sets the style for the tab view within the current environment. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarheader(content:) + +#app-main) + +- SwiftUI +- View +- tabViewSidebarHeader(content:) + +Instance Method + +# tabViewSidebarHeader(content:) + +Adds a custom header to the sidebar of a tab view. + +nonisolated + +## Discussion + +The header appears at the top of the sidebar before any tab labels and can scroll with the content. The header is only visible when the `TabView` is displaying the sidebar. + +The following example adds a welcome message to the top of the sidebar: + +TabView { +Tab("Home", systemImage: "house") { +HomeView() +} + +Tab("Alerts", systemImage: "bell") { +AlertsView() +} + +Tab("Browse", systemImage: "list.bullet") { +MyBrowseView() +} +} +.tabViewStyle(.sidebarAdaptable) +.tabViewSidebarHeader { +WelcomeHeaderView() +} + +## See Also + +### Configuring a tab bar + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarfooter(content:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarbottombar(content:) + +#app-main) + +- SwiftUI +- View +- tabViewSidebarBottomBar(content:) + +Instance Method + +# tabViewSidebarBottomBar(content:) + +Adds a custom bottom bar to the sidebar of a tab view. + +nonisolated + +## Discussion + +The content is pinned at the bottom of the sidebar, so it’s always visible when the sidebar is visible and doesn’t scroll with the content. + +The following example adds an account button to the bottom of the sidebar: + +TabView { +Tab("Home", systemImage: "house") { +HomeView() +} + +Tab("Alerts", systemImage: "bell") { +AlertsView() +} + +Tab("Browse", systemImage: "list.bullet") { +MyBrowseView() +} +} +.tabViewStyle(.sidebarAdaptable) +.tabViewSidebarBottomBar { +AccountButton() +} + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/adaptabletabbarplacement + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/tabbarplacement + +- SwiftUI +- EnvironmentValues +- tabBarPlacement + +Instance Property + +# tabBarPlacement + +The current placement of the tab bar. + +var tabBarPlacement: TabBarPlacement? { get } + +## Discussion + +Note that this value is only set within the content views of a `TabView`. + +A `nil` value corresponds to an undefined placement. + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/tabbarplacement + +- SwiftUI +- TabBarPlacement + +Structure + +# TabBarPlacement + +A placement for tabs in a tab view. + +struct TabBarPlacement + +## Topics + +### Type Properties + +`static let bottomBar: TabBarPlacement` + +Bottom bar of a tab view. + +`static let ornament: TabBarPlacement` + +Tab view displaying as an ornament. + +`static let pageIndicator: TabBarPlacement` + +Tab view displaying as an indicator that shows the position within the pages. + +`static let sidebar: TabBarPlacement` + +The sidebar of a tab view. + +`static let topBar: TabBarPlacement` + +Top bar of a tab view. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/istabbarshowingsections + +- SwiftUI +- EnvironmentValues +- isTabBarShowingSections + +Instance Property + +# isTabBarShowingSections + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +var isTabBarShowingSections: Bool { get } + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`struct TabBarMinimizeBehavior` Beta + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/tabbarminimizebehavior + +- SwiftUI +- TabBarMinimizeBehavior Beta + +Structure + +# TabBarMinimizeBehavior + +struct TabBarMinimizeBehavior + +## Topics + +### Type Properties + +`static let automatic: TabBarMinimizeBehavior` + +Determine the behavior automatically based on the surrounding context. + +`static let never: TabBarMinimizeBehavior` + +Never minimize the tab bar. + +`static let onScrollDown: TabBarMinimizeBehavior` + +Minimize the tab bar when downwards scrolling starts. Minimizing is supported for tab bars on only iPhone. + +`static let onScrollUp: TabBarMinimizeBehavior` + +Minimize the tab bar when upwards scrolling starts. Minimizing is supported for tab bars on only iPhone. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`enum TabViewBottomAccessoryPlacement` + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/tabviewbottomaccessoryplacement + +- SwiftUI +- TabViewBottomAccessoryPlacement Beta + +Enumeration + +# TabViewBottomAccessoryPlacement + +A placement of the bottom accessory in a tab view. You can use this to adjust the content of the accessory view based on the placement. + +enum TabViewBottomAccessoryPlacement + +## Overview + +The following example shows playback controls when the view is inline, and an expanded slider player view when the view is expanded. + +struct MusicPlaybackView: View { +@Environment(\.tabViewBottomAccessoryPlacement) var placement + +var body: some View { +switch placement { +case .inline: +ControlsPlaybackView() +case .expanded: +SliderPlaybackView() +} +} + +You can set the `TabView` bottom accessory using `tabViewBottomAccessory(content:)` + +TabView { +Tab("Home", systemImage: "house") { +HomeView() +} + +Tab("Alerts", systemImage: "bell") { +AlertsView() +} + +TabSection("Categories") { +Tab("Climate", systemImage: "fan") { +ClimateView() +} + +Tab("Lights", systemImage: "lightbulb") { +LightsView() +} +} +} +.tabViewBottomAccessory { +HomeStatusView() +} + +## Topics + +### Enumeration Cases + +`case expanded` + +The bar is expanded on top of the bottom tab bar, if there is a bottom tab bar, or at the bottom of the tab’s content view. + +`case inline` + +The view is displayed in line with the bottom tab bar. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Configuring a tab bar + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +`struct AdaptableTabBarPlacement` + +A placement for tabs in a tab view using the adaptable sidebar style. + +`var tabBarPlacement: TabBarPlacement?` + +The current placement of the tab bar. + +`struct TabBarPlacement` + +A placement for tabs in a tab view. + +`var isTabBarShowingSections: Bool` + +A Boolean value that determines whether a tab view shows the expanded contents of a tab section. + +`struct TabBarMinimizeBehavior` Beta + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/sectionactions(content:) + +#app-main) + +- SwiftUI +- View +- sectionActions(content:) + +Instance Method + +# sectionActions(content:) + +Adds custom actions to a section. + +nonisolated + +## Discussion + +On iOS, the actions are displayed as items after the content of the section. On macOS, the actions are displayed when a user hovers over the section. + +The following example adds an ‘Add’ button to the ‘Categories’ section. + +List { +Label("Home", systemImage: "house") +Label("Alerts", systemImage: "bell") + +Section("Categories") { +Label("Climate", systemImage: "fan") +Label("Lights", systemImage: "lightbulb") +} +.sectionActions { +Button("Add Category", systemImage: "plus") { } +} +} + +## See Also + +### Configuring a tab + +`struct TabPlacement` + +A place that a tab can appear. + +`struct TabContentBuilder` + +A result builder that constructs tabs for a tab view that supports programmatic selection. This builder requires that all tabs in the tab view have the same selection type. + +`protocol TabContent` + +A type that provides content for programmatically selectable tabs in a tab view. + +`struct AnyTabContent` + +Type erased tab content. + +--- + +# https://developer.apple.com/documentation/swiftui/tabplacement + +- SwiftUI +- TabPlacement + +Structure + +# TabPlacement + +A place that a tab can appear. + +struct TabPlacement + +## Overview + +Not all `TabView` styles support all placements. + +## Topics + +### Type Properties + +`static let automatic: TabPlacement` + +The default tab location. + +`static let pinned: TabPlacement` + +The pinned tab placement location. + +`static let sidebarOnly: TabPlacement` + +The sidebar tab placement location. + +## Relationships + +### Conforms To + +- `Equatable` +- `Hashable` + +## See Also + +### Configuring a tab + +Adds custom actions to a section. + +`struct TabContentBuilder` + +A result builder that constructs tabs for a tab view that supports programmatic selection. This builder requires that all tabs in the tab view have the same selection type. + +`protocol TabContent` + +A type that provides content for programmatically selectable tabs in a tab view. + +`struct AnyTabContent` + +Type erased tab content. + +--- + +# https://developer.apple.com/documentation/swiftui/tabcontentbuilder + +- SwiftUI +- TabContentBuilder + +Structure + +# TabContentBuilder + +A result builder that constructs tabs for a tab view that supports programmatic selection. This builder requires that all tabs in the tab view have the same selection type. + +@resultBuilder + +## Topics + +### Structures + +`struct Content` + +A view representation of the content of a builder-based tab view with selection. + +### Type Methods + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildblock(_:_:_:_:_:_:_:_:_:_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildexpression(_:)) + +`](https://developer.apple.com/documentation/swiftui/tabcontentbuilder/buildif(_:)) + +## See Also + +### Configuring a tab + +Adds custom actions to a section. + +`struct TabPlacement` + +A place that a tab can appear. + +`protocol TabContent` + +A type that provides content for programmatically selectable tabs in a tab view. + +`struct AnyTabContent` + +Type erased tab content. + +--- + +# https://developer.apple.com/documentation/swiftui/tabcontent + + + +--- + +# https://developer.apple.com/documentation/swiftui/anytabcontent + +- SwiftUI +- AnyTabContent + +Structure + +# AnyTabContent + +Type erased tab content. + +## Topics + +### Initializers + +Create an instance that type-erases `tabContent`. + +## Relationships + +### Conforms To + +- `TabContent` + +## See Also + +### Configuring a tab + +Adds custom actions to a section. + +`struct TabPlacement` + +A place that a tab can appear. + +`struct TabContentBuilder` + +A result builder that constructs tabs for a tab view that supports programmatic selection. This builder requires that all tabs in the tab view have the same selection type. + +`protocol TabContent` + +A type that provides content for programmatically selectable tabs in a tab view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewcustomization(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabviewcustomization + +- SwiftUI +- TabViewCustomization + +Structure + +# TabViewCustomization + +The customizations a person makes to an adaptable sidebar tab view. + +struct TabViewCustomization + +## Overview + +By default, if a person hasn’t made customizations, tabs appear according to the default builder visibilities and sections appear in the order you declare in the tab view’s tab builder. + +You can change the default visibility by using the `defaultVisibility(_:for:)` with a `sidebar` placement. + +You can change the default section order by changing the order in the builder. If there’s an existing persisted customization, reset the order by calling `resetTabOrder()` when you change the order. + +All tabs and tab sections that support customization need to have a customization ID. You can mark a tab as being non-customizable by specifying a `disabled` behavior in all adaptable tab bar placements using `customizationBehavior(_:for:)`. + +On macOS, a default interaction is provided for reordering sections but not for controlling the visibility of individual tabs. A custom experience should be provided if desired by setting the visibility of the tab on the customization. + +The following code example uses `@AppStorage` to automatically persist any visibility or section order customizations a person makes. + +@AppStorage +private var customization: TabViewCustomization + +TabView { +Tab("Home", systemImage: "house") { +MyHomeView() +} +.customizationID("com.myApp.home") + +Tab("Reports", systemImage: "chart.bar") { +MyReportsView() +} +.customizationID("com.myApp.reports") + +TabSection("Categories") { +Tab("Climate", systemImage: "fan") { +ClimateView() +} +.customizationID("com.myApp.climate") + +Tab("Lights", systemImage: "lightbulb") { +LightsView() +} +.customizationID("com.myApp.lights") +} +.customizationID("com.myApp.browse") +} +.tabViewStyle(.sidebarAdaptable) +.tabViewCustomization($customization) + +## Topics + +### Structures + +`struct SectionCustomization` + +The customizations a user has made to a `TabSection`. + +`struct TabCustomization` + +The customizations a user has made to a `Tab`. + +### Initializers + +`init()` + +Creates an empty tab sidebar customization. + +### Instance Methods + +`func resetSectionOrder()` + +Resets ordering ) + +Resets all tab sidebar visibilities + +The customization of the section, identified by its customization identifier. + +The customization for a section’s children, identified by the section’s customization identifier. + +Deprecated + +The visibility of the tab identified by its customization identifier. + +The customization of the tab, identified by its customization identifier. + +## Relationships + +### Conforms To + +- `Decodable` +- `Encodable` +- `Equatable` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Enabling tab customization + +Specifies the customizations to apply to the sidebar representation of the tab view. + +`struct TabCustomizationBehavior` + +The customization behavior of customizable tab view content. + +--- + +# https://developer.apple.com/documentation/swiftui/tabcustomizationbehavior + + + +--- + +# https://developer.apple.com/documentation/swiftui/hsplitview + +- SwiftUI +- HSplitView + +Structure + +# HSplitView + +A layout container that arranges its children in a horizontal line and allows the user to resize them using dividers placed between them. + +## Topics + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Displaying views in multiple panes + +`struct VSplitView` + +A layout container that arranges its children in a vertical line and allows the user to resize them using dividers placed between them. + +--- + +# https://developer.apple.com/documentation/swiftui/vsplitview + +- SwiftUI +- VSplitView + +Structure + +# VSplitView + +A layout container that arranges its children in a vertical line and allows the user to resize them using dividers placed between them. + +## Topics + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Displaying views in multiple panes + +`struct HSplitView` + +A layout container that arranges its children in a horizontal line and allows the user to resize them using dividers placed between them. + +--- + +# https://developer.apple.com/documentation/swiftui/navigationview + +- SwiftUI +- NavigationView Deprecated + +Structure + +# NavigationView + +A view for presenting a stack of views that represents a visible path in a navigation hierarchy. + +iOS 13.0–26.0DeprecatediPadOS 13.0–26.0DeprecatedMac Catalyst 13.0–26.0DeprecatedmacOS 10.15–26.0DeprecatedtvOS 13.0–26.0DeprecatedvisionOS 1.0–26.0DeprecatedwatchOS 7.0–26.0Deprecated + +## Mentioned in + +Migrating to new navigation types + +Displaying data in lists + +Picking container views for your content + +## Overview + +Use a `NavigationView` to create a navigation-based app in which the user can traverse a collection of views. Users navigate to a destination view by selecting a `NavigationLink` that you provide. On iPadOS and macOS, the destination content appears in the next column. Other platforms push a new view onto the stack, and enable removing items from the stack with platform-specific controls, like a Back button or a swipe gesture. + +Use the `init(content:)` initializer to create a navigation view that directly associates navigation links and their destination views: + +NavigationView { +List(model.notes) { note in +NavigationLink(note.title, destination: NoteEditor(id: note.id)) +} +Text("Select a Note") +} + +Style a navigation view by modifying it with the `navigationViewStyle(_:)` view modifier. Use other modifiers, like `navigationTitle(_:)`, on views presented by the navigation view to customize the navigation interface for the presented view. + +## Topics + +### Creating a navigation view + +Creates a destination-based navigation view. + +### Styling navigation views + +Sets the style for navigation views within this view. + +`protocol NavigationViewStyle` + +A specification for the appearance and interaction of a navigation view. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Deprecated Types + +Sets the tab bar item associated with this view. + +Deprecated + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabitem(_:) + +#app-main) + +- SwiftUI +- View +- tabItem(\_:) Deprecated + +Instance Method + +# tabItem(\_:) + +Sets the tab bar item associated with this view. + +iOS 13.0–26.0DeprecatediPadOS 13.0–26.0DeprecatedMac Catalyst 13.0–26.0DeprecatedmacOS 10.15–26.0DeprecatedtvOS 13.0–26.0DeprecatedwatchOS 7.0–26.0Deprecated + +nonisolated + +## Parameters + +`label` + +The tab bar item to associate with this view. + +## Discussion + +Use `tabItem(_:)` to configure a view as a tab bar item in a `TabView`. The example below adds two views as tabs in a `TabView`: + +struct View1: View { +var body: some View { +Text("View 1") +} +} + +struct View2: View { +var body: some View { +Text("View 2") +} +} + +struct TabItem: View { +var body: some View { +TabView { +View1() +.tabItem { +Label("Menu", systemImage: "list.dash") +} + +View2() +.tabItem { +Label("Order", systemImage: "square.and.pencil") +} +} +} +} + +## See Also + +### Deprecated Types + +`struct NavigationView` + +A view for presenting a stack of views that represents a visible path in a navigation hierarchy. + +Deprecated + +--- + +# https://developer.apple.com/documentation/swiftui/navigationstack), + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabview). + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationtitle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/understanding-the-composition-of-navigation-stack) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/bringing-robust-navigation-structure-to-your-swiftui-app) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewcolumnwidth(_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsplitviewcolumnwidth(min:ideal:max:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitviewvisibility) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationlink) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationstack) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationpath) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(for:destination:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(ispresented:destination:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/navigationstack). + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdestination(item:destination:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/navigationsplitviewcolumn) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationsubtitle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdocument(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationdocument(_:preview:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationbarbackbuttonhidden(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationbartitledisplaymode(_:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/navigationbaritem) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/sidebarrowsize) + + + +--- + +# https://developer.apple.com/documentation/swiftui/sidebarrowsize) + + + +--- + +# https://developer.apple.com/documentation/swiftui/enhancing-your-app-content-with-tab-navigation) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/tabview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tab) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabrole) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabsection) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewstyle(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarheader(content:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarfooter(content:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewsidebarbottombar(content:)) + +)#app-main) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/adaptabletabbarplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/tabbarplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabbarplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentvalues/istabbarshowingsections) + +# The page you're looking for can't be found. + +Search developer.apple.comSearch Icon + +--- + +# https://developer.apple.com/documentation/swiftui/tabbarminimizebehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabviewbottomaccessoryplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/sectionactions(content:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabplacement) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabcontentbuilder) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabcontent) + + + +--- + +# https://developer.apple.com/documentation/swiftui/anytabcontent) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewcustomization(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabviewcustomization) + + + +--- + +# https://developer.apple.com/documentation/swiftui/tabcustomizationbehavior) + + + +--- + +# https://developer.apple.com/documentation/swiftui/hsplitview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/vsplitview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/navigationview) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabitem(_:)) + + + +--- + +# https://developer.apple.com/documentation/swiftui/app/body-swift.property + +- SwiftUI +- App +- body + +Instance Property + +# body + +The content and behavior of the app. + +@SceneBuilder @MainActor @preconcurrency +var body: Self.Body { get } + +**Required** + +## Discussion + +For any app that you create, provide a computed `body` property that defines your app’s scenes, which are instances that conform to the `Scene` protocol. For example, you can create a simple app with a single scene containing a single view: + +@main +struct MyApp: App { +var body: some Scene { +WindowGroup { +Text("Hello, world!") +} +} +} + +Swift infers the app’s `Body` associated type based on the scene provided by the `body` property. + +## See Also + +### Implementing an app + +`associatedtype Body : Scene` + +The type of scene representing the content of the app. + +--- + +# https://developer.apple.com/documentation/swiftui/app/main() + +#app-main) + +- SwiftUI +- App +- main() + +Type Method + +# main() + +Initializes and runs the app. + +@MainActor @preconcurrency +static func main() + +## Discussion + +If you precede your `App` conformer’s declaration with the @main attribute, the system calls the conformer’s `main()` method to launch the app. SwiftUI provides a default implementation of the method that manages the launch process in a platform-appropriate way. + +## See Also + +### Running an app + +`init()` + +Creates an instance of the app using the body that you define for its content. + +**Required** + +--- + +# https://developer.apple.com/documentation/swiftui/stateobject + +- SwiftUI +- StateObject + +Structure + +# StateObject + +A property wrapper type that instantiates an observable object. + +@MainActor @frozen @propertyWrapper @preconcurrency + +## Overview + +Use a state object as the single source of truth for a reference type that you store in a view hierarchy. Create a state object in an `App`, `Scene`, or `View` by applying the `@StateObject` attribute to a property declaration and providing an initial value that conforms to the `ObservableObject` protocol. Declare state objects as private to prevent setting them from a memberwise initializer, which can conflict with the storage management that SwiftUI provides: + +class DataModel: ObservableObject { +@Published var name = "Some Name" +@Published var isEnabled = false +} + +struct MyView: View { +@StateObject private var model = DataModel() // Create the state object. + +var body: some View { +Text(model.name) // Updates when the data model changes. +MySubView() +.environmentObject(model) +} +} + +SwiftUI creates a new instance of the model object only once during the lifetime of the container that declares the state object. For example, SwiftUI doesn’t create a new instance if a view’s inputs change, but does create a new instance if the identity of a view changes. When published properties of the observable object change, SwiftUI updates any view that depends on those properties, like the `Text` view in the above example. + +### Share state objects with subviews + +You can pass a state object into a subview through a property that has the `ObservedObject` attribute. Alternatively, add the object to the environment of a view hierarchy by applying the `environmentObject(_:)` modifier to a view, like `MySubView` in the above code. You can then read the object inside `MySubView` or any of its descendants using the `EnvironmentObject` attribute: + +struct MySubView: View { +@EnvironmentObject var model: DataModel + +var body: some View { +Toggle("Enabled", isOn: $model.isEnabled) +} +} + +Get a `Binding` to the state object’s properties using the dollar sign ( `$`) operator. Use a binding when you want to create a two-way connection. In the above code, the `Toggle` controls the model’s `isEnabled` value through a binding. + +### Initialize state objects using external data + +When a state object’s initial state depends on data that comes from outside its container, you can call the object’s initializer explicitly from within its container’s initializer. For example, suppose the data model from the previous example takes a `name` input during initialization and you want to use a value for that name that comes from outside the view. You can do this with a call to the state object’s initializer inside an explicit initializer that you create for the view: + +struct MyInitializableView: View { +@StateObject private var model: DataModel + +init(name: String) { +// SwiftUI ensures that the following initialization uses the +// closure only once during the lifetime of the view, so +// later changes to the view's name input have no effect. +_model = StateObject(wrappedValue: DataModel(name: name)) +} + +var body: some View { +VStack { +Text("Name: \(model.name)") +} +} +} + +Use caution when doing this. SwiftUI only initializes a state object the first time you call its initializer in a given view. This ensures that the object provides stable storage even as the view’s inputs change. However, it might result in unexpected behavior or unwanted side effects if you explicitly initialize the state object. + +In the above example, if the `name` input to `MyInitializableView` changes, SwiftUI reruns the view’s initializer with the new value. However, SwiftUI runs the autoclosure that you provide to the state object’s initializer only the first time you call the state object’s initializer, so the model’s stored `name` value doesn’t change. + +Explicit state object initialization works well when the external data that the object depends on doesn’t change for a given instance of the object’s container. For example, you can create two views with different constant names: + +var body: some View { +VStack { +MyInitializableView(name: "Ravi") +MyInitializableView(name: "Maria") +} +} + +### Force reinitialization by changing view identity + +If you want SwiftUI to reinitialize a state object when a view input changes, make sure that the view’s identity changes at the same time. One way to do this is to bind the view’s identity to the value that changes using the `id(_:)` modifier. For example, you can ensure that the identity of an instance of `MyInitializableView` changes when its `name` input changes: + +MyInitializableView(name: name) +.id(name) // Binds the identity of the view to the name property. + +If you need the view to reinitialize state based on changes in more than one value, you can combine the values into a single identifier using a `Hasher`. For example, if you want to update the data model in `MyInitializableView` when the values of either `name` or `isEnabled` change, you can combine both variables into a single hash: + +var hash: Int { +var hasher = Hasher() +hasher.combine(name) +hasher.combine(isEnabled) +return hasher.finalize() +} + +Then apply the combined hash to the view as an identifier: + +MyInitializableView(name: name, isEnabled: isEnabled) +.id(hash) + +Be mindful of the performance cost of reinitializing the state object every time the input changes. Also, changing view identity can have side effects. For example, SwiftUI doesn’t automatically animate changes inside the view if the view’s identity changes at the same time. Also, changing the identity resets _all_ state held by the view, including values that you manage as `State`, `FocusState`, `GestureState`, and so on. + +## Topics + +### Creating a state object + +Creates a new state object with an initial wrapped value. + +### Getting the value + +`var wrappedValue: ObjectType` + +The underlying value referenced by the state object. + +A projection of the state object that creates bindings to its properties. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Creating model data + +Managing model data in your app + +Create connections between your app’s data model and views. + +Migrating from the Observable Object protocol to the Observable macro + +Update your existing app to leverage the benefits of Observation in Swift. + +`@attached(member, names: named(_$observationRegistrar), named(access), named(withMutation), named(shouldNotifyObservers)) @attached(memberAttribute) @attached(extension, conformances: Observable) macro Observable()` + +Defines and implements conformance of the Observable protocol. + +Monitoring data changes in your app + +Show changes to data in your app’s user interface by using observable objects. + +`struct ObservedObject` + +A property wrapper type that subscribes to an observable object and invalidates a view whenever the observable object changes. + +`protocol ObservableObject : AnyObject` + +A type of object with a publisher that emits before the object has changed. + +--- + +# https://developer.apple.com/documentation/swiftui/observedobject + +- SwiftUI +- ObservedObject + +Structure + +# ObservedObject + +A property wrapper type that subscribes to an observable object and invalidates a view whenever the observable object changes. + +@MainActor @propertyWrapper @preconcurrency @frozen + +## Overview + +Add the `@ObservedObject` attribute to a parameter of a SwiftUI `View` when the input is an `ObservableObject` and you want the view to update when the object’s published properties change. You typically do this to pass a `StateObject` into a subview. + +The following example defines a data model as an observable object, instantiates the model in a view as a state object, and then passes the instance to a subview as an observed object: + +class DataModel: ObservableObject { +@Published var name = "Some Name" +@Published var isEnabled = false +} + +struct MyView: View { +@StateObject private var model = DataModel() + +var body: some View { +Text(model.name) +MySubView(model: model) +} +} + +struct MySubView: View { +@ObservedObject var model: DataModel + +var body: some View { +Toggle("Enabled", isOn: $model.isEnabled) +} +} + +When any published property of the observable object changes, SwiftUI updates any view that depends on the object. Subviews can also make updates to the model properties, like the `Toggle` in the above example, that propagate to other observers throughout the view hierarchy. + +Don’t specify a default or initial value for the observed object. Use the attribute only for a property that acts as an input for a view, as in the above example. + +## Topics + +### Creating an observed object + +`init(wrappedValue: ObjectType)` + +Creates an observed object with an initial wrapped value. + +`init(initialValue: ObjectType)` + +Creates an observed object with an initial value. + +### Getting the value + +`var wrappedValue: ObjectType` + +The underlying value that the observed object references. + +A projection of the observed object that creates bindings to its properties. + +`struct Wrapper` + +A wrapper of the underlying observable object that can create bindings to its properties. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Creating model data + +Managing model data in your app + +Create connections between your app’s data model and views. + +Migrating from the Observable Object protocol to the Observable macro + +Update your existing app to leverage the benefits of Observation in Swift. + +`@attached(member, names: named(_$observationRegistrar), named(access), named(withMutation), named(shouldNotifyObservers)) @attached(memberAttribute) @attached(extension, conformances: Observable) macro Observable()` + +Defines and implements conformance of the Observable protocol. + +Monitoring data changes in your app + +Show changes to data in your app’s user interface by using observable objects. + +`struct StateObject` + +A property wrapper type that instantiates an observable object. + +`protocol ObservableObject : AnyObject` + +A type of object with a publisher that emits before the object has changed. + +--- + +# https://developer.apple.com/documentation/swiftui/environmentobject + +- SwiftUI +- EnvironmentObject + +Structure + +# EnvironmentObject + +A property wrapper type for an observable object that a parent or ancestor view supplies. + +@MainActor @frozen @propertyWrapper @preconcurrency + +## Overview + +An environment object invalidates the current view whenever the observable object that conforms to `ObservableObject` changes. If you declare a property as an environment object, be sure to set a corresponding model object on an ancestor view by calling its `environmentObject(_:)` modifier. + +## Topics + +### Creating an environment object + +`init()` + +Creates an environment object. + +### Getting the value + +`var wrappedValue: ObjectType` + +The underlying value referenced by the environment object. + +A projection of the environment object that creates bindings to its properties using dynamic member lookup. + +`struct Wrapper` + +A wrapper of the underlying environment object that can create bindings to its properties using dynamic member lookup. + +## Relationships + +### Conforms To + +- `DynamicProperty` +- `Sendable` +- `SendableMetatype` + +## See Also + +### Distributing model data throughout your app + +Supplies an observable object to a view’s hierarchy. + +Supplies an `ObservableObject` to a view subhierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/app/body-swift.associatedtype + +- SwiftUI +- App +- Body + +Associated Type + +# Body + +The type of scene representing the content of the app. + +associatedtype Body : Scene + +**Required** + +## Discussion + +When you create a custom app, Swift infers this type from your implementation of the required `body` property. + +## See Also + +### Implementing an app + +`var body: Self.Body` + +The content and behavior of the app. + +--- + +# https://developer.apple.com/documentation/swiftui/app/init() + +#app-main) + +- SwiftUI +- App +- init() + +Initializer + +# init() + +Creates an instance of the app using the body that you define for its content. + +@MainActor @preconcurrency +init() + +**Required** + +## Discussion + +Swift synthesizes a default initializer for structures that don’t provide one. You typically rely on the default initializer for your app. + +## See Also + +### Running an app + +`static func main()` + +Initializes and runs the app. + +--- + +# https://developer.apple.com/documentation/swiftui/app/body-swift.property) + + + +--- + +# https://developer.apple.com/documentation/swiftui/app/main()) + + + +--- + +# https://developer.apple.com/documentation/swiftui/stateobject) + + + +--- + +# https://developer.apple.com/documentation/swiftui/observedobject) + + + +--- + +# https://developer.apple.com/documentation/swiftui/environmentobject) + + + +--- + +# https://developer.apple.com/documentation/swiftui/app/body-swift.associatedtype) + + + +--- + +# https://developer.apple.com/documentation/swiftui/app/init()) + + + +--- + +# https://developer.apple.com/documentation/swiftui/declaring-a-custom-view + +- SwiftUI +- View fundamentals +- Declaring a custom view + +Article + +# Declaring a custom view + +Define views and assemble them into a view hierarchy. + +## Overview + +SwiftUI offers a declarative approach to user interface design. With a traditional imperative approach, the burden is on your controller code not only to instantiate, lay out, and configure views, but also to continually make updates as conditions change. In contrast, with a declarative approach, you create a lightweight description of your user interface by declaring views in a hierarchy that mirrors the desired layout of your interface. SwiftUI then manages drawing and updating these views in response to events like user input or state changes. + +SwiftUI provides tools for defining and configuring the views in your user interface. You compose custom views out of built-in views that SwiftUI provides, plus other composite views that you’ve already defined. You configure these views with view modifiers and connect them to your data model. You then place your custom views within your app’s view hierarchy. + +### Conform to the view protocol + +Declare a custom view type by defining a structure that conforms to the `View` protocol: + +struct MyView: View { +} + +Like other Swift protocols, the `View` protocol provides a blueprint for functionality — in this case, the behavior of an element that SwiftUI draws onscreen. Conformance to the protocol comes with both requirements that a view must fulfill, and functionality that the protocol provides. After you fulfill the requirements, you can insert your custom view into a view hierarchy so that it becomes part of your app’s user interface. + +### Declare a body + +The `View` protocol’s main requirement is that conforming types must define a `body` computed property: + +struct MyView: View { +var body: some View { +} +} + +SwiftUI reads the value of this property any time it needs to update the view, which can happen repeatedly during the life of the view, typically in response to user input or system events. The value that the view returns is an element that SwiftUI draws onscreen. + +The `View` protocol’s secondary requirement is that conforming types must indicate an associated type for the body property. However, you don’t make an explicit declaration. Instead, you declare the body property as an opaque type, using the `some View` syntax, to indicate only that the body’s type conforms to `View`. The exact type depends on the body’s content, which varies as you edit the body during development. Swift infers the exact type automatically. + +### Assemble the view’s content + +Describe your view’s appearance by adding content to the view’s body property. You can compose the body from built-in views that SwiftUI provides, as well as custom views that you’ve defined elsewhere. For example, you can create a body that draws the string “Hello, World!” using a built-in `Text` view: + +struct MyView: View { +var body: some View { +Text("Hello, World!") +} +} + +In addition to views for specific kinds of content, controls, and indicators, like `Text`, `Toggle`, and `ProgressView`, SwiftUI also provides built-in views that you can use to arrange other views. For example, you can vertically stack two `Text` views using a `VStack`: + +struct MyView: View { +var body: some View { +VStack { +Text("Hello, World!") +Text("Glad to meet you.") +} +} +} + +Views that take multiple input child views, like the stack in the example above, typically do so using a closure marked with the `ViewBuilder` attribute. This enables a multiple-statement closure that doesn’t require additional syntax at the call site. You only need to list the input views in succession. + +For examples of views that contain other views, see Layout fundamentals. + +### Configure views with modifiers + +To configure the views in your view’s body, you apply view modifiers. A modifier is nothing more than a method called on a particular view. The method returns a new, altered view that effectively takes the place of the original in the view hierarchy. + +SwiftUI extends the `View` protocol with a large set of methods for this purpose. All `View` protocol conformers — both built-in and custom views — have access to these methods that alter the behavior of a view in some way. For example, you can change the font of a text view by applying the `font(_:)` modifier: + +struct MyView: View { +var body: some View { +VStack { +Text("Hello, World!") +.font(.title) +Text("Glad to meet you.") +} +} +} + +For more information about how view modifiers work, and how to use them on your views, see Configuring views. + +### Manage data + +To supply inputs to your views, add properties. For example, you can make the font of the “Hello, World!” string configurable: + +struct MyView: View { +let helloFont: Font + +var body: some View { +VStack { +Text("Hello, World!") +.font(helloFont) +Text("Glad to meet you.") +} +} +} + +If an input value changes, SwiftUI notices the change and redraws only the affected parts of your interface. This might involve reinitializing your entire view, but SwiftUI manages that for you. + +Because the system may reinitialize a view at any time, it’s important to avoid doing any significant work in your view’s initialization code. It’s often best to omit an explicit initializer, as in the example above, allowing Swift to synthesize a _member-wise initializer_ instead. + +SwiftUI provides many tools to help you manage your app’s data under these constraints, as described in Model data. For information about Swift initializers, see Initialization in _The Swift Programming Language_. + +### Add your view to the view hierarchy + +After you define a view, you can incorporate it in other views, just like you do with built-in views. You add your view by declaring it at the point in the hierarchy at which you want it to appear. For example, you could put `MyView` in your app’s `ContentView`, which Xcode creates automatically as the root view of a new app: + +struct ContentView: View { +var body: some View { +MyView(helloFont: .title) +} +} + +Alternatively, you could add your view as the root view of a new scene in your app, like the `Settings` scene that declares content for a macOS preferences window, or a `WKNotificationScene` scene that declares the content for a watchOS notification. For more information about defining your app structure with SwiftUI, see App organization. + +## See Also + +### Creating a view + +`protocol View` + +A type that represents part of your app’s user interface and provides modifiers that you use to configure views. + +`struct ViewBuilder` + +A custom parameter attribute that constructs views from closures. + +--- + +# https://developer.apple.com/documentation/swiftui/configuring-views + +- SwiftUI +- View fundamentals +- Configuring views + +Article + +# Configuring views + +Adjust the characteristics of a view by applying view modifiers. + +## Overview + +In SwiftUI, you assemble views into a hierarchy that describes your app’s user interface. To help you customize the appearance and behavior of your app’s views, you use _view modifiers_. For example, you can use modifiers to: + +- Add accessibility features to a view. + +- Adjust a view’s styling, layout, and other appearance characteristics. + +- Respond to events, like copy and paste. + +- Conditionally present modal views, like popovers. + +- Configure supporting views, like toolbars. + +Because view modifiers are Swift methods with behavior provided by the `View` protocol, you can apply them to any type that conforms to the `View` protocol. That includes built-in views like `Text`, `Image`, and `Button`, as well as views that you define. + +### Configure a view with a modifier + +Like other Swift methods, a modifier operates on an instance — a view of some kind in this case — and can optionally take input parameters. For example, you can apply the `foregroundColor(_:)` modifier to set the color of a `Text` view: + +Text("Hello, World!") +.foregroundColor(.red) // Display red text. + +Modifiers return a view that wraps the original view and replaces it in the view hierarchy. You can think of the two lines in the example above as resolving to a single view that displays red text. + +While the code above follows the rules of Swift, the code’s structure might be unfamiliar for developers new to SwiftUI. SwiftUI uses a declarative approach, where you declare and configure a view at the point in your code that corresponds to the view’s position in the view hierarchy. For more information, see Declaring a custom view. + +### Chain modifiers to achieve complex effects + +You commonly chain modifiers, each wrapping the result of the previous one, by calling them one after the other. For example, you can wrap a text view in an invisible box with a given width using the `frame(width:height:alignment:)` modifier to influence its layout, and then use the `border(_:width:)` modifier to draw an outline around that: + +Text("Title") +.frame(width: 100) +.border(Color.gray) + +The order in which you apply modifiers matters. For example, the border that results from the code above outlines the full width of the frame. + +By specifying the frame modifier after the border modifier, SwiftUI applies the border only to the text view, which never takes more space than it needs to render its contents. + +Text("Title") +.border(Color.gray) // Apply the border first this time. +.frame(width: 100) + +Wrapping that view in an invisible one with a fixed 100 point width affects the layout of the composite view, but has no effect on the border. + +### Configure child views + +You can apply any view modifier defined by the `View` protocol to any concrete view, even when the modifier doesn’t have an immediate effect on its target view. The effects of a modifier propagate to child views that don’t explicitly override the modifier. + +For example, a `VStack` instance on its own acts only to vertically stack other views — it doesn’t have any text to display. Therefore, applying a `font(_:)` modifier to the stack has no effect on the stack. Yet the font modifier does apply to any of the stack’s child views, some of which might display text. You can, however, locally override the stack’s modifier by adding another to a specific child view: + +VStack { +Text("Title") +.font(.title) // Override the font of this view. +Text("First body line.") +Text("Second body line.") +} +.font(.body) // Set a default font for text in the stack. + +### Use view-specific modifiers + +While many view types rely on standard view modifiers for customization and control, some views do define modifiers that are specific to that view type. You can’t use such a modifier on anything but the appropriate kind of view. For example, `Text` defines the `bold()` modifier as a convenience for adding a bold effect to the view’s text. While you can use `font(_:)` on any view because it’s part of the `View` protocol, you can use `bold()` only on `Text` views. As a result, you can’t use it on a container view: + +VStack { +Text("Hello, world!") +} +.bold() // Fails because 'VStack' doesn't have a 'bold' modifier. + +You also can’t use it on a `Text` view after applying another general modifier because general modifiers return an opaque type. For example, the return value from the padding modifier isn’t `Text`, but rather an opaque result type that can’t take a bold modifier: + +Text("Hello, world!") +.padding() +.bold() // Fails because 'some View' doesn't have a 'bold' modifier. + +Instead, apply the bold modifier directly to the `Text` view and then add the padding: + +Text("Hello, world!") +.bold() // Succeeds. +.padding() + +## See Also + +### Modifying a view + +Reducing view modifier maintenance + +Bundle view modifiers that you regularly reuse into a custom view modifier. + +Applies a modifier to a view and returns a new view. + +`protocol ViewModifier` + +A modifier that you apply to a view or another view modifier, producing a different version of the original value. + +`struct EmptyModifier` + +An empty, or identity, modifier, used during development to switch modifiers at compile time. + +`struct ModifiedContent` + +A value with a modifier applied to it. + +`protocol EnvironmentalModifier` + +A modifier that must resolve to a concrete modifier in an environment before use. + +`struct ManipulableModifier` Beta + +`struct ManipulableResponderModifier` Beta + +`struct ManipulableTransformBindingModifier` Beta + +`struct ManipulationGeometryModifier` Beta + +`struct ManipulationGestureModifier` Beta + +`struct ManipulationUsingGestureStateModifier` Beta + +`enum Manipulable` + +A namespace for various manipulable related types. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/reducing-view-modifier-maintenance + +- SwiftUI +- View fundamentals +- Reducing view modifier maintenance + +Article + +# Reducing view modifier maintenance + +Bundle view modifiers that you regularly reuse into a custom view modifier. + +## Overview + +To create consistent views, you might reuse the same view modifier or group of modifiers repeatedly across your views. For example, you might apply the same font and foreground color to many text instances throughout your app, so they all match. Unfortunately, this can lead to maintenance challenges, because even a small change in format, like a different font size, requires changes in many different parts of your code. + +To avoid this overhead, collect a set of modifiers into a single location using an instance of the `ViewModifier` protocol. Then, extend the `View` protocol with a method that uses your modifier, making it easy to use and understand. Collecting the modifiers together provides a single location to update when you want to change them. + +### Create a custom view modifier + +When you create your custom modifier, name it to reflect the purpose of the collection. For example, if you repeatedly apply the `caption` font style and a secondary color scheme to views to represent a secondary styling, collect them together as `CaptionTextFormat`: + +struct CaptionTextFormat: ViewModifier { + +content +.font(.caption) +.foregroundColor(.secondary) +} +} + +Apply your modifier using the `modifier(_:)` method. The following code applies the above example to a `Text` instance: + +Text("Some additional information...") +.modifier(CaptionTextFormat()) + +### Extend the view protocol to provide fluent modifier access + +To make your custom view modifier conveniently accessible, extend the `View` protocol with a function that applies your modifier: + +extension View { + +modifier(CaptionTextFormat()) +} +} + +Apply the modifier to a text view by including this extension: + +Text("Some additional information...") +.captionTextFormat() + +## See Also + +### Modifying a view + +Configuring views + +Adjust the characteristics of a view by applying view modifiers. + +Applies a modifier to a view and returns a new view. + +`protocol ViewModifier` + +A modifier that you apply to a view or another view modifier, producing a different version of the original value. + +`struct EmptyModifier` + +An empty, or identity, modifier, used during development to switch modifiers at compile time. + +`struct ModifiedContent` + +A value with a modifier applied to it. + +`protocol EnvironmentalModifier` + +A modifier that must resolve to a concrete modifier in an environment before use. + +`struct ManipulableModifier` Beta + +`struct ManipulableResponderModifier` Beta + +`struct ManipulableTransformBindingModifier` Beta + +`struct ManipulationGeometryModifier` Beta + +`struct ManipulationGestureModifier` Beta + +`struct ManipulationUsingGestureStateModifier` Beta + +`enum Manipulable` + +A namespace for various manipulable related types. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/displaying-data-in-lists + +- SwiftUI +- Lists +- Displaying data in lists + +Article + +# Displaying data in lists + +Visualize collections of data with platform-appropriate appearance. + +## Overview + +Displaying a collection of data in a vertical list is a common requirement in many apps. Whether it’s a list of contacts, a schedule of events, an index of categories, or a shopping list, you’ll often find a use for a `List`. + +List views display collections of items vertically, load rows as needed, and add scrolling when the rows don’t fit on the screen, making them suitable for displaying large collections of data. + +By default, list views also apply platform-appropriate styling to their elements. For example, on iOS, the default configuration of a list displays a separator line between each row, and adds disclosure indicators next to items that initiate navigation actions. + +The code in this article shows the use of list views to display a company’s staff directory. Each section enhances the usefulness of the list, by adding custom cells, splitting the list into sections, and using the list selection to navigate to a detail view. + +### Prepare your data for iteration + +The most common use of `List` is for representing collections of information in your data model. The following example defines a `Person` as an `Identifiable` type with the properties `name` and `phoneNumber`. An array called `staff` contains two instances of this type. + +struct Person: Identifiable { +let id = UUID() +var name: String +var phoneNumber: String +} + +var staff = [\ +Person(name: "Juan Chavez", phoneNumber: "(408) 555-4301"),\ +Person(name: "Mei Chen", phoneNumber: "(919) 555-2481")\ +] + +To present the contents of the array as a list, the example creates a `List` instance. The list’s content builder uses a `ForEach` to iterate over the `staff` array. For each member of the array, the listing creates a row view by instantiating a new `Text` that contains the name of the `Person`. + +struct StaffList: View { +var body: some View { +List { +ForEach(staff) { person in +Text(person.name) +} +} +} +} + +Members of a list must be uniquely identifiable from one another. Unique identifiers allow SwiftUI to automatically generate animations for changes in the underlying data, like inserts, deletions, and moves. Identify list members either by using a type that conforms to `Identifiable`, as `Person` does, or by providing an `id` parameter with the key path to a unique property of the type. The `ForEach` that populates the list above depends on this behavior, as do the `List` initializers that take a `RandomAccessCollection` of members to iterate over. + +### Display data inside a row + +Each row inside a `List` must be a SwiftUI `View`. You may be able to represent your data with a single view such as an `Image` or `Text` view, or you may need to define a custom view to compose several views into something more complex. + +As your row views get more sophisticated, refactor the views into separate view structures, passing in the data that the row needs to render. The following example defines a `PersonRowView` to create a two-line view for a `Person`, using fonts, colors, and the system “phone” icon image to visually style the data. + +struct PersonRowView: View { +var person: Person + +var body: some View { +VStack(alignment: .leading, spacing: 3) { +Text(person.name) +.foregroundColor(.primary) +.font(.headline) +HStack(spacing: 3) { +Label(person.phoneNumber, systemImage: "phone") +} +.foregroundColor(.secondary) +.font(.subheadline) +} +} +} + +struct StaffList: View { +var body: some View { +List { +ForEach(staff) { person in +PersonRowView(person: person) +} +} +} +} + +For more information on composing the types of views commonly used inside list rows, see Building layouts with stack views. + +### Represent data hierarchy with sections + +`List` views can also display data with a level of hierarchy, grouping associated data into sections. + +Consider an expanded data model that represents an entire company, including multiple departments. Each `Department` has a name and an array of `Person` instances, and the company has an array of the `Department` type. + +struct Department: Identifiable { +let id = UUID() +var name: String +var staff: [Person] +} + +struct Company { +var departments: [Department] +} + +var company = Company(departments: [\ +Department(name: "Sales", staff: [\ +Person(name: "Juan Chavez", phoneNumber: "(408) 555-4301"),\ +Person(name: "Mei Chen", phoneNumber: "(919) 555-2481"),\ +// ...\ +]),\ +Department(name: "Engineering", staff: [\ +Person(name: "Bill James", phoneNumber: "(408) 555-4450"),\ +Person(name: "Anne Johnson", phoneNumber: "(417) 555-9311"),\ +// ...\ +]),\ +// ...\ +]) + +Use `Section` views to give the data inside a `List` a level of hierarchy. Start by creating the `List`, using a `ForEach` to iterate over the `company.departments` array, and then create `Section` views for each department. Within the section’s view builder, use a `ForEach` to iterate over the department’s `staff`, and return a customized view for each `Person`. + +List { +ForEach(company.departments) { department in +Section(header: Text(department.name)) { +ForEach(department.staff) { person in +PersonRowView(person: person) +} +} +} +} + +## Use Lists for Navigation + +Using a `NavigationLink` within a `List` contained inside a `NavigationView` adds platform-appropriate visual styling, and in some cases, additional container views that provide the structure for navigation. SwiftUI uses one of two visual presentations, based on the runtime environment: + +- A list with disclosure indicators, which performs an animated navigation to a destination scene when the user chooses a list item. SwiftUI uses this presentation on watchOS, tvOS, and on most iOS devices except as described below. + +- A two-panel split view, with the top-level data as a list on the left side and the detail on the right. To get this presentation, you also need to provide a placeholder view after the list; this placeholder fills the detail pane until the user makes a selection. SwiftUI uses this two-panel approach on macOS, iPadOS, and on iOS devices with sufficient horizontal space, as indicated by the `horizontalSizeClass` environment value. + +The following example sets up a navigation-based UI by wrapping the list with a navigation view. Instances of `NavigationLink` wrap the list’s rows to provide a `destination` view to navigate to when the user taps the row. If a split view navigation is appropriate for the platform, the right panel initially contains the “No Selection” placeholder view, which the navigation view replaces with the destination view when the user makes a selection. + +NavigationView { +List { +ForEach(company.departments) { department in +Section(header: Text(department.name)) { +ForEach(department.staff) { person in +NavigationLink(destination: PersonDetailView(person: person)) { +PersonRowView(person: person) +} +} +} +} +} +.navigationTitle("Staff Directory") + +// Placeholder +Text("No Selection") +.font(.headline) +} + +In this example, the view passed in as the `destination` is a `PersonDetailView`, which repeats the information from the list. In a more complex app, this detail view could show more information about a `Person` than would fit inside the list row. + +struct PersonDetailView: View { +var person: Person + +var body: some View { +VStack { +Text(person.name) +.foregroundColor(.primary) +.font(.title) +.padding() +HStack { +Label(person.phoneNumber, systemImage: "phone") +} +.foregroundColor(.secondary) +} +} +} + +On most iOS devices (those with a compact horizontal size class), the list appears as a view by itself, and tapping a row performs an animated transition to the destination view. The following figure shows both the list view and the destination view that appears when the user makes a selection: + +On the other hand, iPadOS and macOS show the list and the detail view together as a multi-column view. The following figure shows what this example looks like on macOS prior to making a selection, which means the “No selection” placeholder view is still in the detail column. + +You can use the `navigationViewStyle(_:)` view modifier to change the default behavior of a `NavigationView`. For example, on iOS, the `StackNavigationViewStyle` forces single-column mode, even on an iPad in landscape orientation. + +## See Also + +### Creating a list + +`struct List` + +A container that presents rows of data arranged in a single column, optionally providing the ability to select one or more members. + +Sets the style for lists within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/body-8kl5o + +- SwiftUI +- View +- body + +Instance Property + +# body + +The content and behavior of the view. + +@ViewBuilder @MainActor @preconcurrency +var body: Self.Body { get } + +**Required** Default implementations provided. + +## Mentioned in + +Declaring a custom view + +## Discussion + +When you implement a custom view, you must implement a computed `body` property to provide the content for your view. Return a view that’s composed of built-in views that SwiftUI provides, plus other composite views that you’ve already defined: + +struct MyView: View { +var body: some View { +Text("Hello, World!") +} +} + +For more information about composing views and a view hierarchy, see Declaring a custom view. + +## Default Implementations + +### NSViewControllerRepresentable Implementations + +`var body: Never` + +Declares the content and behavior of this view. + +### NSViewRepresentable Implementations + +### UIViewControllerRepresentable Implementations + +### UIViewRepresentable Implementations + +### WKInterfaceObjectRepresentable Implementations + +## See Also + +### Implementing a custom view + +`associatedtype Body : View` + +The type of view representing the body of this view. + +**Required** + +Applies a modifier to a view and returns a new view. + +Generate dynamic, interactive previews of your custom views. + +--- + +# https://developer.apple.com/documentation/swiftui/text + +- SwiftUI +- Text + +Structure + +# Text + +A view that displays one or more lines of read-only text. + +@frozen +struct Text + +## Mentioned in + +Configuring views + +Declaring a custom view + +Laying out a simple view + +Building layouts with stack views + +Performing a search operation + +## Overview + +A text view draws a string in your app’s user interface using a `body` font that’s appropriate for the current platform. You can choose a different standard font, like `title` or `caption`, using the `font(_:)` view modifier. + +Text("Hamlet") +.font(.title) + +If you need finer control over the styling of the text, you can use the same modifier to configure a system font or choose a custom font. You can also apply view modifiers like `bold()` or `italic()` to further adjust the formatting. + +Text("by William Shakespeare") +.font(.system(size: 12, weight: .light, design: .serif)) +.italic() + +To apply styling within specific portions of the text, you can create the text view from an `AttributedString`, which in turn allows you to use Markdown to style runs of text. You can mix string attributes and SwiftUI modifiers, with the string attributes taking priority. + +let attributedString = try! AttributedString( +markdown: "_Hamlet_ by William Shakespeare") + +var body: some View { +Text(attributedString) +.font(.system(size: 12, weight: .light, design: .serif)) +} + +A text view always uses exactly the amount of space it needs to display its rendered contents, but you can affect the view’s layout. For example, you can use the `frame(width:height:alignment:)` modifier to propose specific dimensions to the view. If the view accepts the proposal but the text doesn’t fit into the available space, the view uses a combination of wrapping, tightening, scaling, and truncation to make it fit. With a width of `100` points but no constraint on the height, a text view might wrap a long string: + +Text("To be, or not to be, that is the question:") +.frame(width: 100) + +Use modifiers like `lineLimit(_:)`, `allowsTightening(_:)`, `minimumScaleFactor(_:)`, and `truncationMode(_:)` to configure how the view handles space constraints. For example, combining a fixed width and a line limit of `1` results in truncation for text that doesn’t fit in that space: + +Text("Brevity is the soul of wit.") +.frame(width: 100) +.lineLimit(1) + +### Localizing strings + +If you initialize a text view with a string literal, the view uses the `init(_:tableName:bundle:comment:)` initializer, which interprets the string as a localization key and searches for the key in the table you specify, or in the default table if you don’t specify one. + +Text("pencil") // Searches the default table in the main bundle. + +For an app localized in both English and Spanish, the above view displays “pencil” and “lápiz” for English and Spanish users, respectively. If the view can’t perform localization, it displays the key instead. For example, if the same app lacks Danish localization, the view displays “pencil” for users in that locale. Similarly, an app that lacks any localization information displays “pencil” in any locale. + +To explicitly bypass localization for a string literal, use the `init(verbatim:)` initializer. + +Text(verbatim: "pencil") // Displays the string "pencil" in any locale. + +If you initialize a text view with a variable value, the view uses the `init(_:)` initializer, which doesn’t localize the string. However, you can request localization by creating a `LocalizedStringKey` instance first, which triggers the `init(_:tableName:bundle:comment:)` initializer instead: + +// Don't localize a string variable... +Text(writingImplement) + +// ...unless you explicitly convert it to a localized string key. +Text(LocalizedStringKey(writingImplement)) + +When localizing a string variable, you can use the default table by omitting the optional initialization parameters — as in the above example — just like you might for a string literal. + +When composing a complex string, where there is a need to assemble multiple pieces of text, use string interpolation: + +let name: String = //… +Text("Hello, \(name)") + +This would look up the `"Hello, %@"` localization key in the localized string file and replace the format specifier `%@` with the value of `name` before rendering the text on screen. + +Using string interpolation ensures that the text in your app can be localized correctly in all locales, especially in right-to-left languages. + +If you desire to style only parts of interpolated text while ensuring that the content can still be localized correctly, interpolate `Text` or `AttributedString`: + +let name = Text(person.name).bold() +Text("Hello, \(name)") + +The example above uses `appendInterpolation(_:)` and will look up the `"Hello, %@"` in the localized string file and interpolate a bold text rendering the value of `name`. + +Using `appendInterpolation(_:)` you can interpolate `Image` in text. + +## Topics + +### Creating a text view + +`init(LocalizedStringKey, tableName: String?, bundle: Bundle?, comment: StaticString?)` + +Creates a text view that displays localized content identified by a key. + +`init(_:)` + +Creates a text view that displays styled attributed content. + +`init(verbatim: String)` + +Creates a text view that displays a string literal without localization. + +`init(Date, style: Text.DateStyle)` + +Creates an instance that displays localized dates and times using a specific style. + +`init(_:format:)` + +Creates a text view that displays the formatted representation of a nonstring type supported by a corresponding format style. + +`init(_:formatter:)` + +Creates a text view that displays the formatted representation of a Foundation object. + +Creates an instance that displays a timer counting within the provided interval. + +### Choosing a font + +Sets the default font for text in the view. + +Sets the font weight of the text. + +Sets the font design of the text. + +Sets the font width of the text. + +### Styling the view’s text + +Sets the style of the text displayed by this view. + +Applies a bold or emphasized treatment to the fonts of the text. + +Applies a bold font weight to the text. + +Applies italics to the text. + +Applies a strikethrough to the text. + +Applies an underline to the text. + +Modifies the font of the text to use the fixed-width variant of the current font, if possible. + +Modifies the text view’s font to use fixed-width digits, while leaving other characters proportionally spaced. + +Sets the spacing, or kerning, between characters. + +Sets the tracking for the text. + +Sets the vertical offset for the text relative to its baseline. + +`enum Case` + +A scheme for transforming the capitalization of characters within text. + +`struct DateStyle` + +A predefined style used to display a `Date`. + +`struct LineStyle` + +Description of the style used to draw the line for `StrikethroughStyleAttribute` and `UnderlineStyleAttribute`. + +### Fitting text into available space + +Applies a text scale to the text. + +`struct Scale` + +Defines text scales + +`enum TruncationMode` + +The type of truncation to apply to a line of text when it’s too long to fit in the available space. + +### Localizing text + +`func typesettingLanguage(_:isEnabled:)` + +Specifies the language for typesetting. + +### Configuring voiceover + +Raises or lowers the pitch of spoken text. + +Sets whether VoiceOver should always speak all punctuation in the text view. + +Controls whether to queue pending announcements behind existing speech rather than interrupting speech in progress. + +Sets whether VoiceOver should speak the contents of the text view character by character. + +### Providing accessibility information + +Sets the accessibility level of this heading. + +`func accessibilityLabel(_:)` + +Adds a label to the view that describes its contents. + +Sets an accessibility text content type. + +### Combining text views + +Concatenates the text in two text views in a new text view. + +Deprecated + +### Deprecated symbols + +Sets the color of the text displayed by this view. + +### Structures + +`struct AlignmentStrategy` + +The way SwiftUI infers the appropriate text alignment if no value is explicitly provided. + +Beta + +`struct Layout` + +A value describing the layout and custom attributes of a tree of `Text` views. + +`struct LayoutKey` + +A preference key that provides the `Text.Layout` values for all text views in the queried subtree. + +`struct WritingDirectionStrategy` + +The way SwiftUI infers the appropriate writing direction if no value is explicitly provided. + +### Instance Methods + +Adds a custom attribute to the text view. + +Controls the way text size variants are chosen. + +## Relationships + +### Conforms To + +- `Copyable` +- `Equatable` +- `Sendable` +- `SendableMetatype` +- `View` + +## See Also + +### Displaying text + +`struct Label` + +A standard label for user interface items, consisting of an icon with a title. + +Sets the style for labels within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/opacity(_:) + +#app-main) + +- SwiftUI +- View +- opacity(\_:) + +Instance Method + +# opacity(\_:) + +Sets the transparency of this view. + +nonisolated + +## Parameters + +`opacity` + +A value between 0 (fully transparent) and 1 (fully opaque). + +## Return Value + +A view that sets the transparency of this view. + +## Discussion + +Apply opacity to reveal views that are behind another view or to de-emphasize a view. + +When applying the `opacity(_:)` modifier to a view that has already had its opacity transformed, the modifier multiplies the effect of the underlying opacity transformation. + +The example below shows yellow and red rectangles configured to overlap. The top yellow rectangle has its opacity set to 50%, allowing the occluded portion of the bottom rectangle to be visible: + +struct Opacity: View { +var body: some View { +VStack { +Color.yellow.frame(width: 100, height: 100, alignment: .center) +.zIndex(1) +.opacity(0.5) + +Color.red.frame(width: 100, height: 100, alignment: .center) +.padding(-40) +} +} +} + +## See Also + +### Hiding views + +Hides this view unconditionally. + +--- + +# https://developer.apple.com/documentation/swiftui/view-layout + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-accessibility + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-input-and-events + +Collection + +- SwiftUI +- View fundamentals +- View +- Input and event modifiers + +API Collection + +# Input and event modifiers + +Supply actions for a view to perform in response to user input and system events. + +## Overview + +Use input and event modifiers to configure and provide handlers for a wide variety of user inputs or system events. For example, you can detect and control focus, respond to life cycle events like view appearance and disappearance, manage keyboard shortcuts, and much more. + +## Topics + +### Interactivity + +Adds a condition that controls whether users can interact with this view. + +Sets a tag that you use for tracking interactivity. + +### List controls + +Adds custom swipe actions to a row in a list. + +Marks this view as refreshable. + +Adds a condition that controls whether users can select this view. + +### Scroll controls + +Associates a binding to a scroll position with a scroll view within this view. + +Associates a binding to be updated when a scroll view within this view scrolls. + +Associates an anchor to control which part of the scroll view’s content should be rendered by default. + +Associates an anchor to control the position of a scroll view in a particular circumstance. + +Sets the scroll behavior of views scrollable in the provided axes. + +Configures the outermost layout as a scroll target layout. + +Applies the given transition, animating between the phases of the transition as this view appears and disappears within the visible region of the containing scroll view. + +Adds an action to be performed when a value, created from a scroll geometry, changes. + +Adds an action to be called with information about what views would be considered visible. + +Adds an action to be called when the view crosses the threshold to be considered on/off screen. + +`func onScrollPhaseChange(_:)` + +Adds an action to perform when the scroll phase of the first scroll view in the hierarchy changes. + +### Geometry + +`func onGeometryChange(for:of:action:)` + +Adds an action to be performed when a value, created from a geometry proxy, changes. + +### Taps and gestures + +For more information, see Gestures. + +Adds an action to perform when this view recognizes a tap gesture. + +`func onTapGesture(count:coordinateSpace:perform:)` + +Adds an action to perform when this view recognizes a tap gesture, and provides the action with the location of the interaction. + +Adds an action to perform when this view recognizes a long press gesture. + +Adds an action to perform when this view recognizes a remote long touch gesture. A long touch gesture is when the finger is on the remote touch surface without actually pressing. + +`func gesture(_:)` + +Attaches an `NSGestureRecognizerRepresentable` to the view. + +Beta + +Attaches a gesture to the view with a lower precedence than gestures defined by the view. + +Attaches a gesture to the view with a higher precedence than gestures defined by the view. + +Attaches a gesture to the view to process simultaneously with gestures defined by the view. + +Sets the screen edge from which you want your gesture to take precedence over the system gesture. + +Adds an action to perform after the user double-taps their Apple Pencil. + +Adds an action to perform when the user squeezes their Apple Pencil. + +Configures whether gestures in this view hierarchy can handle events that activate the containing window. + +### Keyboard input + +Performs an action if the user presses a key on a hardware keyboard while the view has focus. + +Performs an action if the user presses any key on a hardware keyboard while the view has focus. + +Performs an action if the user presses one or more keys on a hardware keyboard while the view has focus. + +Performs an action whenever the user presses or releases a hardware modifier key. + +### Keyboard shortcuts + +`func keyboardShortcut(_:)` + +Assigns a keyboard shortcut to the modified control. + +Defines a keyboard shortcut and assigns it to the modified control. + +Builds a view to use in place of the modified view when the user presses the modifier key(s) indicated by the given set. + +### Hover + +Adds an action to perform when the user moves the pointer over or away from the view’s frame. + +`func onContinuousHover(coordinateSpace:perform:)` + +Adds an action to perform when the pointer enters, moves within, and exits the view’s bounds. + +Applies a hover effect to this view. + +`func hoverEffect(_:isEnabled:)` + +Applies a hover effect to this view, optionally adding it to a `HoverEffectGroup`. + +Applies a hover effect to this view described by the given closure. + +Adds an implicit `HoverEffectGroup` to all effects defined on descendant views, so that all effects added to subviews activate as a group whenever this view or any descendant views are hovered. + +Adds a `HoverEffectGroup` to all effects defined on descendant views, and activates the group whenever this view or any descendant views are hovered. + +Adds a condition that controls whether this view can display hover effects. + +`func defaultHoverEffect(_:)` + +Sets the default hover effect to use for views within this view. + +Requests that the containing list row use the provided hover effect. + +Requests that the containing list row have its hover effect disabled. + +### Pointer + +Sets the visibility of the pointer when it’s over the view. + +Sets the pointer style to display when the pointer is over the view. + +### Focus + +For more information, see Focus. + +Modifies this view by binding its focus state to the given state value. + +Modifies this view by binding its focus state to the given Boolean state value. + +Sets the focused value for the given object type. + +`func focusedValue(_:_:)` + +Modifies this view by injecting a value that you provide for use by other views whose state depends on the focused view hierarchy. + +Sets the focused value for the given object type at a scene-wide scope. + +`func focusedSceneValue(_:_:)` + +Modifies this view by injecting a value that you provide for use by other views whose state depends on the focused scene. + +`func focusedObject(_:)` + +Creates a new view that exposes the provided object to other views whose whose state depends on the focused view hierarchy. + +`func focusedSceneObject(_:)` + +Creates a new view that exposes the provided object to other views whose whose state depends on the active scene. + +Indicates that the view should receive focus by default for a given namespace. + +Creates a focus scope that SwiftUI uses to limit default focus preferences. + +Indicates that the view’s frame and cohort of focusable descendants should be used to guide focus movement. + +Specifies if the view is focusable. + +Specifies if the view is focusable, and if so, what focus-driven interactions it supports. + +Adds a condition that controls whether this view can display focus effects, such as a default focus ring or hover effect. + +Defines a region of the window in which default focus is evaluated by assigning a value to a given focus state binding. + +Modifies this view by binding the focus state of the search field associated with the nearest searchable modifier to the given Boolean value. + +Modifies this view by binding the focus state of the search field associated with the nearest searchable modifier to the given value. + +### Copy and paste + +For more information, see Clipboard. + +Specifies a list of items to copy in response to the system’s Copy command. + +Specifies an action that moves items to the Clipboard in response to the system’s Cut command. + +Specifies an action that adds validated items to a view in response to the system’s Paste command. + +Adds an action to perform in response to the system’s Copy command. + +Adds an action to perform in response to the system’s Cut command. + +`func onPasteCommand(of:perform:)` + +Adds an action to perform in response to the system’s Paste command. + +`func onPasteCommand(of:validator:perform:)` + +Adds an action to perform in response to the system’s Paste command with items that you validate. + +### Drag and drop + +For more information, see Drag and drop. + +Activates this view as the source of a drag and drop operation. + +Provides a closure that vends the drag representation to be used for a particular data element. + +`func onDrop(of:isTargeted:perform:)` + +Defines the destination of a drag-and-drop operation that handles the dropped content with a closure that you specify. + +`func onDrop(of:delegate:)` + +Defines the destination of a drag and drop operation using behavior controlled by the delegate that you provide. + +Defines the destination of a drag and drop operation that handles the dropped content with a closure that you specify. + +Sets the spring loading behavior this view. + +### Submission + +Adds an action to perform when the user submits a value to this view. + +Prevents submission triggers originating from this view to invoke a submission action configured by a submission modifier higher up in the view hierarchy. + +Sets the submit label for this view. + +### Movement + +Adds an action to perform in response to a move command, like when the user presses an arrow key on a Mac keyboard, or taps the edge of the Siri Remote when controlling an Apple TV. + +Adds a condition for whether the view’s view hierarchy is movable. + +### Deletion + +Adds an action to perform in response to the system’s Delete command, or pressing either the ⌫ (backspace) or ⌦ (forward delete) keys while the view has focus. + +Adds a condition for whether the view’s view hierarchy is deletable. + +### Commands + +Steps a value through a range in response to page up or page down commands. + +Sets up an action that triggers in response to receiving the exit command while the view has focus. + +Adds an action to perform in response to the system’s Play/Pause command. + +Adds an action to perform in response to the given selector. + +### Digital crown + +Specifies the visibility of Digital Crown accessory Views on Apple Watch. + +Places an accessory View next to the Digital Crown on Apple Watch. + +Tracks Digital Crown rotations by updating the specified binding. + +`func digitalCrownRotation(detent:from:through:by:sensitivity:isContinuous:isHapticFeedbackEnabled:onChange:onIdle:)` + +### Immersive Spaces + +For more information, see Immersive spaces. + +Performs an action when the immersion state of your app changes. + +### Volumes + +Adds an action to perform when the viewpoint of the volume changes. + +Specifies which viewpoints are supported for the window bar and ornaments in a volume. + +### User activities + +Advertises a user activity type. + +Registers a handler to invoke in response to a user activity that your app receives. + +Specifies the external events that the view’s scene handles if the scene is already open. + +### View life cycle + +Adds an action to perform before this view appears. + +Adds an action to perform after this view disappears. + +`func onChange(of:initial:_:)` + +Adds a modifier for this view that fires an action when a specific value changes. + +Adds an asynchronous task to perform before this view appears. + +Adds a task to perform before this view appears or when a specified value changes. + +### File renaming + +`func renameAction(_:)` + +Sets a closure to run for the rename action. + +### URLs + +Registers a handler to invoke in response to a URL that your app receives. + +Sets the URL to open in the containing app when the user clicks the widget. + +### Publisher events + +Adds an action to perform when this view detects data emitted by the given publisher. + +### Hit testing + +Configures whether this view participates in hit test operations. + +### Content shape + +Defines the content shape for hit testing. + +Sets the content shape for this view. + +### Import and export + +Exports a read-only item provider for consumption by shortcuts, quick actions, and services. + +Exports a read-write item provider for consumption by shortcuts, quick actions, and services. + +Enables importing item providers from services, such as Continuity Camera on macOS. + +Exports items for consumption by shortcuts, quick actions, and services. + +Exports read-write items for consumption by shortcuts, quick actions, and services. + +Enables importing items from services, such as Continuity Camera on macOS. + +### App intents + +Sets the given style for ShortcutsLinks within the view hierarchy + +Sets the given style for SiriTipView within the view hierarchy + +### Camera + +Used to register an action triggered by system capture events. + +Used to register actions triggered by system capture events. + +Specifies the view that should act as the virtual camera for Apple Vision Pro 2D Persona stream. + +## See Also + +### Providing interactivity + +Enable people to search for content in your app. + +Define additional views for the view to present under specified conditions. + +Access storage and provide child views with configuration data. + +--- + +# https://developer.apple.com/documentation/swiftui/view/body-swift.associatedtype + +- SwiftUI +- View +- Body + +Associated Type + +# Body + +The type of view representing the body of this view. + +associatedtype Body : View + +**Required** + +## Discussion + +When you create a custom view, Swift infers this type from your implementation of the required `body` property. + +## See Also + +### Implementing a custom view + +`var body: Self.Body` + +The content and behavior of the view. + +**Required** Default implementations provided. + +Applies a modifier to a view and returns a new view. + +Generate dynamic, interactive previews of your custom views. + +--- + +# https://developer.apple.com/documentation/swiftui/view/modifier(_:) + +#app-main) + +- SwiftUI +- View +- modifier(\_:) + +Instance Method + +# modifier(\_:) + +Applies a modifier to a view and returns a new view. + +nonisolated + +## Parameters + +`modifier` + +The modifier to apply to this view. + +## Mentioned in + +Reducing view modifier maintenance + +## Discussion + +Use this modifier to combine a `View` and a `ViewModifier`, to create a new view. For example, if you create a view modifier for a new kind of caption with blue text surrounded by a rounded rectangle: + +struct BorderedCaption: ViewModifier { + +content +.font(.caption2) +.padding(10) +.overlay( +RoundedRectangle(cornerRadius: 15) +.stroke(lineWidth: 1) +) +.foregroundColor(Color.blue) +} +} + +You can use `modifier(_:)` to extend `View` to create new modifier for applying the `BorderedCaption` defined above: + +extension View { + +modifier(BorderedCaption()) +} +} + +Then you can apply the bordered caption to any view: + +Image(systemName: "bus") +.resizable() +.frame(width:50, height:50) +Text("Downtown Bus") +.borderedCaption() + +## See Also + +### Modifying a view + +Configuring views + +Adjust the characteristics of a view by applying view modifiers. + +Bundle view modifiers that you regularly reuse into a custom view modifier. + +`protocol ViewModifier` + +A modifier that you apply to a view or another view modifier, producing a different version of the original value. + +`struct EmptyModifier` + +An empty, or identity, modifier, used during development to switch modifiers at compile time. + +`struct ModifiedContent` + +A value with a modifier applied to it. + +`protocol EnvironmentalModifier` + +A modifier that must resolve to a concrete modifier in an environment before use. + +`struct ManipulableModifier` Beta + +`struct ManipulableResponderModifier` Beta + +`struct ManipulableTransformBindingModifier` Beta + +`struct ManipulationGeometryModifier` Beta + +`struct ManipulationGestureModifier` Beta + +`struct ManipulationUsingGestureStateModifier` Beta + +`enum Manipulable` + +A namespace for various manipulable related types. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/view-appearance + +Collection + +- SwiftUI +- View fundamentals +- View +- Appearance modifiers + +API Collection + +# Appearance modifiers + +Configure a view’s foreground and background styles, controls, and visibility. + +## Overview + +Use these modifiers to configure the appearance of a view, including the use of color and tint, and the application of overlays and background elements. Control the visibility of a view and specific elements within a view. Manage the shape and size of various controls. + +For information about configuring views, see View configuration. + +## Topics + +### Colors and patterns + +Sets the specified style to render backgrounds within the view. + +Sets a view’s foreground elements to use a given style. + +Sets the primary and secondary levels of the foreground style in the child view. + +Sets the primary, secondary, and tertiary levels of the foreground style. + +Returns a new view configured with the specified allowed dynamic range. + +### Tint + +`func tint(_:)` + +Sets the tint color within this view. + +Sets the tint color associated with a row. + +Sets the tint color associated with a section. + +`func listItemTint(_:)` + +Sets a fixed tint color for content in a list. + +### Light and dark appearance + +Sets the preferred color scheme for this presentation. + +Applies an effect to passthrough video. + +### Foreground elements + +Adds a border to this view with the specified style and width. + +Layers the views that you specify in front of this view. + +Layers the specified style in front of this view. + +Layers a shape that you specify in front of this view. + +### Background elements + +Layers the views that you specify behind this view. + +Sets the view’s background to a style. + +Sets the view’s background to the default background style. + +`func background(_:in:fillStyle:)` + +Sets the view’s background to an insettable shape filled with a style. + +`func background(in:fillStyle:)` + +Sets the view’s background to an insettable shape filled with the default background style. + +Overrides whether lists and tables in this view have alternating row backgrounds. + +Places a custom background view behind a list row item. + +Specifies the visibility of the background for scrollable views within this view. + +Sets the container background of the enclosing container using a view. + +Fills the view’s background with an automatic glass background effect and container-relative rounded rectangle shape. + +Fills the view’s background with an automatic glass background effect and a shape that you specify. + +### Control configuration + +Sets the default wheel-style picker item height. + +Sets the style for radio group style pickers within this view to be horizontally positioned with the radio buttons inside the layout. + +`func controlSize(_:)` + +Sets the size for controls within this view. + +Sets the border shape for buttons in this view. + +Sets whether buttons in this view should repeatedly trigger their actions on prolonged interactions. + +Sets the header prominence for this view. + +Disables or enables scrolling in scrollable views. + +Configures the bounce behavior of scrollable views along the specified axis. + +Flashes the scroll indicators of a scrollable view when it appears. + +Flashes the scroll indicators of scrollable views when a value changes. + +Sets the preferred order of items for menus presented from this view. + +Tells a menu whether to dismiss after performing an action. + +Specifies the selection effect to apply to a palette item. + +`func typeSelectEquivalent(_:)` + +Sets an explicit type select equivalent text in a collection, such as a list or table. + +### Symbol effects + +Returns a new view with a symbol effect added to it. + +Returns a new view with its inherited symbol image effects either removed or left unchanged. + +### Privacy and redaction + +Marks the view as containing sensitive, private user data. + +Adds a reason to apply a redaction to this view hierarchy. + +Removes any reason to apply a redaction to this view hierarchy. + +Mark the receiver as their content might be invalidated. + +### Visibility + +Hides this view unconditionally. + +Hides the labels of any controls contained within this view. + +Sets the menu indicator visibility for controls within this view. + +Sets the display mode for the separator associated with this specific row. + +Sets whether to hide the separator associated with a list section. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +Sets the visibility of scroll indicators within this view. + +Sets whether a scroll view clips its content to its bounds. + +Controls the visibility of a `Table`’s column header views. + +Sets the preferred visibility of the user’s upper limbs, while an `ImmersiveSpace` scene is presented. + +Sets the visibility of the baseplate of a volume, which appears when a user looks towards the ‘floor’ of a volume and during resize. Both `automatic` and `visible` will show the baseplate. `hidden` will never show it. + +### Sensory feedback + +Plays the specified `feedback` when the provided `trigger` value changes. + +`func sensoryFeedback(trigger:_:)` + +Plays feedback when returned from the `feedback` closure after the provided `trigger` value changes. + +Plays the specified `feedback` when the provided `trigger` value changes and the `condition` closure returns `true`. + +### Widget configuration + +Adds the view and all of its subviews to the accented group. + +Displays the widget’s content along a curve if the context allows it. + +`func widgetLabel(_:)` + +Returns a localized text label that displays additional content outside the accessory family widget’s main SwiftUI view. + +Creates a label for displaying additional content outside an accessory family widget’s main SwiftUI view. + +Specifies the vertical placement for a view of an expanded Live Activity that appears in the Dynamic Island. + +### Window behaviors + +Configures the dismiss functionality for the window enclosing `self`. + +Configures the full screen functionality for the window enclosing `self`. + +Configures the minimize functionality for the window enclosing `self`. + +Configures the resize functionality for the window enclosing `self`. + +## See Also + +### Configuring view elements + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Manage the rendering, selection, and entry of text in your view. + +Add and configure supporting views, like toolbars and context menus. + +Configure charts that you declare with Swift Charts. + +--- + +# https://developer.apple.com/documentation/swiftui/view-text-and-symbols + +Collection + +- SwiftUI +- View fundamentals +- View +- Text and symbol modifiers + +API Collection + +# Text and symbol modifiers + +Manage the rendering, selection, and entry of text in your view. + +## Overview + +SwiftUI provides built-in views that display text to the user, like `Text` and `Label`, or that collect text from the user, like `TextField` and `TextEditor`. Use text and symbol modifiers to control how SwiftUI displays and manages that text. For example, you can set a font, specify text layout parameters, and indicate what kind of input to expect. + +To learn more about the kinds of views that you use to display text and the ways in which you can configure those views, see Text input and output. + +## Topics + +### Fonts + +Sets the default font for text in this view. + +### Dynamic type + +`func dynamicTypeSize(_:)` + +Sets the Dynamic Type size within the view to the given value. + +### Text style + +Applies a bold font weight to the text in this view. + +Sets the font design of the text in this view. + +Sets the font weight of the text in this view. + +Sets the font width of the text in this view. + +Applies italics to the text in this view. + +Modifies the fonts of all child views to use the fixed-width variant of the current font, if possible. + +Modifies the fonts of all child views to use fixed-width digits, if possible, while leaving other characters proportionally spaced. + +Applies a strikethrough to the text in this view. + +Sets a transform for the case of the text contained in this view when displayed. + +Applies a text scale to text in the view. + +Applies an underline to the text in this view. + +### Text layout + +Sets whether text in this view can compress the space between characters when necessary to fit text in a line. + +Sets the vertical offset for the text relative to its baseline in this view. + +Sets whether this view mirrors its contents horizontally when the layout direction is right-to-left. + +Sets the spacing, or kerning, between characters for the text in this view. + +Sets the minimum amount that text in this view scales down to fit in the available space. + +Sets the tracking for the text in this view. + +Sets the truncation mode for lines of text that are too long to fit in the available space. + +`func typesettingLanguage(_:isEnabled:)` + +Specifies the language for typesetting. + +### Multiline text + +`func lineLimit(_:)` + +Sets to a closed range the number of lines that text can occupy in this view. + +Sets a limit for the number of lines text can occupy in this view. + +Sets the amount of space between lines of text in this view. + +Sets the alignment of a text view that contains multiple lines of text. + +### Text selection + +Controls whether people can select text within this view. + +### Text entry + +Sets whether to disable autocorrection for this view. + +Sets the keyboard type for this view. + +Configures the behavior in which scrollable content interacts with the software keyboard. + +Sets how often the shift key in the keyboard is automatically enabled. + +Associates a fully formed string with the value of this view when used as a text input suggestion + +Configures the text input suggestions for this view. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on a watchOS device. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on macOS. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on an iOS or tvOS device. + +### Find and replace + +Programmatically presents the find and replace interface for text editor views. + +Prevents find and replace operations in a text editor. + +Prevents replace operations in a text editor. + +### Symbol appearance + +Sets the rendering mode for symbol images within this view. + +Makes symbols within the view show a particular variant. + +## See Also + +### Configuring view elements + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Configure a view’s foreground and background styles, controls, and visibility. + +Add and configure supporting views, like toolbars and context menus. + +Configure charts that you declare with Swift Charts. + +--- + +# https://developer.apple.com/documentation/swiftui/view-auxiliary-views + +Collection + +- SwiftUI +- View fundamentals +- View +- Auxiliary view modifiers + +API Collection + +# Auxiliary view modifiers + +Add and configure supporting views, like toolbars and context menus. + +## Overview + +Use these modifiers to manage supplemental views that present context-specific controls and information. For example, you can add titles and buttons to navigation bars, manage the status bar, create context menus, and add badges many different kinds of views. + +## Topics + +### Navigation titles + +Configure your apps navigation titles + +Use a navigation title to display the current navigation state of an interface. + +`func navigationTitle(_:)` + +Configures the view’s title for purposes of navigation, using a string binding. + +`func navigationSubtitle(_:)` + +Configures the view’s subtitle for purposes of navigation. + +### Navigation title configuration + +`func navigationDocument(_:)` + +Configures the view’s document for purposes of navigation. + +`func navigationDocument(_:preview:)` + +### Navigation bars + +Hides the navigation bar back button for the view. + +Configures the title display mode for this view. + +### Navigation stacks and columns + +Associates a destination view with a presented data type for use within a navigation stack. + +Associates a destination view with a binding that can be used to push the view onto a `NavigationStack`. + +`func navigationDestination(item: Binding>, destination: (D) -> C) -> some View` + +Associates a destination view with a bound value for use within a navigation stack or navigation split view + +Sets a fixed, preferred width for the column containing this view. + +Sets a flexible, preferred width for the column containing this view. + +### Tab views + +Specifies the customizations to apply to the sidebar representation of the tab view. + +Specifies the default placement for the tabs in a tab view using the adaptable sidebar style. + +Adds a custom header to the sidebar of a tab view. + +Adds a custom footer to the sidebar of a tab view. + +Adds a custom bottom bar to the sidebar of a tab view. + +Adds custom actions to a section. + +### Toolbars + +For information about toolbars, see Toolbars. + +`func toolbar(content:)` + +Populates the toolbar or navigation bar with the specified items. + +Populates the toolbar or navigation bar with the specified items, allowing for user customization. + +Specifies the visibility of a bar managed by SwiftUI. + +Remove a toolbar item present by default + +`func toolbarBackground(_:for:)` + +Specifies the preferred shape style of the background of a bar managed by SwiftUI. + +Specifies the preferred visibility of backgrounds on a bar managed by SwiftUI. + +Specifies the preferred foreground style of bars managed by SwiftUI. + +Specifies the preferred color scheme of a bar managed by SwiftUI. + +Configures the semantic role for the content populating the toolbar. + +Configure the title menu of a toolbar. + +Configures the toolbar title display mode for this view. + +`func ornament(visibility:attachmentAnchor:contentAlignment:ornament:)` + +Presents an ornament. + +### Context menus + +For information about menus in your app, see Menus and commands. + +Adds a context menu to a view. + +Adds a context menu with a custom preview to a view. + +Adds an item-based context menu to a view. + +### Badges + +`func badge(_:)` + +Generates a badge for the view from an integer value. + +Specifies the prominence of badges created by this view. + +### Help text + +`func help(_:)` + +Adds help text to a view using a text view that you provide. + +### Status bar + +Sets the visibility of the status bar. + +### Touch Bar + +Sets the content that the Touch Bar displays. + +Sets the Touch Bar content to be shown in the Touch Bar when applicable. + +Sets principal views that have special significance to this Touch Bar. + +Sets a user-visible string that identifies the view’s functionality. + +Sets the behavior of the user-customized view. + +## See Also + +### Configuring view elements + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Configure a view’s foreground and background styles, controls, and visibility. + +Manage the rendering, selection, and entry of text in your view. + +Configure charts that you declare with Swift Charts. + +--- + +# https://developer.apple.com/documentation/swiftui/view-chart-view + +Collection + +- SwiftUI +- View fundamentals +- View +- Chart view modifiers + +API Collection + +# Chart view modifiers + +Configure charts that you declare with Swift Charts. + +## Overview + +Use these modifiers to configure a `Chart` view that you add to your SwiftUI app. + +## Topics + +### Styles + +Adds a background to a view that contains a chart. + +Configures the foreground style scale for charts. + +Configures the plot area of charts. + +### Legends + +Configures the legend for charts. + +### Overlays + +Adds an overlay to a view that contains a chart. + +### Axes + +Sets the visibility of the x axis. + +Configures the x-axis for charts in the view. + +Configures the x axis content of charts. + +Sets the visibility of the y axis. + +Configures the y-axis for charts in the view. + +Configures the y axis content of charts. + +### Axis Labels + +`func chartXAxisLabel(_:position:alignment:spacing:)` + +Adds x axis label for charts in the view. + +`func chartYAxisLabel(_:position:alignment:spacing:)` + +Adds y axis label for charts in the view. + +### Axis scales + +Configures the x scale for charts. + +Configures the y scale for charts. + +### Symbol scales + +`func chartSymbolScale(_:)` + +Configures the symbol scale for charts. + +Configures the symbol style scale for charts. + +`func chartSymbolScale(domain:range:)` + +`func chartSymbolScale(range:)` + +### Symbol size scales + +Configures the symbol size scale for charts. + +### Line style scales + +Configures the line style scale for charts. + +### Scrolling + +Sets the initial scroll position along the x-axis. Once the user scrolls the scroll view, the value provided to this modifier will have no effect. + +Sets the initial scroll position along the y-axis. Once the user scrolls the scroll view, the value provided to this modifier will have no effect. + +Associates a binding to be updated when the chart scrolls along the x-axis. + +Associates a binding to be updated when the chart scrolls along the y-axis. + +Sets the scroll behavior of the scrollable chart. + +Configures the scrollable behavior of charts in this view. + +### Visible domain + +Sets the length of the visible domain in the X dimension. + +Sets the length of the visible domain in the Y dimension. + +## See Also + +### Configuring view elements + +Make your SwiftUI apps accessible to everyone, including people with disabilities. + +Configure a view’s foreground and background styles, controls, and visibility. + +Manage the rendering, selection, and entry of text in your view. + +Add and configure supporting views, like toolbars and context menus. + +--- + +# https://developer.apple.com/documentation/swiftui/view-style-modifiers + +Collection + +- SwiftUI +- View fundamentals +- View +- Style modifiers + +API Collection + +# Style modifiers + +Apply built-in styles to different types of views. + +## Overview + +SwiftUI defines built-in styles for certain kinds of views, and chooses the appropriate style for a particular presentation context. For example, a `Label` might appear as an icon, a string title, or both, depending on factors like the platform, whether the view appears in a toolbar, and so on. + +You can override the automatic style by using one of the style modifiers. These modifiers typically propagate through container views, so you can wrap an entire view hierarchy in a style modifier to affect all the views of the given type within the hierarchy. Some view types enable you to create custom styles, which you also apply using style modifiers. + +For more information about styling views, see View styles. + +## Topics + +### Controls + +`func buttonStyle(_:)` + +Sets the style for buttons within this view to a button style with a custom appearance and standard interaction behavior. + +Sets the style for date pickers within this view. + +Sets the style for menus within this view. + +Sets the style for pickers within this view. + +Sets the style for toggles in a view hierarchy. + +### Indicators + +Sets the style for gauges within this view. + +Sets the style for progress views in this view. + +### Text + +Sets the style for labels within this view. + +Sets the style for text fields within this view. + +Sets the style for text editors within this view. + +### Collections + +Sets the style for lists within this view. + +Sets the style for tables within this view. + +Sets the style for disclosure groups within this view. + +### Presentation + +Sets the style for navigation split views within this view. + +Sets the style for the tab view within the current environment. + +Sets the style for windows created by interacting with this view. + +Sets the style for the toolbar in windows created by interacting with this view. + +### Groups + +Sets the style for control groups within this view. + +Sets the style for group boxes within this view. + +Sets the style for the index view within the current environment. + +## See Also + +### Drawing views + +Tell a view how to arrange itself within a view hierarchy by adjusting its size, position, alignment, padding, and so on. + +Affect the way the system draws a view, for example by scaling or masking a view, or by applying graphical effects. + +--- + +# https://developer.apple.com/documentation/swiftui/view-graphics-and-rendering + +Collection + +- SwiftUI +- View fundamentals +- View +- Graphics and rendering modifiers + +API Collection + +# Graphics and rendering modifiers + +Affect the way the system draws a view, for example by scaling or masking a view, or by applying graphical effects. + +## Overview + +Use these view modifiers to apply many of the rendering effects typically associated with a graphics context, like adding masks and creating composites. You can apply these effects to graphical views, like Shapes, as well as any other SwiftUI view. + +When you do need the flexibility of immediate mode drawing in a graphics context, use a `Canvas` view instead. This can be particularly helpful when you want to draw an extremely large number of dynamic shapes — for example, to create particle effects. + +For more information about using these effects in your app, see Drawing and graphics. + +## Topics + +### Masks and clipping + +Masks this view using the alpha channel of the given view. + +Clips this view to its bounding rectangular frame. + +Sets a clipping shape for this view. + +Sets the container shape to use for any container relative shape within this view. + +### Scale + +Scales this view to fill its parent. + +Scales this view to fit its parent. + +`func scaleEffect(_:anchor:)` + +Scales this view’s rendered output by the given amount in both the horizontal and vertical directions, relative to an anchor point. + +Scales this view’s rendered output by the given horizontal and vertical amounts, relative to an anchor point. + +Scales this view by the specified horizontal, vertical, and depth factors, relative to an anchor point. + +Scales images within the view according to one of the relative sizes available including small, medium, and large images sizes. + +`func aspectRatio(_:contentMode:)` + +Constrains this view’s dimensions to the specified aspect ratio. + +### Rotation and transformation + +Rotates a view’s rendered output in two dimensions around the specified point. + +Rotates the view’s content by the specified 3D rotation value. + +Renders a view’s content as if it’s rotated in three dimensions around the specified axis. + +`func rotation3DEffect(_:axis:anchor:)` + +Rotates the view’s content by an angle about an axis that you specify as a tuple of elements. + +Applies a projection transformation to this view’s rendered output. + +Applies an affine transformation to this view’s rendered output. + +Applies a 3D transformation to this view’s rendered output. + +### Graphical effects + +Applies a Gaussian blur to this view. + +Sets the transparency of this view. + +Brightens this view by the specified amount. + +Sets the contrast and separation between similar colors in this view. + +Inverts the colors in this view. + +Adds a color multiplication effect to this view. + +Adjusts the color saturation of this view. + +Adds a grayscale effect to this view. + +Applies a hue rotation effect to this view. + +Adds a luminance to alpha effect to this view. + +Adds a shadow to this view. + +Applies effects to this view, while providing access to layout information through a geometry proxy. + +Applies effects to this view, while providing access to layout information through a 3D geometry proxy. + +### Shaders + +Returns a new view that applies `shader` to `self` as a filter effect on the color of each pixel. + +Returns a new view that applies `shader` to `self` as a geometric distortion effect on the location of each pixel. + +Returns a new view that applies `shader` to `self` as a filter on the raster layer created from `self`. + +### Composites + +Sets the blend mode for compositing this view with overlapping views. + +Wraps this view in a compositing group. + +Composites this view’s contents into an offscreen image before final display. + +### Animations + +`func animation(_:)` + +Applies the given animation to this view when this view changes. + +Applies the given animation to this view when the specified value changes. + +Applies the given animation to all animatable values within the `body` closure. + +Loops the given keyframes continuously, updating the view using the modifiers you apply in `body`. + +Plays the given keyframes when the given trigger value changes, updating the view using the modifiers you apply in `body`. + +Animates effects that you apply to a view over a sequence of phases that change continuously. + +Animates effects that you apply to a view over a sequence of phases that change based on a trigger. + +Modifies the view to use a given transition as its method of animating changes to the contents of its views. + +`func transition(_:)` + +Associates a transition with the view. + +Applies the given transaction mutation function to all animations used within the view. + +Applies the given transaction mutation function to all animations used within the `body` closure. + +Defines a group of views with synchronized geometry using an identifier and namespace that you provide. + +Isolates the geometry (e.g. position and size) of the view from its parent view. + +## See Also + +### Drawing views + +Apply built-in styles to different types of views. + +Tell a view how to arrange itself within a view hierarchy by adjusting its size, position, alignment, padding, and so on. + +--- + +# https://developer.apple.com/documentation/swiftui/view-search + + + +--- + +# https://developer.apple.com/documentation/swiftui/view-presentation + +Collection + +- SwiftUI +- View fundamentals +- View +- Presentation modifiers + +API Collection + +# Presentation modifiers + +Define additional views for the view to present under specified conditions. + +## Overview + +Use presentation modifiers to show different kinds of modal presentations, like alerts, popovers, sheets, and confirmation dialogs. + +Because SwiftUI is a declarative framework, you don’t call a method at the moment you want to present the modal. Rather, you define how the presentation looks and the condition under which SwiftUI should present it. SwiftUI detects when the condition changes and makes the presentation for you. Because you provide a `Binding` to the condition that initiates the presentation, SwiftUI can reset the underlying value when the user dismisses the presentation. + +For more information about how to use these modifiers, see Modal presentations. + +## Topics + +### Alerts + +`func alert(_:isPresented:actions:)` + +Presents an alert when a given condition is true, using a text view for the title. + +`func alert(_:isPresented:presenting:actions:)` + +Presents an alert using the given data to produce the alert’s content and a text view as a title. + +Presents an alert when an error is present. + +### Alerts with a message + +`func alert(_:isPresented:actions:message:)` + +Presents an alert with a message when a given condition is true using a text view as a title. + +`func alert(_:isPresented:presenting:actions:message:)` + +Presents an alert with a message using the given data to produce the alert’s content and a text view for a title. + +Presents an alert with a message when an error is present. + +### Confirmation dialogs + +`func confirmationDialog(_:isPresented:titleVisibility:actions:)` + +Presents a confirmation dialog when a given condition is true, using a text view for the title. + +`func confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)` + +Presents a confirmation dialog using data to produce the dialog’s content and a text view for the title. + +`func dismissalConfirmationDialog(_:shouldPresent:actions:)` + +Presents a confirmation dialog when a dismiss action has been triggered. + +### Confirmation dialogs with a message + +`func confirmationDialog(_:isPresented:titleVisibility:actions:message:)` + +Presents a confirmation dialog with a message when a given condition is true, using a text view for the title. + +`func confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)` + +Presents a confirmation dialog with a message using data to produce the dialog’s content and a text view for the message. + +`func dismissalConfirmationDialog(_:shouldPresent:actions:message:)` + +### Dialog configuration + +Configures the icon used by dialogs within this view. + +Enables user suppression of dialogs and alerts presented within `self`, with a default suppression message on macOS. Unused on other platforms. + +`func dialogSuppressionToggle(_:isSuppressed:)` + +Enables user suppression of dialogs and alerts presented within `self`, with a custom suppression message on macOS. Unused on other platforms. + +### Sheets + +Presents a sheet when a binding to a Boolean value that you provide is true. + +Presents a sheet using the given item as a data source for the sheet’s content. + +Presents a modal view that covers as much of the screen as possible when binding to a Boolean value you provide is true. + +Presents a modal view that covers as much of the screen as possible using the binding you provide as a data source for the sheet’s content. + +### Popovers + +Presents a popover using the given item as a data source for the popover’s content. + +Presents a popover when a given condition is true. + +### Sheet and popover configuration + +Conditionally prevents interactive dismissal of presentations like popovers, sheets, and inspectors. + +Sets the available detents for the enclosing sheet. + +Sets the available detents for the enclosing sheet, giving you programmatic control of the currently selected detent. + +Sets the visibility of the drag indicator on top of a sheet. + +Sets the presentation background of the enclosing sheet using a shape style. + +Sets the presentation background of the enclosing sheet to a custom view. + +Controls whether people can interact with the view behind a presentation. + +Specifies how to adapt a presentation to horizontally and vertically compact size classes. + +Specifies how to adapt a presentation to compact size classes. + +Configures the behavior of swipe gestures on a presentation. + +Requests that the presentation have a specific corner radius. + +Sets the sizing of the containing presentation. + +### File exporter + +`func fileExporter(isPresented:document:contentType:defaultFilename:onCompletion:)` + +Presents a system interface for exporting a document that’s stored in a value type, like a structure, to a file on disk. + +`func fileExporter(isPresented:documents:contentType:onCompletion:)` + +Presents a system interface for exporting a collection of value type documents to files on disk. + +`func fileExporter(isPresented:document:contentTypes:defaultFilename:onCompletion:onCancellation:)` + +Presents a system interface for allowing the user to export a `FileDocument` to a file on disk. + +`func fileExporter(isPresented:documents:contentTypes:onCompletion:onCancellation:)` + +Presents a system dialog for allowing the user to export a collection of documents that conform to `FileDocument` to files on disk. + +Presents a system interface allowing the user to export a `Transferable` item to file on disk. + +Presents a system interface allowing the user to export a collection of items to files on disk. + +`func fileExporterFilenameLabel(_:)` + +On macOS, configures the `fileExporter` with a label for the file name field. + +### File importer + +Presents a system interface for allowing the user to import multiple files. + +Presents a system interface for allowing the user to import an existing file. + +Presents a system dialog for allowing the user to import multiple files. + +### File mover + +Presents a system interface for allowing the user to move an existing file to a new location. + +Presents a system interface for allowing the user to move a collection of existing files to a new location. + +Presents a system dialog for allowing the user to move an existing file to a new location. + +Presents a system dialog for allowing the user to move a collection of existing files to a new location. + +### File dialog configuration + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` to provide a refined URL search experience: include or exclude hidden files, allow searching by tag, etc. + +`func fileDialogConfirmationLabel(_:)` + +On macOS, configures the the `fileExporter`, `fileImporter`, or `fileMover` with a custom confirmation button label. + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` to persist and restore the file dialog configuration. + +Configures the `fileExporter`, `fileImporter`, or `fileMover` to open with the specified default directory. + +On macOS, configures the `fileExporter`, `fileImporter`, or `fileMover` behavior when a user chooses an alias. + +`func fileDialogMessage(_:)` + +On macOS, configures the the `fileExporter`, `fileImporter`, or `fileMover` with a custom text that is presented to the user, similar to a title. + +On macOS, configures the the `fileImporter` or `fileMover` to conditionally disable presented URLs. + +### Inspectors + +Inserts an inspector at the applied position in the view hierarchy. + +Sets a fixed, preferred width for the inspector containing this view when presented as a trailing column. + +Sets a flexible, preferred width for the inspector in a trailing-column presentation. + +### Quick look previews + +Presents a Quick Look preview of the contents of a single URL. + +Presents a Quick Look preview of the URLs you provide. + +### Family Sharing + +Presents an activity picker view as a sheet. + +### Live Activities + +The text color for the auxiliary action button that the system shows next to a Live Activity on the Lock Screen. + +Sets the tint color for the background of a Live Activity that appears on the Lock Screen. + +### Apple Music + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +### StoreKit + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +### PhotoKit + +Presents a Photos picker that selects a `PhotosPickerItem`. + +Presents a Photos picker that selects a `PhotosPickerItem` from a given photo library. + +Presents a Photos picker that selects a collection of `PhotosPickerItem`. + +Presents a Photos picker that selects a collection of `PhotosPickerItem` from a given photo library. + +Sets the accessory visibility of the Photos picker. Accessories include anything between the content and the edge, like the navigation bar or the sidebar. + +Disables capabilities of the Photos picker. + +Sets the mode of the Photos picker. + +## See Also + +### Providing interactivity + +Supply actions for a view to perform in response to user input and system events. + +Enable people to search for content in your app. + +Access storage and provide child views with configuration data. + +--- + +# https://developer.apple.com/documentation/swiftui/view-state + +Collection + +- SwiftUI +- View fundamentals +- View +- State modifiers + +API Collection + +# State modifiers + +Access storage and provide child views with configuration data. + +## Overview + +SwiftUI provides tools for managing data in your app. For example, you can store values and objects in an environment that’s shared among the views in a view hierarchy. Any view that shares the environment — typically all the descendant views of the view that stores the item — can then access the stored item. + +For more information about the types that SwiftUI provides to help manage data in your app, see Model data. + +## Topics + +### Identity + +Sets the unique tag value of this view. + +Binds a view’s identity to the given proxy value. + +Prevents the view from updating its child view when its new value is the same as its old value. + +### Environment values + +Places an observable object in the view’s environment. + +Sets the environment value of the specified key path to the given value. + +Supplies an observable object to a view’s hierarchy. + +Transforms the environment value of the specified key path with the given function. + +### Preferences + +Sets a value for the given preference. + +Applies a transformation to a preference value. + +Sets a value for the specified preference key, the value is a function of a geometry value tied to the current coordinate space, allowing readers of the value to convert the geometry to their local coordinates. + +Sets a value for the specified preference key, the value is a function of the key’s current value and a geometry value tied to the current coordinate space, allowing readers of the value to convert the geometry to their local coordinates. + +Adds an action to perform when the specified preference key’s value changes. + +Reads the specified preference value from the view, using it to produce a second view that is applied as the background of the original view. + +Reads the specified preference value from the view, using it to produce a second view that is applied as an overlay to the original view. + +### Default storage + +The default store used by `AppStorage` contained within the view. + +### Configuring a model + +Sets the model context in this view’s environment. + +Sets the model container and associated model context in this view’s environment. + +`func modelContainer(for:inMemory:isAutosaveEnabled:isUndoEnabled:onSetup:)` + +Sets the model container in this view for storing the provided model type, creating a new container if necessary, and also sets a model context for that container in this view’s environment. + +## See Also + +### Providing interactivity + +Supply actions for a view to perform in response to user input and system events. + +Enable people to search for content in your app. + +Define additional views for the view to present under specified conditions. + +--- + +# https://developer.apple.com/documentation/swiftui/view-deprecated + +Collection + +- SwiftUI +- View fundamentals +- View +- Deprecated modifiers + +API Collection + +# Deprecated modifiers + +Review unsupported modifiers and their replacements. + +## Overview + +Avoid using deprecated modifiers in your app. Select a modifier to see the replacement that you should use instead. + +## Topics + +### Accessibility modifiers + +Adds a label to the view that describes its contents. + +Deprecated + +Adds a textual description of the value that the view contains. + +Specifies whether to hide this view from system accessibility features. + +Uses the specified string to identify the view. + +Sets a selection identifier for this view’s accessibility element. + +Communicates to the user what happens after performing the view’s action. + +`func accessibility(activationPoint:)` + +Specifies the point where activations occur in the view. + +Sets alternate input labels with which users identify a view. + +Adds the given traits to the view. + +Removes the given traits from this view. + +Sets the sort priority order for this view’s accessibility element, relative to other elements at the same level. + +### Appearance modifiers + +Sets this view’s color scheme. + +Sets the color that the system applies to the row background when this view is placed in a list. + +Layers the given view behind this view. + +Layers a secondary view in front of this view. + +Sets the color of the foreground elements displayed by this view. + +Promotes this view to the foreground in a complication. + +### Text modifiers + +Sets whether to apply auto-capitalization to this view. + +Sets whether to disable autocorrection for this view. + +### Auxiliary view modifiers + +`func navigationBarTitle(_:)` + +Sets the title in the navigation bar for this view. + +`func navigationBarTitle(_:displayMode:)` + +Sets the title and display mode in the navigation bar for this view. + +Sets the navigation bar items for this view. + +Configures the navigation bar items for this view. + +Hides the navigation bar for this view. + +Sets the visibility of the status bar. + +Adds a context menu to the view. + +### Style modifiers + +Sets the style for menu buttons within this view. + +Sets the style for navigation views within this view. + +### Layout modifiers + +Positions this view within an invisible frame. + +Changes the view’s proposed area to extend outside the screen’s safe areas. + +Assigns a name to the view’s coordinate space, so other code can operate on dimensions like points and sizes relative to the named space. + +### Graphics and rendering modifiers + +Sets the accent color for this view and the views it contains. + +Masks this view using the alpha channel of the given view. + +Applies the given animation to all animatable values within this view. + +Clips this view to its bounding frame, with the specified corner radius. + +### Input and events modifiers + +Adds an action to perform when the given value changes. + +Adds an action to perform when this view recognizes a tap gesture, and provides the action with the location of the interaction. + +Adds an action to perform when this view recognizes a long press gesture. + +Adds an action to perform in response to the system’s Paste command. + +Adds an action to perform in response to the system’s Paste command with items that you validate. + +Defines the destination for a drag and drop operation with the same size and position as this view, with behavior controlled by the given delegate. + +`func onDrop(of:isTargeted:perform:)` + +Defines the destination of a drag-and-drop operation that handles the dropped content with a closure that you specify. + +Specifies if the view is focusable and, if so, adds an action to perform when the view comes into focus. + +Adds an action to perform when the pointer enters, moves within, and exits the view’s bounds. + +### View presentation modifiers + +Presents an action sheet when a given condition is true. + +Presents an action sheet using the given item as a data source for the sheet’s content. + +Presents an alert to the user. + +### Search modifiers + +`func searchable(text:placement:prompt:suggestions:)` + +Marks this view as searchable, which configures the display of a search field. + +### Tab modifiers + +Sets the tab bar item associated with this view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/accessibilityactions(category:_:) + +#app-main) + +- SwiftUI +- View +- accessibilityActions(category:\_:) + +Instance Method + +# accessibilityActions(category:\_:) + +Adds multiple accessibility actions to the view with a specific category. Actions allow assistive technologies, such as VoiceOver, to interact with the view by invoking the action and are grouped by their category. When multiple action modifiers with an equal category are applied to the view, the actions are combined together. + +nonisolated + +category: AccessibilityActionCategory, + +## Parameters + +`category` + +The category the accessibility actions are grouped by. + +`content` + +The accessibility actions added to the view. + +## Discussion + +Var body: some View { EditorView() .accessibilityActions(category: .edit) { ForEach(editActions) { action in Button(action.title) { action() } } if hasTextSuggestions { Button(“Show Text Suggestions”) { presentTextSuggestions() } } } } + +## See Also + +### Adding actions to views + +Adds an accessibility action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds multiple accessibility actions to the view. + +`func accessibilityAction(named:_:)` + +Adds an accessibility action labeled by the contents of `label` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +Adds an accessibility action representing `actionKind` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +`func accessibilityAction(named:intent:)` + +Adds an accessibility action labeled `name` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +Adds an accessibility adjustable action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds an accessibility scroll action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +`struct AccessibilityActionKind` + +The structure that defines the kinds of available accessibility actions. + +`enum AccessibilityAdjustmentDirection` + +A directional indicator you use when making an accessibility adjustment. + +`struct AccessibilityActionCategory` + +Designates an accessibility action category that is provided and named by the system. + +--- + +# https://developer.apple.com/documentation/swiftui/view/accessibilitydefaultfocus(_:_:) + +#app-main) + +- SwiftUI +- View +- accessibilityDefaultFocus(\_:\_:) Beta + +Instance Method + +# accessibilityDefaultFocus(\_:\_:) + +Defines a region in which default accessibility focus is evaluated by assigning a value to a given accessibility focus state binding. + +nonisolated + +_ value: Value + +## Parameters + +`binding` + +An accessibility focus state binding to update when evaluating default accessibility focus. + +`value` + +The value to set the binding to during evaluation. + +## Discussion + +Accessibility default focus is evaluated when a scene appears and an accessibility technology like VoiceOver focuses on its content, when an accessibility focus state binding update moves focus automatically, and when the layout of a scene changes and the accessibility technology must refocus on new content. + +In the following example, an accessibility technology, like VoiceOver, automatically lands on the title of the playlist as the most important view to initially have focus on, rather than navigating through all controls to understand what the primary content of the view is. + +var body: some View { +VStack { +PlayerControls(currentSong: $currentSong) +Text(playlist.title) +.font(.title) +.accessibilityFocused($focusedField, equals: .title) +PlaylistEntries(entries: playlist.entries) +} +.accessibilityDefaultFocus($focusedField, .title) +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/accessibilityscrollstatus(_:isenabled:) + +#app-main) + +- SwiftUI +- View +- accessibilityScrollStatus(\_:isEnabled:) Beta + +Instance Method + +# accessibilityScrollStatus(\_:isEnabled:) + +Changes the announcement provided by accessibility technologies when a user scrolls a scroll view within this view. + +nonisolated +func accessibilityScrollStatus( +_ status: LocalizedStringResource, +isEnabled: Bool = true + +Show all declarations + +## Parameters + +`status` + +The current status of the scroll view. + +`isEnabled` + +If true the accessibility scroll status is applied; otherwise the accessibility scroll status is unchanged. + +## Discussion + +Use this modifier to provide a description of the content at the current position in the scroll view. For example, you could use this modifier to announce the current month being scrolled to in a view that contains a calendar. + +ScrollView { LazyVStack { ForEach(months) { months in MonthView(month: months) } } .scrollTargetLayout() } .scrollPosition($position) .accessibilityScrollStatus(”(months.name(position.viewID)) (year)”) + +By default, VoiceOver announces “Page X of Y” while scrolling. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/accessorywidgetgroupstyle(_:) + +#app-main) + +- SwiftUI +- View +- accessoryWidgetGroupStyle(\_:) + +Instance Method + +# accessoryWidgetGroupStyle(\_:) + +The view modifier that can be applied to `AccessoryWidgetGroup` to specify the shape the three content views will be masked with. The value of `style` is set to `.automatic`, which is `.circular` by default. + +@MainActor @preconcurrency + +## Parameters + +`style` + +The shape with which the content views are masked. The available shapes are circle and rounded square. + +--- + +# https://developer.apple.com/documentation/swiftui/view/addordertowalletbuttonstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/addpasstowalletbuttonstyle(_:) + +#app-main) + +- SwiftUI +- View +- addPassToWalletButtonStyle(\_:) + +Instance Method + +# addPassToWalletButtonStyle(\_:) + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +PassKitSwiftUI + +nonisolated + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/allowswindowactivationevents() + +#app-main) + +- SwiftUI +- View +- allowsWindowActivationEvents() + +Instance Method + +# allowsWindowActivationEvents() + +Configures gestures in this view hierarchy to handle events that activate the containing window. + +nonisolated + +## Discussion + +Views higher in the hierarchy can override the value you set on this view. In the following example, the tap gesture on the `Rectangle` won’t handle events that activate the containing window because the outer `allowsWindowActivationEvents(_:)` view modifier overrides the inner one: + +HStack { +Rectangle() +.onTapGesture { ... } +.allowsWindowActivationEvents() +} +.allowsWindowActivationEvents(false) + +--- + +# https://developer.apple.com/documentation/swiftui/view/appstoreoffer(ispresented:kind:ondismiss:) + +#app-main) + +- SwiftUI +- View +- appStoreOffer(isPresented:kind:onDismiss:) Beta + +Instance Method + +# appStoreOffer(isPresented:kind:onDismiss:) + +StoreKitSwiftUI + +nonisolated +func appStoreOffer( + +kind: AppStoreOfferKind, + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/aspectratio3d(_:contentmode:) + +#app-main) + +- SwiftUI +- View +- aspectRatio3D(\_:contentMode:) Beta + +Instance Method + +# aspectRatio3D(\_:contentMode:) + +Constrains this view’s dimensions to the specified 3D aspect ratio. + +nonisolated +func aspectRatio3D( +_ aspectRatio: Size3D? = nil, +contentMode: ContentMode + +## Parameters + +`aspectRatio` + +The ratio of width to height to depth to use for the resulting view. If `aspectRatio` is `nil`, the resulting view maintains this view’s aspect ratio. + +`contentMode` + +A flag indicating whether this view should fit or fill the parent context. + +## Return Value + +A view that constrains this view’s dimensions to `aspectRatio`, using `contentMode` as its scaling algorithm. + +## Discussion + +If this view is resizable, the resulting view will have `aspectRatio` as its aspect ratio. In this example, the Model3D has a 2 : 3 : 1 width to height to depth ratio, and scales to fit its frame: + +Model3D(named: "Sphere") { resolved in +let ratio3D = Size3D(width: 2, height: 3, depth: 1) +resolved +.resizable() +.aspectRatio3D(ratio3D, contentMode: .fit) +} placeholder: { +ProgressView() +} +.frame(width: 200, height: 200) +.frame(depth: 200) +.border(Color(white: 0.75)) + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/assistiveaccessnavigationicon(_:) + +#app-main) + +- SwiftUI +- View +- assistiveAccessNavigationIcon(\_:) Beta + +Instance Method + +# assistiveAccessNavigationIcon(\_:) + +Configures the view’s icon for purposes of navigation. + +nonisolated + +## Parameters + +`icon` + +The icon image to display. + +## Discussion + +In an Assistive Access scene on iOS and iPadOS, the icon is displayed adjacent to the navigation title. Otherwise, the icon is unused. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/assistiveaccessnavigationicon(systemimage:) + +#app-main) + +- SwiftUI +- View +- assistiveAccessNavigationIcon(systemImage:) Beta + +Instance Method + +# assistiveAccessNavigationIcon(systemImage:) + +Configures the view’s icon for purposes of navigation. + +nonisolated + +## Parameters + +`systemImage` + +The system symbol to display. + +## Discussion + +In an Assistive Access scene on iOS and iPadOS, the icon is displayed adjacent to the navigation title. Otherwise, the icon is unused. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/attributedtextformattingdefinition(_:) + +#app-main) + +- SwiftUI +- View +- attributedTextFormattingDefinition(\_:) Beta + +Instance Method + +# attributedTextFormattingDefinition(\_:) + +Apply a text formatting definition to all nested editor views. + +@MainActor @preconcurrency + +Show all declarations + +## Discussion + +Applying a text formatting definition to a view makes sure that any content observable to the user adheres to the constraints of the formatting definition. + +You can compose your own definition from an attribute scope and a series of `AttributedTextValueConstraint` s: + +// MyTextFormattingDefinition.swift + +struct MyTextFormattingDefinition: AttributedTextFormattingDefinition { +var body: some AttributedTextFormattingDefinition< + +ValueConstraint( +for: \.underlineStyle, +values: [nil, .single], +default: .single) +MyAttributedTextValueConstraint() +} +} + +// MyEditorView.swift + +TextEditor(text: $text) +.attributedTextFormattingDefinition(MyTextFormattingDefinition()) + +To manually enforce constraints, e.g. before serializing text contents, use the `AttributedTextValueConstraint/constrain(_:)-6cp64` method. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/automateddeviceenrollmentaddition(ispresented:) + +#app-main) + +- SwiftUI +- View +- automatedDeviceEnrollmentAddition(isPresented:) + +Instance Method + +# automatedDeviceEnrollmentAddition(isPresented:) + +Presents a modal view that enables users to add devices to their organization. + +@MainActor @preconcurrency + +## Parameters + +`isPresented` + +A binding to a Boolean value that determines whether to present the view. + +## Return Value + +The modal view that the system presents to the user. + +## Discussion + +Use this view modifier to present UI in your app for device administrators to add devices purchased outside of the official channel to their organization — Apple School Manager, Apple Business Manager, or Apple Business Essentials. The system requires sign in with a Managed Apple Account that includes device enrollment privileges. + +The following code example shows one way to present this view to your users: + +Example Usage: + +import SwiftUI +import AutomatedDeviceEnrollment + +struct ContentView: View { +@State private var isAddingDevices: Bool = false + +var body: some View { +Button("Add Devices to Automated Device Enrollment") { +isAddingDevices = true +} +.automatedDeviceEnrollmentAddition(isPresented: $isAddingDevices) +.onChange(of: isAddingDevices) { +if !isAddingDevices { +// Handle dismiss action +} +} +} +} + +## See Also + +### Working with managed devices + +Applies a managed content style to the view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/breakthrougheffect(_:) + +#app-main) + +- SwiftUI +- View +- breakthroughEffect(\_:) Beta + +Instance Method + +# breakthroughEffect(\_:) + +Ensures that the view is always visible to the user, even when other content is occluding it, like 3D models. + +nonisolated + +## Parameters + +`effect` + +The type of effect to apply when the view is occluded by other content. + +## Discussion + +Breakthrough is an effect allowing elements to be visible to the user even when other app content (3D models, UI elements) is positioned in front. The way the element breaks through content in front depends on the chosen `BreakthroughEffect`. + +This modifier can be used in a number of scenarios, including ornaments and `RealityView` attachments to have them break through in their entirety. + +### Regular Elements + +To have SwiftUI element break through content in front, apply the `breakthroughEffect` modifier directly to the View: + +ResizeHandle() +.breakthroughEffect(.subtle) + +### Ornaments + +When applied to the whole content of an ornament, the ornament (including its background) will break through content in front: + +Text("A view with an ornament") +.ornament(attachmentAnchor: .scene(.bottom)) { +OrnamentContent() +.glassBackgroundEffect() +.breakthroughEffect(.prominent) +} + +### RealityView Attachments + +Similarly, a `RealityView` `Attachment` can break through other entities in the RealityView, including the entity it is attached to: + +Attachment(id: "example") { +AttachmentContent() +.breakthroughEffect(.subtle) +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/buttonsizing(_:) + +#app-main) + +- SwiftUI +- View +- buttonSizing(\_:) Beta + +Instance Method + +# buttonSizing(\_:) + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/certificatesheet(trust:title:message:help:) + +#app-main) + +- SwiftUI +- View +- certificateSheet(trust:title:message:help:) + +Instance Method + +# certificateSheet(trust:title:message:help:) + +Displays a certificate sheet using the provided certificate trust. + +@MainActor @preconcurrency +func certificateSheet( + +title: String? = nil, +message: String? = nil, +help: URL? = nil + +## Parameters + +`trust` + +`title` + +The title to display. Uses a default title if nil. + +`message` + +The message to display. Uses a default message if nil. + +`help` + +URL for the “Learn More” button. Uses a default URL if nil. + +--- + +# https://developer.apple.com/documentation/swiftui/view/chart3dcameraprojection(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chart3dpose(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chart3drenderingstyle(_:) + +#app-main) + +- SwiftUI +- View +- chart3DRenderingStyle(\_:) Beta + +Instance Method + +# chart3DRenderingStyle(\_:) + +@MainActor @preconcurrency + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzaxis(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzaxis(content:) + +#app-main) + +- SwiftUI +- View +- chartZAxis(content:) Beta + +Instance Method + +# chartZAxis(content:) + +Configures the z-axis for 3D charts in the view. + +nonisolated + +## Parameters + +`content` + +The axis content. + +## Discussion + +Use this modifier to customize the z-axis of a chart. Provide an `AxisMarks` builder that composes `AxisGridLine`, `AxisTick`, and `AxisValueLabel` structures to form the axis. Omit components from the builder to omit them from the resulting axis. For example, the following code adds grid lines to the z-axis: + +.chartZAxis { +AxisMarks { +AxisGridLine() +} +} + +Use arguments such as `position:` or `values:` to control the placement of the axis values it displays. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzaxislabel(_:position:alignment:spacing:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzscale(domain:range:type:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzscale(domain:type:) + +#app-main) + +- SwiftUI +- View +- chartZScale(domain:type:) Beta + +Instance Method + +# chartZScale(domain:type:) + +nonisolated + +domain: Domain, +type: ScaleType? = nil + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzscale(range:type:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzselection(range:) + +#app-main) + +- SwiftUI +- View +- chartZSelection(range:) Beta + +Instance Method + +# chartZSelection(range:) + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/chartzselection(value:) + +#app-main) + +- SwiftUI +- View +- chartZSelection(value:) Beta + +Instance Method + +# chartZSelection(value:) + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/contactaccessbuttoncaption(_:) + +#app-main) + +- SwiftUI +- View +- contactAccessButtonCaption(\_:) + +Instance Method + +# contactAccessButtonCaption(\_:) + +@MainActor @preconcurrency + +## See Also + +### Managing contact access + +Modally present UI which allows the user to select which contacts your app has access to. + +--- + +# https://developer.apple.com/documentation/swiftui/view/contactaccessbuttonstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/containervalue(_:_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/contentcaptureprotected(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/contenttoolbar(for:content:) + +#app-main) + +- SwiftUI +- View +- contentToolbar(for:content:) + +Instance Method + +# contentToolbar(for:content:) + +Populates the toolbar of the specified content view type with the views you provide. + +nonisolated + +for placement: ContentToolbarPlacement, + +Show all declarations + +## Parameters + +`content` + +The views representing the content of the toolbar. + +## Discussion + +Use this modifier to add toolbar content that remains consistent regardless of the content view. Use a `toolbar` modifier within the content view if the toolbar content is dependent the content view is showing. + +Unlike the toolbar modifier, which configures the toolbar of the modified view’s container, the `contentToolbar` modifier configures the toolbar within the modified view’s content instead. This means that the `contentToolbar` modifier should generally be applied directly to a container view, instead of to the content within a container view. For example, to configure the toolbar of tab view’s sidebar, apply the `contentToolbar` modifier to the `TabView` itself, not to any of the tabs within the `TabView`. + +The content toolbar modifier expects a collection of toolbar items that you can provide by either supplying a collection of views with each view wrapped in a `ToolbarItem`, or by providing a collection of views as a `ToolbarItemGroup`. The example below adds an account summary to the bottom of the tab view sidebar and a button to the tab view sidebar overflow menu. + +TabView { +Tab("Home", systemImage: "house") { +HomeView() +} + +Tab("Alerts", systemImage: "bell") { +AlertsView() +} + +TabSection("Categories") { +Tab("Climate", systemImage: "fan") { +ClimateView() +} + +Tab("Lights", systemImage: "lightbulb") { +LightsView() +} +} +} +.tabViewStyle(.sidebarAdaptable) +.contentToolbar(for: .tabViewSidebar) { +ToolbarItem(placement: .automatic) { +DisconnectDevicesButton() +} +ToolbarItem(placement: .bottomBar) { +AccountSummaryView() +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/view/continuitydevicepicker(ispresented:ondidconnect:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/controlwidgetactionhint(_:) + +#app-main) + +- SwiftUI +- View +- controlWidgetActionHint(\_:) + +Instance Method + +# controlWidgetActionHint(\_:) + +The action hint of the control described by the modified label. + +@MainActor @preconcurrency + +Show all declarations + +## Parameters + +`hint` + +The localized string resource to display. + +## Discussion + +This text will appear next to the Action Button to describe what your control will do when activated. By default, a control’s action hint is derived from its display name, the type of control, and value text, if any: + +// Action Hint: “Hold for ‘Ping My Watch’” struct PingMyWatchButton: Control { static let displayName: LocalizedStringResource = “Ping My Watch” … } + +// When this button’s action conforms to `OpenIntent`: // Action Hint: “Hold to Open Notes” struct NotesLauncher: Control { static let displayName: LocalizedStringResource = “Notes” … } + +// Action Hint: “Hold to Turn On ‘Silent Mode’” / “Hold to Turn Off ‘Silent Mode’” struct SilentModeToggle: Control { static let displayName: LocalizedStringResource = “Silent Mode” … } + +// Action Hint: “Hold for Silent” / “Hold for Ring” ControlWidgetToggle(…) { isOn in Label( isOn ? “Silent” : “Ring”, systemImage: isOn ? “bell.slash” : “bell” ) } + +When the default action hint is insufficiently descriptive, you can customize the hint by applying this modifier to the control’s label. For instance, we can describe what the user will use our `NotesLauncher` control to do, “Compose a Note”, instead of the default “Hold to Open Notes” hint, like this: + +ControlWidgetButton(…) { Image(systemName: “note.text”) .controlWidgetActionHint(“Compose a Note”) } + +## See Also + +### Composing control widgets + +`protocol ControlWidget` + +The configuration and content of a control widget to display in system spaces such as Control Center, the Lock Screen, and the Action Button. + +`protocol ControlWidgetConfiguration` + +A type that describes a control widget’s content. + +`struct EmptyControlWidgetConfiguration` + +An empty control widget configuration. + +`struct ControlWidgetConfigurationBuilder` + +A custom attribute that constructs a control widget’s body. + +`protocol ControlWidgetTemplate` + +`struct EmptyControlWidgetTemplate` + +An empty control widget template. + +`struct ControlWidgetTemplateBuilder` + +A custom attribute that constructs a control widget template’s body. + +`func controlWidgetStatus(_:)` + +The status of the control described by the modified label. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/controlwidgetstatus(_:) + +#app-main) + +- SwiftUI +- View +- controlWidgetStatus(\_:) + +Instance Method + +# controlWidgetStatus(\_:) + +The status of the control described by the modified label. + +@MainActor @preconcurrency + +Show all declarations + +## Parameters + +`status` + +The localized string resource to display. + +## Discussion + +This text will appear in Control Center when your control’s state changes. You can customize the text by applying this modifier to the control’s value label: + +// Status Text: "Do Not Disturb Until This Evening" / "Do Not Disturb Disabled" +ControlWidgetToggle("Do Not Disturb", ...) { isOn in +Image(systemName: "moon") +.controlWidgetStatus(isOn ? "Do Not Disturb Until This Evening" : "Do Not Disturb Disabled") +} + +## See Also + +### Composing control widgets + +`protocol ControlWidget` + +The configuration and content of a control widget to display in system spaces such as Control Center, the Lock Screen, and the Action Button. + +`protocol ControlWidgetConfiguration` + +A type that describes a control widget’s content. + +`struct EmptyControlWidgetConfiguration` + +An empty control widget configuration. + +`struct ControlWidgetConfigurationBuilder` + +A custom attribute that constructs a control widget’s body. + +`protocol ControlWidgetTemplate` + +`struct EmptyControlWidgetTemplate` + +An empty control widget template. + +`struct ControlWidgetTemplateBuilder` + +A custom attribute that constructs a control widget template’s body. + +`func controlWidgetActionHint(_:)` + +The action hint of the control described by the modified label. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/currententitlementtask(for:priority:action:) + +#app-main) + +- SwiftUI +- View +- currentEntitlementTask(for:priority:action:) + +Instance Method + +# currentEntitlementTask(for:priority:action:) + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +StoreKitSwiftUI + +nonisolated +func currentEntitlementTask( +for productID: String, +priority: TaskPriority = .medium, + +## Parameters + +`productID` + +The product ID to get the entitlement for. The task restarts whenever this parameter changes. + +`priority` + +The task priority to use when creating the task. + +`action` + +The action to perform when the task’s state changes. + +## Discussion + +Before a view modified with this method appears, a task will start in the background to get the current entitlement. While the view is presented, the task will call `action` whenever the entitlement changes or the task’s state changes. + +Consumable in-app purchases will always pass `nil` to `action`. For auto-renewable subscriptions, use `subscriptionStatusTask(for:priority:action:)` to get the full status information for the subscription. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/dialogpreventsapptermination(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragconfiguration(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragcontainer(for:id:in:_:) + +#app-main) + +- SwiftUI +- View +- dragContainer(for:id:in:\_:) Beta + +Instance Method + +# dragContainer(for:id:in:\_:) + +A container with draggable views. The drag payload is based on the current selection. + +nonisolated + +for itemType: Item.Type = Item.self, + +in namespace: Namespace.ID? = nil, + +## Parameters + +`itemType` + +A type of the dragged item. + +`id` + +A closure that provides the item’s identifier. + +`namespace` + +An optional namespace that identifies the drag container. + +`payload` + +A closure which is called when a drag operation begins. As an argument, the closure receives the identifier of the dragged view under the finger or cursor. Using the passed identifier, put together the payload to drag, and return from the closure. Return an empty `Collection` to disable the drag. + +## Return Value + +A view that can be activated as the source of a drag and drop operation, beginning with user gesture input. + +## Discussion + +Below is an example of a container view with three sections. Each section is draggable. Also, each section is selectable, and each view in a section is selectable as well. When a section drag starts, the app wants to use its custom logic to decide what the payload should be. If an unselected section is dragged, it should be the only one on the drag payload. If a selected section is dragged, the payload should contain other selected sections, and also the sections that have at least one fruit selected. + +var berries: [Fruit] +var citruses: [Fruit] +var tropical: [Fruit] + +@State var selectedSections: [UUID] +@State var selectedFruits: [UUID] + +var body: some View { +ScrollView { +VStack { +BerriesSectionView(FruitSection(berries)) +.draggable(containerItemID: FruitSection.berries) +CitrusSectionView(FruitSection(citruses)) +.draggable(containerItemID: FruitSection.citruses) +TropicalSectionView(FruitSection(tropical)) +.draggable(containerItemID: FruitSection.tropical) +} +} +.dragContainer { draggedSectionID in +let identifiers = sectionIDsToDrag(for: draggedSectionID) +return sections(identifiers: identifiers) +} +} + +// an unselected section is dragged +if !selectedSections.contains(draggedID) { return [draggedID] } + +// a selected section is dragged +let payloadIDs = selectedSections + sectionIdentifiersOfSelectedFruits() +return uniqueSections(from: payloadIDs) +} + +struct Fruit { +let id: UUID +} + +struct FruitSection: Transferable { +static let berries: UUID +static let citruses: UUID +static let tropical: UUID + +let id: UUID +var fruits: [Fruit] +} + +struct BerriesSectionView: View { +var section: FruitSection + +var body: some View { +HStack { +ForEach(section.fruit) { berry in +BerryView(berry) +} +} +} +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragcontainer(for:id:in:selection:_:) + +#app-main) + +- SwiftUI +- View +- dragContainer(for:id:in:selection:\_:) Beta + +Instance Method + +# dragContainer(for:id:in:selection:\_:) + +A container with single item selection and draggable views. The drag payload is based on the current selection and provided identifiers. + +nonisolated + +for itemType: Item.Type = Item.self, + +in namespace: Namespace.ID? = nil, + +Show all declarations + +## Parameters + +`itemType` + +A type of the dragged item. + +`id` + +A closure that returns the identifier of a given dragged item. + +`namespace` + +An optional namespace that identifies the drag container. + +`selection` + +A closure returning the item that is currently selected. Return `nil` to indicate that the selection is empty. + +`payload` + +A closure that returns the item with a given identifier. Return `nil` to disable drag. + +## Return Value + +A view that can be activated as the source of a drag and drop operation, beginning with user gesture input. + +## Discussion + +In an example below, an app presents a view with `Fruit` values. `Fruit` uses the name as its identifier. + +@State private var fruits: [Fruit] +@State private var selection: Fruit.ID? + +var body: some View { +VStack { +ForEach(fruits) { fruit in +FruitView(fruit) +.draggable(containerItemID: fruit.name) +} +} +.dragContainer(selection: selection, id: \.name) { draggedID in +fruit(id: id) +} +} + +struct Fruit: Transferable { +var name: String +... +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragcontainer(for:in:_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragcontainer(for:in:selection:_:) + +#app-main) + +- SwiftUI +- View +- dragContainer(for:in:selection:\_:) Beta + +Instance Method + +# dragContainer(for:in:selection:\_:) + +A container with multiple selection and draggable views. The drag payload is identifiable and is based on the current selection. + +nonisolated + +for itemType: Item.Type = Item.self, +in namespace: Namespace.ID? = nil, + +Show all declarations + +## Parameters + +`itemType` + +A type of the dragged items. + +`namespace` + +An optional namespace that identifies the drag container. + +`selection` + +Identifiers of the currently selected items. + +`payload` + +A closure which is called when a drag operation begins. As an argument, the closure receives either the identifiers of all the selected items, if the dragged item is a part of selection, or only the identifier of the dragged item, if it is not part of the selection. With the passed identifiers, put together the payload to drag, and return from the closure. The number of returned items can be different from the number of dragged identifiers. Only the views that correspond to returned item identifiers will be dragged. Return an empty `Collection` to disable the drag. + +## Return Value + +A view that can be activated as the source of a drag and drop operation, beginning with user gesture input. + +## Discussion + +In an example below, an app presents a view with `Fruit` values. When a user starts drag, SwiftUI uses the selection to put together the list of item identifiers to drag. + +var fruits: [Fruit] +@State var selection: [Fruit.ID] + +var body: some View { +VStack { +ForEach(fruits) { fruit in +FruitView(fruit) +.draggable(containerItemID: fruit.id) +} +} +.dragContainer(selection: selection) { ids in +fruits(ids: ids) +} +} + +/// Returns the Fruit values with given identifiers. + +struct Fruit: Transferable, Identifiable { ... } + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/dragpreviewsformation(_:) + +#app-main) + +- SwiftUI +- View +- dragPreviewsFormation(\_:) Beta + +Instance Method + +# dragPreviewsFormation(\_:) + +Describes the way dragged previews are visually composed. + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/draggable(_:_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/draggable(containeritemid:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/draggable(for:id:_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/dropconfiguration(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/droppreviewsformation(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/formstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/gamesynceddirectoryloadingview(directory:finishedloading:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glassbackgroundeffect(_:displaymode:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glassbackgroundeffect(_:in:displaymode:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffecttransition(_:isenabled:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/glasseffectunion(id:namespace:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/groupactivityassociation(_:) + +#app-main) + +- SwiftUI +- View +- groupActivityAssociation(\_:) Beta + +Instance Method + +# groupActivityAssociation(\_:) + +Specifies how a view should be associated with the current SharePlay group activity. + +GroupActivitiesSwiftUI + +nonisolated + +## Parameters + +`kind` + +If given, the kind of group activity association. + +You can dynamically remove the group activity's association with a view by +setting the given `kind` to `nil` instead of `.primary(_:)`. + +## Discussion + +When a group of people join a SharePlay activity with their spatial Personas, the system selects a common, primary scene to arrange their spatial Personas around. This association between the group activity and a primary scene in your app creates a shared space for the spatial Personas to interact in; enabling participants to gesture at the associated scene and understand each other. For more information about spatial Personas and SharePlay on visionOS, see doc:adding-spatial-persona-support-to-an-activity. + +By default, the system uses your scene’s activation conditions in concert with your activity’s `SceneAssociationBehavior` to select a scene to associate with the activity. You can specify a different scene or dynamically change the associated scene by using this modifier to set a view’s group activity association to `GroupActivityAssociationKind/primary`. + +struct MyApp: App { +var body: some Scene { +... +Window("Game Window") { +GameView() +.groupActivityAssociation(.primary("game-window")) +} +} +} + +If there are multiple scenes that are simultaneously configured with the primary group activity association, the most recently associated scene will be used. For example, if your app defines two windows and both contain views with the primary association kind, the most recently opened one will be used as the primary scene. If that second window is subsequently closed, the original window will be used again. + +You can dynamically remove the group activity’s association with a view by setting the given kind to `nil` instead of `.primary`. + +@State var activityState: ActivityState + +var body: some Scene { +WindowGroup { +TeamSelectionView() +.groupActivityAssociation(activityState == .teamSelection ? .primary("team-selection") : nil) +} + +WindowGroup { +CardGameVolume() +.groupActivityAssociation(activityState == .inGame ? .primary("in-game") : nil) +} +.windowStyle(.volumetric) +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/handgestureshortcut(_:isenabled:) + +#app-main) + +- SwiftUI +- View +- handGestureShortcut(\_:isEnabled:) + +Instance Method + +# handGestureShortcut(\_:isEnabled:) + +Assigns a hand gesture shortcut to the modified control. + +nonisolated +func handGestureShortcut( +_ shortcut: HandGestureShortcut, +isEnabled: Bool = true + +## Parameters + +`shortcut` + +The shortcut to associate with this control. + +`isEnabled` + +A Boolean value that indicates whether the shortcut is is enabled for this control. + +## Discussion + +Performing the control’s shortcut while the control is anywhere in the frontmost scene is equivalent to direct interaction with the control to perform its primary action. + +The following example lets users of a watchOS music app toggle playback by double-tapping their thumb and index finger together: + +struct PlaybackControls: View { +let model: TrackModel + +var body: some View { +HStack { +Button("Skip Back") { +model.skipBack() +} + +Button("Play/Pause") { +model.playPause() +} +.handGestureShortcut(.primaryAction) + +Button("Skip Forward") { +model.skipForward() +} +} +} +} + +The target of a hand gesture shortcut is resolved in a leading-to-trailing traversal of the active scene. + +## See Also + +### Defining custom gestures + +Attaches a gesture to the view with a higher precedence than gestures defined by the view. + +Sets the screen edge from which you want your gesture to take precedence over the system gesture. + +`protocol Gesture` + +An instance that matches a sequence of events to a gesture, and returns a stream of values for each of its states. + +`struct AnyGesture` + +A type-erased gesture. + +`struct HandActivationBehavior` + +An activation behavior specific to hand-driven input. + +`struct HandGestureShortcut` + +Hand gesture shortcuts describe finger and wrist movements that the user can perform in order to activate a button or toggle. + +--- + +# https://developer.apple.com/documentation/swiftui/view/handpointerbehavior(_:) + +#app-main) + +- SwiftUI +- View +- handPointerBehavior(\_:) + +Instance Method + +# handPointerBehavior(\_:) + +Sets the behavior of the hand pointer while the user is interacting with the view. + +nonisolated + +## Parameters + +`behavior` + +The behavior to apply to the hand pointer. If `nil`, the hand pointer behavior will be inherited from the view’s ancestors. + +## Return Value + +A view that applies the given behavior to the hand pointer. + +## See Also + +### Changing view appearance for hover events + +Applies a hover effect to this view. + +`struct HoverEffect` + +An effect applied when the pointer hovers over a view. + +Applies a hover effect to this view, optionally adding it to a `HoverEffectGroup`. + +Applies a hover effect to this view described by the given closure. + +`protocol CustomHoverEffect` + +A type that represents how a view should change when a pointer hovers over a view, or when someone looks at the view. + +`struct ContentHoverEffect` + +A `CustomHoverEffect` that applies effects to a view on hover using a closure. + +Beta + +`struct HoverEffectGroup` + +Describes a grouping of effects that activate together. + +Adds an implicit `HoverEffectGroup` to all effects defined on descendant views, so that all effects added to subviews activate as a group whenever this view or any descendant views are hovered. + +Adds a `HoverEffectGroup` to all effects defined on descendant views, and activates the group whenever this view or any descendant views are hovered. + +`struct GroupHoverEffect` + +A `CustomHoverEffect` that activates a named group of effects. + +`protocol HoverEffectContent` + +A type that describes the effects of a view for a particular hover effect phase. + +`struct EmptyHoverEffectContent` + +An empty base effect that you use to build other effects. + +`struct HandPointerBehavior` + +A behavior that can be applied to the hand pointer while the user is interacting with a view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/handlesgamecontrollerevents(matching:) + +#app-main) + +- SwiftUI +- View +- handlesGameControllerEvents(matching:) + +Instance Method + +# handlesGameControllerEvents(matching:) + +Specifies the game controllers events which should be delivered through the GameController framework when the view, or one of its descendants has focus. + +GameControllerSwiftUI + +nonisolated + +## Discussion + +SpriteView(scene: MyGameScene()) +.handlesGameControllerEvents(matching: .gamepad) +.focused(true) + +--- + +# https://developer.apple.com/documentation/swiftui/view/handlesgamecontrollerevents(matching:withoptions:) + +#app-main) + +- SwiftUI +- View +- handlesGameControllerEvents(matching:withOptions:) Beta + +Instance Method + +# handlesGameControllerEvents(matching:withOptions:) + +Specifies the game controllers events which should be delivered through the GameController framework when the view or one of its descendants has focus. + +GameControllerSwiftUI + +nonisolated +func handlesGameControllerEvents( +matching types: GCUIEventTypes, +withOptions options: GameControllerEventHandlingOptions? + +## Discussion + +SpriteView(scene: MyGameScene()) +.handlesGameControllerEvents(matching: .gamepad, withOptions: .defaultOptions) +.focused(true) + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/healthdataaccessrequest(store:objecttype:predicate:trigger:completion:) + +#app-main) + +- SwiftUI +- View +- healthDataAccessRequest(store:objectType:predicate:trigger:completion:) + +Instance Method + +# healthDataAccessRequest(store:objectType:predicate:trigger:completion:) + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +@preconcurrency nonisolated +func healthDataAccessRequest( +store: HKHealthStore, +objectType: HKObjectType, +predicate: NSPredicate? = nil, +trigger: some Equatable, + +## Parameters + +`store` + +The HealthKit store where you’re requesting authorization. + +`objectType` + +The data type you want to read. This type must be a type that requires per-object authorization. + +`predicate` + +An optional predicate that further restricts the objects of interest. + +`trigger` + +A value used to trigger the request. This value must be a `State` variable. Any change to the variable triggers a request. + +`completion` + +A block that the system calls after the request is complete. The system passes the result parameter. + +## Discussion + +Some samples require per-object authorization. For these samples, people can select which ones your app can read on a sample-by-sample basis. By default, your app can read any of the per-object authorization samples that it has saved to the HealthKit store; however, you may not always have access to those samples. People can update the authorization status for any of these samples at any time. + +Your app can begin by setting up the request in SwiftUI. + +@State private var trigger = false +let store = HKHealthStore() + +var body: some Scene { +WindowGroup { +ContentView(enabled: $authenticated) +.healthDataAccessRequest(store: store, +objectType: .visionPrescriptionType(), +predicate: nil, +trigger: trigger) { result in + +switch result { +case .success(_): +authenticated = true +case .failure(let error): +// Handle the error here. +fatalError("*** An error occurred while requesting authentication: \(error) ***") +} + +logger.debug("Authentication Complete.") +} +} +} + +Next, query for any samples that it already has permission to read. + +// Read the newest prescription from the HealthKit store. +let queryDescriptor = HKSampleQueryDescriptor(predicates: [.visionPrescription()], +sortDescriptors: [SortDescriptor(\.startDate, order: .reverse)], +limit: 1) + +let prescription: HKVisionPrescription + +do { +guard let result = try await queryDescriptor.result(for: store).first else { +print("*** No prescription found. ***") +return +} + +prescription = result +} catch { +// Handle the error here. +fatalError("*** An error occurred while reading the most recent vision prescriptions: \(error.localizedDescription) ***") +} + +Based on the results, you can then decide whether you need to request authorization for additional samples. Modify the trigger’s value to prompt someone to modify the samples your app has access to read. + +// Request authorization for additional samples. +trigger.toggle() + +When your app calls this method, HealthKit displays an authorization sheet that asks for permission to read the samples that match the predicate and object type. The person using your app can then select individual samples to share with your app. The system always asks for permission, regardless of whether the user previously granted it. + +People can individually enable each of the prescriptions. After they respond, the system calls the callback handler on an arbitrary background queue. + +## See Also + +### Accessing health data + +Requests permission to read the specified HealthKit data types. + +Requests permission to save and read the specified HealthKit data types. + +Presents a preview of the workout contents as a modal sheet + +--- + +# https://developer.apple.com/documentation/swiftui/view/healthdataaccessrequest(store:readtypes:trigger:completion:) + +#app-main) + +- SwiftUI +- View +- healthDataAccessRequest(store:readTypes:trigger:completion:) + +Instance Method + +# healthDataAccessRequest(store:readTypes:trigger:completion:) + +Requests permission to read the specified HealthKit data types. + +@preconcurrency nonisolated +func healthDataAccessRequest( +store: HKHealthStore, + +trigger: some Equatable, + +## Parameters + +`store` + +The HealthKit store where you’re requesting authorization. + +`readTypes` + +An optional set containing the data types you want to read. This set can contain any concrete subclass of the `HKObjectType` class (any of the `HKCharacteristicType`, `HKQuantityType`, `HKCategoryType`, `HKWorkoutType`, or `HKCorrelationType` classes ). If the user grants permission, your app can read these data types from the HealthKit store. + +`trigger` + +A value used to trigger the request. This value must be a `State` variable. Any change to the variable triggers a request. + +`completion` + +A block that the system calls after the request is complete. The system passes the result parameter. + +## Discussion + +HealthKit performs this request asynchronously when you modify the trigger’s value. If you call this method with a new data type (a type of data that the user hasn’t previously granted or denied permission for in this app), the system automatically displays the authorization sheet when you modify the trigger’s value. The authorization sheet lists all the requested permissions. After the user finishes responding, HealthKit calls the completion block on a background queue. If the user has already chosen to grant or prohibit access to all of the types specified, HealthKit calls the completion when you modify the trigger without prompting the user. + +@State private var trigger = false + +var body: some Scene { +WindowGroup { +ContentView(enabled: $authenticated) +.healthDataAccessRequest(store: store, +readTypes: healthDataTypes, +trigger: trigger) { result in +switch result { + +case .success(_): +authenticated = true +case .failure(let error): +// Handle the error here. +fatalError("*** An error occurred while requesting authentication: \(error) ***") +} + +logger.debug("Authentication Complete.") +} +.onAppear() { +trigger.toggle() +} +} +} + +import SwiftUI +import HealthKit +import HealthKitUI +import os + +let healthDataTypes: Set = [\ +HKQuantityType.workoutType(),\ +HKQuantityType(.heartRate),\ +HKQuantityType(.activeEnergyBurned),\ +HKQuantityType(.basalEnergyBurned),\ +HKQuantityType(.distanceWalkingRunning),\ +HKQuantityType(.stepCount)\ +] + +private let logger = Logger(subsystem: "example.com.MyWorkoutApp", +category: "iOS App") + +@main +struct MyApp: App { + +@State private var authenticated = false +@State private var trigger = false + +let store = HKHealthStore() + +logger.debug("Authentication Complete.") +} +.onAppear() { +trigger.toggle() +} +} +} +} + +Customize the messages displayed on the permissions sheet by setting the following key: + +- `NSHealthShareUsageDescription` customizes the message for reading data. + +Set the key in the Target Properties list on the app’s Info tab. + +After users set the permissions for your app, they can always change them using either the Settings or the Health app. Your app appears in the Health app’s Sources tab, even if the user didn’t allow permission to read data. + +## See Also + +### Accessing health data + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +Requests permission to save and read the specified HealthKit data types. + +Presents a preview of the workout contents as a modal sheet + +--- + +# https://developer.apple.com/documentation/swiftui/view/healthdataaccessrequest(store:sharetypes:readtypes:trigger:completion:) + +#app-main) + +- SwiftUI +- View +- healthDataAccessRequest(store:shareTypes:readTypes:trigger:completion:) + +Instance Method + +# healthDataAccessRequest(store:shareTypes:readTypes:trigger:completion:) + +Requests permission to save and read the specified HealthKit data types. + +@preconcurrency nonisolated +func healthDataAccessRequest( +store: HKHealthStore, + +trigger: some Equatable, + +## Parameters + +`store` + +The HealthKit store where you’re requesting authorization. + +`shareTypes` + +A set containing the data types you want to share. This set can contain any concrete subclass of the `HKSampleType` class (any of the `HKQuantityType`, `HKCategoryType`, `HKWorkoutType`, or `HKCorrelationType` classes). If the user grants permission, your app can create and save these data types to the HealthKit store. + +`readTypes` + +An optional set containing the data types you want to read. This set can contain any concrete subclass of the `HKObjectType` class (any of the `HKCharacteristicType`, `HKQuantityType`, `HKCategoryType`, `HKWorkoutType`, or `HKCorrelationType` classes ). If the user grants permission, your app can read these data types from the HealthKit store. + +`trigger` + +A value used to trigger the request. This value must be a `State` variable. Any change to the variable triggers a request. + +`completion` + +A block that the system calls after the request is complete. The system passes the result parameter. + +## Discussion + +HealthKit performs these requests asynchronously when you modify the trigger’s value. If you call this method with a new data type (a type of data that the user hasn’t previously granted or denied permission for in this app), the system automatically displays the authorization sheet when you modify the trigger’s value. The authorization sheet lists all the requested permissions. After the user finishes responding, HealthKit calls the completion block on a background queue. If the user has already chosen to grant or prohibit access to all of the types specified, HealthKit calls the completion when you modify the trigger without prompting the user. + +Each data type has two separate permissions, one to read it and one to share it. You can make a single request, and include all the data types your app needs. + +@State private var trigger = false + +var body: some Scene { +WindowGroup { +ContentView(enabled: $authenticated) +.healthDataAccessRequest(store: store, +shareTypes: healthDataTypes, +readTypes: healthDataTypes, +trigger: trigger) { result in +switch result { + +case .success(_): +authenticated = true +case .failure(let error): +// Handle the error here. +fatalError("*** An error occurred while requesting authentication: \(error) ***") +} + +logger.debug("Authentication Complete.") +} +.onAppear() { +trigger.toggle() +} +} +} + +import SwiftUI +import HealthKit +import HealthKitUI +import os + +let healthDataTypes: Set = [\ +HKQuantityType.workoutType(),\ +HKQuantityType(.heartRate),\ +HKQuantityType(.activeEnergyBurned),\ +HKQuantityType(.basalEnergyBurned),\ +HKQuantityType(.distanceWalkingRunning),\ +HKQuantityType(.stepCount)\ +] + +private let logger = Logger(subsystem: "example.com.MyWorkoutApp", +category: "iOS App") + +@main +struct MyApp: App { + +@State private var authenticated = false +@State private var trigger = false + +let store = HKHealthStore() + +logger.debug("Authentication Complete.") +} +.onAppear() { +trigger.toggle() +} +} +} +} + +Customize the messages displayed on the permissions sheet by setting the following keys: + +- `NSHealthShareUsageDescription` customizes the message for reading data. + +- `NSHealthUpdateUsageDescription` customizes the message for writing data. + +Set these keys in the Target Properties list on the app’s Info tab. + +After users set the permissions for your app, they can always change them using either the Settings or the Health app. Your app appears in the Health app’s Sources tab, even if the user didn’t allow permission to read or share data. + +## See Also + +### Accessing health data + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +Requests permission to read the specified HealthKit data types. + +Presents a preview of the workout contents as a modal sheet + +--- + +# https://developer.apple.com/documentation/swiftui/view/imageplaygroundpersonalizationpolicy(_:) + +#app-main) + +- SwiftUI +- View +- imagePlaygroundPersonalizationPolicy(\_:) + +Instance Method + +# imagePlaygroundPersonalizationPolicy(\_:) + +Policy determining whether to support the usage of people in the playground or not. + +nonisolated + +## Parameters + +`policy` + +Policy determining whether personalization is enabled or not. + +## Return Value + +An image playground sheet that does or does not support personalization, based on the `enabled` flag. + +## Discussion + +Enabling people support will allow the user to condition image generation using: + +- A person from their system Photos library + +- A character represented by an appearance and a skin tone + +Personalization options are available through several user interfaces, including: + +- A people picker + +- Detection of people names in the prompt text field + +- Importing images containing people faces from the system photo library + +Enabled by default when the modifier is not set or when the policy is set to `automatic`. + +--- + +# https://developer.apple.com/documentation/swiftui/view/imageplaygroundsheet(ispresented:concept:sourceimage:oncompletion:oncancellation:) + +#app-main) + +- SwiftUI +- View +- imagePlaygroundSheet(isPresented:concept:sourceImage:onCompletion:onCancellation:) + +Instance Method + +# imagePlaygroundSheet(isPresented:concept:sourceImage:onCompletion:onCancellation:) + +Presents the system sheet to create images from the specified input. + +@MainActor @preconcurrency +func imagePlaygroundSheet( + +concept: String, +sourceImage: Image? = nil, + +## Parameters + +`isPresented` + +A binding to a Boolean value that determines whether to display the sheet. + +`concept` + +An initial natural language string that describes the expected contents of the image. The person viewing the creation UI can edit the concepts from inside that UI. `concept: str` is equivalent to `concepts: [.text(str)]`. + +`sourceImage` + +Specify an existing image to use as source input for creating the new image. The person viewing the sheet can override the image you provide, and choose different images and concepts inside the creation UI. If you don’t provide a starting image, the system creates the new image using only the contents of the `concepts` parameter. + +`onCompletion` + +The block to receive the created image. The block has no return value and receives the following parameter: + +url + +A URL with the path to the image. The system saves the file at a temporary location inside your app container. Move the file to a new location if you intend to keep it after the dismissal of the sheet, or remove it if you don’t. + +`onCancellation` + +The block to handle the cancellation of the image-creation process, when the user chooses to exit the creation UI without choosing any image. After executing this block, the system automatically dismisses the sheet. + +## Discussion + +Add this modifier to a view to display the system’s image-creation sheet. When the variable in the `isPresented` parameter is `true`, the view presents the sheet. Present the sheet in situations where someone might want to generate a new image for their content. When configuring the sheet, specify an optional starting image and text description to use to create the initial image. + +While visible, the sheet allows people to experiment with the contents of an image before returning it to your app. The person viewing the sheet can accept the image they created or cancel the operation. When they make their choice, the system executes the appropriate block. + +You can use this modifier only if the device supports creating new images. Check the `ImagePlayground/SwiftUICore/EnvironmentValues/supportsImagePlayground` environment variable to determine the availability of the feature. The following code creates a button to display the sheet only when the feature is available: + +@State private var showSheet = false +@State private var createdImageURL: URL? = nil +@Environment(\.supportsImagePlayground) private var supportsImagePlayground +// .... + +if supportsImagePlayground { +Button("Show Generation Sheet") { +showSheet = true +}.imagePlaygroundSheet( +isPresented: $showSheet, +concept: "Dog on a surfboard", +sourceImage: sourceImage) { url in +createdImageURL = url +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/view/imageplaygroundsheet(ispresented:concept:sourceimageurl:oncompletion:oncancellation:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/inapppurchaseoptions(_:) + +#app-main) + +- SwiftUI +- View +- inAppPurchaseOptions(\_:) + +Instance Method + +# inAppPurchaseOptions(\_:) + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +StoreKitSwiftUI + +nonisolated + +## Parameters + +`options` + +The system calls this function before processing a purchase, with the product to be purchased is provided as a parameter. Return a set of purchase options to add to the purchase. + +## Discussion + +In-app stores within this view will add any default purchase options to the set you return, and use the result for configuring the purchase. If you just want to react to in-app purchases beginning without adding purchase options, you can add an action with `onInAppPurchaseStart(perform:)`. + +You can remove any options ancestor views may have added by providing `nil` for the action. This will result in using the default set of purchase options. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/journalingsuggestionspicker(ispresented:journalingsuggestiontoken:oncompletion:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/journalingsuggestionspicker(ispresented:oncompletion:) + +#app-main) + +- SwiftUI +- View +- journalingSuggestionsPicker(isPresented:onCompletion:) + +Instance Method + +# journalingSuggestionsPicker(isPresented:onCompletion:) + +Presents a visual picker interface that contains events and images that a person can select to retrieve more information. + +@MainActor @preconcurrency +func journalingSuggestionsPicker( + +## Parameters + +`isPresented` + +A binding to a `Bool` value that determines whether to show the picker. + +`onCompletion` + +Code that you supply, which processes any suggestions that a person may choose in the picker. + +## Discussion + +For more information about the Journaling Suggestions picker, see: doc:presenting-the-suggestions-picker-and-processing-a-selection. + +--- + +# https://developer.apple.com/documentation/swiftui/view/labelicontotitlespacing(_:) + +#app-main) + +- SwiftUI +- View +- labelIconToTitleSpacing(\_:) Beta + +Instance Method + +# labelIconToTitleSpacing(\_:) + +Set the spacing between the icon and title in labels. + +nonisolated + +## Discussion + +Use this modifier to set the value that should be used for the icon-to-title spacing in labels. This applies to label styles and in contexts where the label displays its icon and title stacked horizontally. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/labelreservediconwidth(_:) + +#app-main) + +- SwiftUI +- View +- labelReservedIconWidth(\_:) Beta + +Instance Method + +# labelReservedIconWidth(\_:) + +Set the width reserved for icons in labels. + +nonisolated + +## Discussion + +Use this modifier to set the value that should be used for the reserved icon width in labels. This applies to label styles and in contexts where the label displays its icon and title stacked horizontally. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/labeledcontentstyle(_:) + +#app-main) + +- SwiftUI +- View +- labeledContentStyle(\_:) + +Instance Method + +# labeledContentStyle(\_:) + +Sets a style for labeled content. + +nonisolated + +## See Also + +### Grouping inputs + +`struct Form` + +A container for grouping controls used for data entry, such as in settings or inspectors. + +Sets the style for forms in a view hierarchy. + +`struct LabeledContent` + +A container for attaching a label to a value-bearing view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/labelsvisibility(_:) + +#app-main) + +- SwiftUI +- View +- labelsVisibility(\_:) + +Instance Method + +# labelsVisibility(\_:) + +Controls the visibility of labels of any controls contained within this view. + +nonisolated + +## Discussion + +Use this modifier when you want to omit a label from one or more labeled content in your user interface. For example, the first `Toggle` in the following example hides its label: + +VStack { +Toggle(isOn: $toggle1) { +Text("Toggle 1") +} +.labelsVisibility(.hidden) + +Toggle(isOn: $toggle2) { +Text("Toggle 2") +} +} + +The `VStack` in the example above centers the first toggle’s control element in the available space, while it centers the second toggle’s combined label and control element: + +Always provide a label for controls, even when you hide the label, because SwiftUI uses labels for other purposes, including accessibility. + +On iOS, a `Picker` within a `Menu` hides its label by default. You can use this modifier to explicitly show the label in that context: + +Menu { +Picker("Flavor", selection: $selectedFlavor) { +Text("Chocolate").tag(Flavor.chocolate) +Text("Vanilla").tag(Flavor.vanilla) +Text("Strawberry").tag(Flavor.strawberry) +} +.labelsVisibility(.visible) +} + +## See Also + +### Hiding system elements + +Hides the labels of any controls contained within this view. + +`var labelsVisibility: Visibility` + +The labels visibility set by `labelsVisibility(_:)`. + +Sets the menu indicator visibility for controls within this view. + +Sets the visibility of the status bar. + +Sets the preferred visibility of the non-transient system views overlaying the app. + +`enum Visibility` + +The visibility of a UI element, chosen automatically based on the platform, current context, and other factors. + +--- + +# https://developer.apple.com/documentation/swiftui/view/lineheight(_:) + +#app-main) + +- SwiftUI +- View +- lineHeight(\_:) Beta + +Instance Method + +# lineHeight(\_:) + +A modifier for the default line height in the view hierarchy. + +nonisolated + +## Discussion + +The default value is `nil`. In that case, SwiftUI automatically chooses an appropriate line height setting for each context. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/listrowinsets(_:_:) + +#app-main) + +- SwiftUI +- View +- listRowInsets(\_:\_:) Beta + +Instance Method + +# listRowInsets(\_:\_:) + +Sets the insets of rows in a list on the specified edges. + +nonisolated +func listRowInsets( +_ edges: Edge.Set = .all, +_ length: CGFloat? + +## Parameters + +`edges` + +The edges to set the insets to. + +`length` + +An amount, given in points, to set the insets to on the specified edges. + +## Return Value + +A view in which the margins of list sections are set to the specified amount + +## Discussion + +Use this modifier to change the default insets of list rows on the specified edges. + +In the example below, the `Flavor` enumeration provides content for list items. The SwiftUI `ForEach` structure computes views for each element of the `Flavor` enumeration and extracts the raw value of each of its elements using the resulting text to create each list row item. The `listRowInsets(_:_:)` modifier then changes the leading inset of each row of the list and leaves the default insets on the other edges untouched: + +struct ContentView: View { +enum Flavor: String, CaseIterable, Identifiable { +var id: String { self.rawValue } +case vanilla, chocolate, strawberry +} + +var body: some View { +List { +ForEach(Flavor.allCases) { +Text($0.rawValue) +.listRowInsets(.leading, 25) +} +} +} +} + +When applying multiple `listRowInsets` modifiers, modifiers with the same edges will override modifiers higher up in the view hierarchy. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/listsectionindexvisibility(_:) + +#app-main) + +- SwiftUI +- View +- listSectionIndexVisibility(\_:) Beta + +Instance Method + +# listSectionIndexVisibility(\_:) + +Changes the visibility of the list section index. + +nonisolated + +## Parameters + +`visibility` + +The visibility of the list section index. + +## Discussion + +The section index shows the section index labels of sections, which are set using the `sectionIndexLabel` modifier. These are typically the letters of the alphabet, used for sorted sections. + +List(sections) { section in +Section(section.title) { +ForEach(section.rows) { row in +// ... +} +} +.sectionIndexLabel(section.indexTitle) +} +.listSectionIndexVisibility(.visible) + +On iOS, the section index is displayed as a number of vertically stacked letters on the trailing side of the list. Users can jump to a specific section in the list by tapping on the corresponding index label. + +On watchOS, the index of the section currently visible is displayed next to the scroll indicator when the user is scrolling through the list using the crown. + +By default, the list section index is visible if the list contains any sections with an index label. + +The index only shows labels for sections with a `sectionIndexLabel` modifier. This can be used to hide certain sections from the index. + +By hiding section headers of empty sections with an index label, a list section index can be made to show index labels without a corresponding section. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/listsectionmargins(_:_:) + +#app-main) + +- SwiftUI +- View +- listSectionMargins(\_:\_:) Beta + +Instance Method + +# listSectionMargins(\_:\_:) + +Set the section margins for the specific edges. + +nonisolated +func listSectionMargins( +_ edges: Edge.Set = .all, +_ length: CGFloat? + +## Parameters + +`edges` + +The set of edges to pad for sections in this view. The default is `all`. + +`length` + +An amount, given in points, to pad section on the specified edges. + +## Return Value + +A view in which the margins of list sections are set to the specified amount on the specified edges. + +## Discussion + +Use this modifier on a list section to set customize its margins. Indicate the edges to set the margin of by naming either a single value from `Edge.Set`, or by specifying an `OptionSet` that contains edge values. Margins for the other edges remain unchanged. + +The default section margins are based on the list style, list section spacing and content margins of the list. Using this modifier overrides these default values completely. + +For sections that have headers or footers, the section margins are applied around these. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/lookaroundviewer(ispresented:initialscene:allowsnavigation:showsroadlabels:pointsofinterest:ondismiss:) + +#app-main) + +- SwiftUI +- View +- lookAroundViewer(isPresented:initialScene:allowsNavigation:showsRoadLabels:pointsOfInterest:onDismiss:) + +Instance Method + +# lookAroundViewer(isPresented:initialScene:allowsNavigation:showsRoadLabels:pointsOfInterest:onDismiss:) + +MapKitSwiftUI + +@MainActor @preconcurrency +func lookAroundViewer( + +initialScene: MKLookAroundScene?, +allowsNavigation: Bool = true, +showsRoadLabels: Bool = true, +pointsOfInterest: PointOfInterestCategories = .all, + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/lookaroundviewer(ispresented:scene:allowsnavigation:showsroadlabels:pointsofinterest:ondismiss:) + +#app-main) + +- SwiftUI +- View +- lookAroundViewer(isPresented:scene:allowsNavigation:showsRoadLabels:pointsOfInterest:onDismiss:) + +Instance Method + +# lookAroundViewer(isPresented:scene:allowsNavigation:showsRoadLabels:pointsOfInterest:onDismiss:) + +MapKitSwiftUI + +@MainActor @preconcurrency +func lookAroundViewer( + +allowsNavigation: Bool = true, +showsRoadLabels: Bool = true, +pointsOfInterest: PointOfInterestCategories = .all, + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/managesubscriptionssheet(ispresented:subscriptiongroupid:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/managedcontentstyle(_:) + +#app-main) + +- SwiftUI +- View +- managedContentStyle(\_:) + +Instance Method + +# managedContentStyle(\_:) + +Applies a managed content style to the view. + +ManagedAppDistributionSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`style` + +The style to apply to the view. + +## Return Value + +The styled view. + +## See Also + +### Working with managed devices + +Presents a modal view that enables users to add devices to their organization. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/manipulable(coordinatespace:operations:inertia:isenabled:onchanged:) + +#app-main) + +- SwiftUI +- View +- manipulable(coordinateSpace:operations:inertia:isEnabled:onChanged:) Beta + +Instance Method + +# manipulable(coordinateSpace:operations:inertia:isEnabled:onChanged:) + +Allows this view to be manipulated using common hand gestures. + +nonisolated +func manipulable( +coordinateSpace: some CoordinateSpaceProtocol = .local, +operations: Manipulable.Operation.Set = .all, +inertia: Manipulable.Inertia = .medium, +isEnabled: Bool = true, + +## Parameters + +`coordinateSpace` + +The coordinate space of the manipulation gesture event locations. + +`operations` + +The set of allowed operations that can be applied when a person manipulates this view. + +`inertia` + +The inertia of this view that defines how much it resists being manipulated. + +`isEnabled` + +The Boolean value that indicates whether the manipulation gesture added by this view modifier is enabled or not. + +`onChanged` + +The action to perform with each new manipulation gesture event. + +## Return Value + +A view that can be manipulated using common hand gestures. + +## Discussion + +When a person ends the manipulation gesture, the view will + +--- + +# https://developer.apple.com/documentation/swiftui/view/manipulable(transform:coordinatespace:operations:inertia:isenabled:onchanged:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/manipulable(using:) + +#app-main) + +- SwiftUI +- View +- manipulable(using:) Beta + +Instance Method + +# manipulable(using:) + +Allows the view to be manipulated using a manipulation gesture attached to a different view. + +nonisolated + +## Parameters + +`gestureState` + +The manipulation gesture state that’s updated by a manipulation gesture added to a different view. + +## Return Value + +A view that can be manipulated by a manipulation gesture attached to a different view. + +## Discussion + +Use this view modifier alongside `manipulationGesture(updating:coordinateSpace:operations:inertia:isEnabled:onChanged:)` when you want to allow a person to manipulate a view by interacting with a different view. + +In the following example, a person can begin a manipulation gesture attached to a deck of cards which, in turn, manipulates a single card instead of the entire deck: + +struct CardDeck: View { +@State private var manipulationState = Manipulable.GestureState() + +var body: some View { +ZStack { +Model3D(named: "CardDeck") +.manipulationGesture(updating: $manipulationState) +Model3D(named: "Card") +.manipulable(using: manipulationState) +.opacity(manipulationState.isActive ? 1 : 0) +} +} +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/manipulationgesture(updating:coordinatespace:operations:inertia:isenabled:onchanged:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapcamerakeyframeanimator(trigger:keyframes:) + +#app-main) + +- SwiftUI +- View +- mapCameraKeyframeAnimator(trigger:keyframes:) + +Instance Method + +# mapCameraKeyframeAnimator(trigger:keyframes:) + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapCameraKeyframeAnimator( +trigger: some Equatable, + +## Parameters + +`trigger` + +A value to observe for changes. + +`keyframes` + +A keyframes builder closure that is called when starting a new keyframe animation. The current map camera is provided as the only parameter. + +## Discussion + +When the trigger value changes, the map calls the `keyframes` closure to generate the keyframes that will animate the camera. The animation will continue for the duration of the keyframes that you specify. + +If the user performs a gesture while the animation is in progress, the animation will be immediately removed, allowing the interaction to take control of the camera. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapcontrolvisibility(_:) + +#app-main) + +- SwiftUI +- View +- mapControlVisibility(\_:) + +Instance Method + +# mapControlVisibility(\_:) + +Configures all Map controls in the environment to have the specified visibility + +MapKitSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`visibility` + +How modified map controls should show or hide + +## Discussion + +MapCompass, MapScaleView, and MapPitchToggle may automatically show and hide based on the current state of the Map. That may not be appropriate for all use cases, where always showing a control may be desirable. + +HStack { +MapCompass() +MapScaleView() +MapPitchToggle() +} +.mapControls(.visible) + +Other controls don’t have an automatic visibility behavior, so they will always be visible when automatic is specified. Controls may also be hidden via this modifier when conditionalizing the view is not appropriate + +MapUserLocationButton() +.mapControls(.automatic) +MapZoomStepper() +.mapControls(.hidden) + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapcontrols(_:) + +#app-main) + +- SwiftUI +- View +- mapControls(\_:) + +Instance Method + +# mapControls(\_:) + +Configures all `Map` views in the associated environment to have standard size and position controls + +MapKitSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`content` + +A view builder returning the controls you wish your `Map` + +## Discussion + +You provide the controls you want to appear atop your map. When using a control in conjunction with `.mapControls` you don’t need to specify a scope. Views that are not MapKit controls will be ignored. + +Map() +.mapControls { +MapScaleView() +MapUserLocationButton() +} + +Controls can be modified individually or all at once. Custom frames and alignments set on controls are ignored. + +Map() +.mapControls { +MapCompass() +.mapControls(.visible) +MapPitchToggle() +.buttonBorderShape(.circular) +.tint(.purple) +} +.controlSize(.large) + +On watchOS, space is at a premium. When using the mapControls modifier, MapUserLocationButton and MapCompass are automatically combined if present. + +Map() +.mapControls { +MapUserLocationButton() +MapCompass() +} + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapfeatureselectionaccessory(_:) + +#app-main) + +- SwiftUI +- View +- mapFeatureSelectionAccessory(\_:) + +Instance Method + +# mapFeatureSelectionAccessory(\_:) + +Specifies the selection accessory to display for a `MapFeature` + +MapKitSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`style` + +The map item detail selection accessory style. If `nil`, no selection accessory will be displayed. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapfeatureselectioncontent(content:) + +#app-main) + +- SwiftUI +- View +- mapFeatureSelectionContent(content:) + +Instance Method + +# mapFeatureSelectionContent(content:) + +Specifies a custom presentation for the currently selected feature. + +MapKitSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`content` + +Generates the custom presentation for a given map feature. + +## Discussion + +The supported presentation options are `Annotation`, and `Marker`. Other types of map content will be ignored and handled as though no content was returned. + +If empty map content is returned, the system presentation will be used. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapfeatureselectiondisabled(_:) + +#app-main) + +- SwiftUI +- View +- mapFeatureSelectionDisabled(\_:) + +Instance Method + +# mapFeatureSelectionDisabled(\_:) + +Specifies which map features should have selection disabled. + +MapKitSwiftUI + +@MainActor @preconcurrency + +## Parameters + +`selectionDisabled` + +Determines if selection should be disabled for a given map feature. + +## Discussion + +The `selectionDisabled` parameter takes a closure which maps map features, to booleans. If that closure returns true for a given map feature, that map feature will be considered unselectable. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailpopover(ispresented:item:displaysmap:attachmentanchor:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailpopover(ispresented:item:displaysmap:attachmentanchor:arrowedge:) + +#app-main) + +- SwiftUI +- View +- mapItemDetailPopover(isPresented:item:displaysMap:attachmentAnchor:arrowEdge:) + +Instance Method + +# mapItemDetailPopover(isPresented:item:displaysMap:attachmentAnchor:arrowEdge:) + +Presents a map item detail popover. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapItemDetailPopover( + +item: MKMapItem?, +displaysMap: Bool = true, +attachmentAnchor: PopoverAttachmentAnchor = .rect(.bounds), +arrowEdge: Edge + +## Parameters + +`isPresented` + +The binding to whether the detail sheet should be shown. + +`item` + +The map item to display. If nil, a “loading” view is displayed. + +`displaysMap` + +If an inline map should be displayed with the place data. A value of `true` must be specified if the application UI is not already showing the place in a map view. + +`attachmentAnchor` + +The positioning anchor that defines the attachment point of the popover. The default is `bounds`. + +`arrowEdge` + +The edge of the `attachmentAnchor` that defines the location of the popover’s arrow. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailpopover(item:displaysmap:attachmentanchor:) + +#app-main) + +- SwiftUI +- View +- mapItemDetailPopover(item:displaysMap:attachmentAnchor:) + +Instance Method + +# mapItemDetailPopover(item:displaysMap:attachmentAnchor:) + +Presents a map item detail popover. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapItemDetailPopover( + +displaysMap: Bool = true, +attachmentAnchor: PopoverAttachmentAnchor = .rect(.bounds) + +## Parameters + +`item` + +When `item` is non- `nil`, a detail popover is displayed for the map item. + +`displaysMap` + +If an inline map should be displayed with the place data. A value of `true` must be specified if the application UI is not already showing the place in a map view. + +`attachmentAnchor` + +The positioning anchor that defines the attachment point of the popover. The default is `bounds`. + +## Discussion + +Use this modifier if you want the system to choose the best orientation of the popover’s arrow. If you want to specify a particular edge for the arrow, use `mapItemDetailPopover(item:displaysMap:attachmentAnchor:arrowEdge:)`. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailpopover(item:displaysmap:attachmentanchor:arrowedge:) + +#app-main) + +- SwiftUI +- View +- mapItemDetailPopover(item:displaysMap:attachmentAnchor:arrowEdge:) + +Instance Method + +# mapItemDetailPopover(item:displaysMap:attachmentAnchor:arrowEdge:) + +Presents a map item detail popover. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapItemDetailPopover( + +displaysMap: Bool = true, +attachmentAnchor: PopoverAttachmentAnchor = .rect(.bounds), +arrowEdge: Edge + +## Parameters + +`item` + +When `item` is non- `nil`, a detail popover is displayed for the map item. + +`displaysMap` + +If an inline map should be displayed with the place data. A value of `true` must be specified if the application UI is not already showing the place in a map view. + +`attachmentAnchor` + +The positioning anchor that defines the attachment point of the popover. The default is `bounds`. + +`arrowEdge` + +The edge of the `attachmentAnchor` that defines the location of the popover’s arrow. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailsheet(ispresented:item:displaysmap:) + +#app-main) + +- SwiftUI +- View +- mapItemDetailSheet(isPresented:item:displaysMap:) + +Instance Method + +# mapItemDetailSheet(isPresented:item:displaysMap:) + +Presents a map item detail sheet. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapItemDetailSheet( + +item: MKMapItem?, +displaysMap: Bool = true + +## Parameters + +`isPresented` + +The binding to whether the detail sheet should be shown. + +`item` + +The map item to display. If nil, a “loading” view is displayed. + +`displaysMap` + +If an inline map should be displayed with the place data. A value of `true` must be specified if the application UI is not already showing the place in a map view. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapitemdetailsheet(item:displaysmap:) + +#app-main) + +- SwiftUI +- View +- mapItemDetailSheet(item:displaysMap:) + +Instance Method + +# mapItemDetailSheet(item:displaysMap:) + +Presents a map item detail sheet. + +MapKitSwiftUI + +@MainActor @preconcurrency +func mapItemDetailSheet( + +displaysMap: Bool = true + +## Parameters + +`item` + +When `item` is non- `nil`, a detail sheet is displayed for the map item. + +`displaysMap` + +If an inline map should be displayed with the place data. A value of `true` must be specified if the application UI is not already showing the place in a map view. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapscope(_:) + +#app-main) + +- SwiftUI +- View +- mapScope(\_:) + +Instance Method + +# mapScope(\_:) + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +MapKitSwiftUI + +@MainActor @preconcurrency + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/mapstyle(_:) + +#app-main) + +- SwiftUI +- View +- mapStyle(\_:) + +Instance Method + +# mapStyle(\_:) + +Specifies the map style to be used. + +MapKitSwiftUI + +@MainActor @preconcurrency + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +`func onMapCameraChange(frequency:_:)` + +Performs an action when Map camera framing changes + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/matchedtransitionsource(id:in:) + +#app-main) + +- SwiftUI +- View +- matchedTransitionSource(id:in:) + +Instance Method + +# matchedTransitionSource(id:in:) + +Identifies this view as the source of a navigation transition, such as a zoom transition. + +nonisolated +func matchedTransitionSource( +id: some Hashable, +in namespace: Namespace.ID + +## Parameters + +`id` + +The identifier, often derived from the identifier of the data being displayed by the view. + +`namespace` + +The namespace in which defines the `id`. New namespaces are created by adding an `Namespace` variable to a `View` type and reading its value in the view’s body method. + +## See Also + +### Defining transitions + +`func transition(_:)` + +Associates a transition with the view. + +`protocol Transition` + +A description of view changes to apply when a view is added to and removed from the view hierarchy. + +`struct TransitionProperties` + +The properties a `Transition` can have. + +`enum TransitionPhase` + +An indication of which the current stage of a transition. + +`struct AsymmetricTransition` + +A composite `Transition` that uses a different transition for insertion versus removal. + +`struct AnyTransition` + +A type-erased transition. + +Modifies the view to use a given transition as its method of animating changes to the contents of its views. + +`var contentTransition: ContentTransition` + +The current method of animating the contents of views. + +`var contentTransitionAddsDrawingGroup: Bool` + +A Boolean value that controls whether views that render content transitions use GPU-accelerated rendering. + +`struct ContentTransition` + +A kind of transition that applies to the content within a single view, rather than to the insertion or removal of a view. + +`struct PlaceholderContentView` + +A placeholder used to construct an inline modifier, transition, or other helper type. + +Sets the navigation transition style for this view. + +`protocol NavigationTransition` + +A type that defines the transition to use when navigating to a view. + +`protocol MatchedTransitionSourceConfiguration` + +A configuration that defines the appearance of a matched transition source. + +--- + +# https://developer.apple.com/documentation/swiftui/view/matchedtransitionsource(id:in:configuration:) + +#app-main) + +- SwiftUI +- View +- matchedTransitionSource(id:in:configuration:) + +Instance Method + +# matchedTransitionSource(id:in:configuration:) + +Identifies this view as the source of a navigation transition, such as a zoom transition. + +nonisolated +func matchedTransitionSource( +id: some Hashable, +in namespace: Namespace.ID, + +## Parameters + +`id` + +The identifier, often derived from the identifier of the data being displayed by the view. + +`namespace` + +The namespace in which defines the `id`. New namespaces are created by adding an `Namespace` variable to a `View` type and reading its value in the view’s body method. + +`configuration` + +A closure that you can use to apply styling to the source. + +## Discussion + +The appearance of the source can be configured using the `configuration` trailing closure. Any modifiers applied will be smoothly interpolated when a zoom transition originates from this matched transition source. + +MyView() +.matchedTransitionSource(id: someID, in: someNamespace) { source in +source +.cornerRadius(8.0) +} + +## See Also + +### Defining transitions + +`func transition(_:)` + +Associates a transition with the view. + +`protocol Transition` + +A description of view changes to apply when a view is added to and removed from the view hierarchy. + +`struct TransitionProperties` + +The properties a `Transition` can have. + +`enum TransitionPhase` + +An indication of which the current stage of a transition. + +`struct AsymmetricTransition` + +A composite `Transition` that uses a different transition for insertion versus removal. + +`struct AnyTransition` + +A type-erased transition. + +Modifies the view to use a given transition as its method of animating changes to the contents of its views. + +`var contentTransition: ContentTransition` + +The current method of animating the contents of views. + +`var contentTransitionAddsDrawingGroup: Bool` + +A Boolean value that controls whether views that render content transitions use GPU-accelerated rendering. + +`struct ContentTransition` + +A kind of transition that applies to the content within a single view, rather than to the insertion or removal of a view. + +`struct PlaceholderContentView` + +A placeholder used to construct an inline modifier, transition, or other helper type. + +Sets the navigation transition style for this view. + +`protocol NavigationTransition` + +A type that defines the transition to use when navigating to a view. + +`protocol MatchedTransitionSourceConfiguration` + +A configuration that defines the appearance of a matched transition source. + +--- + +# https://developer.apple.com/documentation/swiftui/view/materialactiveappearance(_:) + +#app-main) + +- SwiftUI +- View +- materialActiveAppearance(\_:) + +Instance Method + +# materialActiveAppearance(\_:) + +Sets an explicit active appearance for materials in this view. + +nonisolated + +## See Also + +### Transforming colors + +Brightens this view by the specified amount. + +Sets the contrast and separation between similar colors in this view. + +Inverts the colors in this view. + +Adds a color multiplication effect to this view. + +Adjusts the color saturation of this view. + +Adds a grayscale effect to this view. + +Applies a hue rotation effect to this view. + +Adds a luminance to alpha effect to this view. + +`var materialActiveAppearance: MaterialActiveAppearance` + +The behavior materials should use for their active state, defaulting to `automatic`. + +`struct MaterialActiveAppearance` + +The behavior for how materials appear active and inactive. + +--- + +# https://developer.apple.com/documentation/swiftui/view/multilinetextalignment(strategy:) + +#app-main) + +- SwiftUI +- View +- multilineTextAlignment(strategy:) Beta + +Instance Method + +# multilineTextAlignment(strategy:) + +A modifier for the default text alignment strategy in the view hierarchy. + +nonisolated + +## Discussion + +To control the alignment explicitly at a view level, choose the `layoutBased` mode and set the `multilineTextAlignment` to the appropriate value. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationlinkindicatorvisibility(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/navigationtransition(_:) + +#app-main) + +- SwiftUI +- View +- navigationTransition(\_:) + +Instance Method + +# navigationTransition(\_:) + +Sets the navigation transition style for this view. + +nonisolated + +## Discussion + +Add this modifier to a view that appears within a `NavigationStack` or a sheet, outside of any containers such as `VStack`. + +struct ContentView: View { +@Namespace private var namespace +var body: some View { +NavigationStack { +NavigationLink { +DetailView() +.navigationTransition(.zoom(sourceID: "world", in: namespace)) +} label: { +Image(systemName: "globe") +.matchedTransitionSource(id: "world", in: namespace) +} +} +} +} + +## See Also + +### Defining transitions + +`func transition(_:)` + +Associates a transition with the view. + +`protocol Transition` + +A description of view changes to apply when a view is added to and removed from the view hierarchy. + +`struct TransitionProperties` + +The properties a `Transition` can have. + +`enum TransitionPhase` + +An indication of which the current stage of a transition. + +`struct AsymmetricTransition` + +A composite `Transition` that uses a different transition for insertion versus removal. + +`struct AnyTransition` + +A type-erased transition. + +Modifies the view to use a given transition as its method of animating changes to the contents of its views. + +`var contentTransition: ContentTransition` + +The current method of animating the contents of views. + +`var contentTransitionAddsDrawingGroup: Bool` + +A Boolean value that controls whether views that render content transitions use GPU-accelerated rendering. + +`struct ContentTransition` + +A kind of transition that applies to the content within a single view, rather than to the insertion or removal of a view. + +`struct PlaceholderContentView` + +A placeholder used to construct an inline modifier, transition, or other helper type. + +`protocol NavigationTransition` + +A type that defines the transition to use when navigating to a view. + +Identifies this view as the source of a navigation transition, such as a zoom transition. + +`protocol MatchedTransitionSourceConfiguration` + +A configuration that defines the appearance of a matched transition source. + +--- + +# https://developer.apple.com/documentation/swiftui/view/onappintentexecution(_:perform:) + +#app-main) + +- SwiftUI +- View +- onAppIntentExecution(\_:perform:) + +Instance Method + +# onAppIntentExecution(\_:perform:) + +Registers a handler to invoke in response to the specified app intent that your app receives. + +AppIntentsSwiftUI + +nonisolated + +_ intent: I.Type = I.self, + +## Parameters + +`intent` + +The type of App Intent that the `action` closure handles. + +`action` + +A closure that SwiftUI calls when the specified app intent is being performed. The closure takes the app intent instance as an input parameter. + +## Return Value + +A view that handles the specified app intent’s perform + +## Discussion + +Use this view modifier to receive instances in a particular scene within your app. The scene that SwiftUI routes the incoming user activity to depends on the structure of your app, what scenes are active, and other configuration. For more information, see `handlesExternalEvents(matching:)`. + +If the app intent implements a perform() method, it will be called after the action closure. This can be useful if your app intent supports running in the background via the AppIntent.IntentModes API + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/onapplepaycouponcodechange(perform:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/onapplepaypaymentmethodchange(perform:) + +#app-main) + +- SwiftUI +- View +- onApplePayPaymentMethodChange(perform:) + +Instance Method + +# onApplePayPaymentMethodChange(perform:) + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +PassKitSwiftUI + +nonisolated + +## Return Value + +An update to the payment request method. + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/onapplepayshippingcontactchange(perform:) + +#app-main) + +- SwiftUI +- View +- onApplePayShippingContactChange(perform:) + +Instance Method + +# onApplePayShippingContactChange(perform:) + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +PassKitSwiftUI + +nonisolated + +## Return Value + +An update to the payment request shipping methods. + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/onapplepayshippingmethodchange(perform:) + +#app-main) + +- SwiftUI +- View +- onApplePayShippingMethodChange(perform:) + +Instance Method + +# onApplePayShippingMethodChange(perform:) + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +PassKitSwiftUI + +nonisolated + +## Return Value + +An update to the payment request shipping method. + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/oncameracaptureevent(isenabled:defaultsounddisabled:action:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/oncameracaptureevent(isenabled:defaultsounddisabled:primaryaction:secondaryaction:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/ondragsessionupdated(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/ondropsessionupdated(_:) + +#app-main) + +- SwiftUI +- View +- onDropSessionUpdated(\_:) Beta + +Instance Method + +# onDropSessionUpdated(\_:) + +Specifies an action to perform on each update of an ongoing drop operation activated by `dropDestination(_:)` or other drop modifiers. + +nonisolated + +## Discussion + +The `onUpdate` closure is called when the closest drop session in the child view hierarchy becomes active. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/ongeometrychange3d(for:of:action:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/oninapppurchasecompletion(perform:) + +#app-main) + +- SwiftUI +- View +- onInAppPurchaseCompletion(perform:) + +Instance Method + +# onInAppPurchaseCompletion(perform:) + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +StoreKitSwiftUI + +nonisolated + +## Parameters + +`action` + +The action to perform, with the product value and the purchase result provided as parameters. + +## Discussion + +By default, transactions from successful in-app store view purchases will be emitted from `Transaction.updates`. If the purchase fails with an error, an alert will be displayed. You can revert a view ) modifier. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/oninapppurchasestart(perform:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/onmapcamerachange(frequency:_:) + +#app-main) + +- SwiftUI +- View +- onMapCameraChange(frequency:\_:) + +Instance Method + +# onMapCameraChange(frequency:\_:) + +Performs an action when Map camera framing changes + +MapKitSwiftUI + +@MainActor @preconcurrency +func onMapCameraChange( +frequency: MapCameraUpdateFrequency = .onEnd, + +Show all declarations + +## Parameters + +`frequency` + +How frequently the action should be performed during a camera interaction. + +`action` + +A closure to run when the camera framing changes. + +## See Also + +### Getting location information + +`@MainActor @preconcurrency struct LocationButton` + +A SwiftUI button that grants one-time location authorization. + +A view that displays an embedded map interface. + +Specifies the map style to be used. + +Creates a mapScope that SwiftUI uses to connect map controls to an associated map. + +Specifies which map features should have selection disabled. + +Specifies the selection accessory to display for a `MapFeature` + +Specifies a custom presentation for the currently selected feature. + +Configures all `Map` views in the associated environment to have standard size and position controls + +Configures all Map controls in the environment to have the specified visibility + +Uses the given keyframes to animate the camera of a `Map` when the given trigger value changes. + +Presents a map item detail popover. + +--- + +# https://developer.apple.com/documentation/swiftui/view/onopenurl(prefersinapp:) + +#app-main) + +- SwiftUI +- View +- onOpenURL(prefersInApp:) Beta + +Instance Method + +# onOpenURL(prefersInApp:) + +Sets an `OpenURLAction` that prefers opening URL with an in-app browser. It’s equivalent to calling `.onOpenURL(_:)` + +@MainActor @preconcurrency + +## Discussion + +.onOpenURL { _ in +.systemAction(prefersInApp: prefersInApp) +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/onworldrecenter(action:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/paylaterviewaction(_:) + +#app-main) + +- SwiftUI +- View +- payLaterViewAction(\_:) + +Instance Method + +# payLaterViewAction(\_:) + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +PassKitSwiftUI + +nonisolated + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/paylaterviewdisplaystyle(_:) + +#app-main) + +- SwiftUI +- View +- payLaterViewDisplayStyle(\_:) + +Instance Method + +# payLaterViewDisplayStyle(\_:) + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +PassKitSwiftUI + +nonisolated + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/paywithapplepaybuttondisablecardart() + +#app-main) + +- SwiftUI +- View +- payWithApplePayButtonDisableCardArt() Beta + +Instance Method + +# payWithApplePayButtonDisableCardArt() + +Sets the features that should be allowed to show on the payment buttons. + +PassKitSwiftUI + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/paywithapplepaybuttonstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/popovertip(_:arrowedge:action:) + +#app-main) + +- SwiftUI +- View +- popoverTip(\_:arrowEdge:action:) + +Instance Method + +# popoverTip(\_:arrowEdge:action:) + +Presents a popover tip on the modified view. + +@preconcurrency nonisolated +func popoverTip( +_ tip: (any Tip)?, +arrowEdge: Edge? = nil, + +## Parameters + +`tip` + +The tip to display. + +`arrowEdge` + +The edge of the attachmentAnchor that defines the location of the popover’s arrow. By default, the system will choose the best orientation of the popover’s arrow. + +`action` + +The action to perform when the user triggers a tip’s button. + +### Discussion + +Use this modifier to present a tip as a popover on an existing view when the tip becomes eligible for display. + +import SwiftUI +import TipKit + +// Define your tip's content. +struct SampleTip: Tip { +var title: Text { +Text("Save as a Favorite") +} + +var message: Text? { +Text("Your favorite backyards always appear at the top of the list.") +} + +var image: Image? { +Image(systemName: "star") +} +} + +struct SampleView: View { +// Create an instance of your tip. +var tip = SampleTip() + +var body: some View { +VStack { +// Add `.popoverTip` to the view you want to modify. +// Tips.configure(options:) must be called before your tip will be eligible for display. +Image(systemName: "star") +.popoverTip(tip) +} +} +} + +## See Also + +### Providing tips + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +Sets the style for a tip’s image. + +--- + +# https://developer.apple.com/documentation/swiftui/view/posttophotossharedalbumsheet(ispresented:items:photolibrary:defaultalbumidentifier:completion:) + +#app-main) + +- SwiftUI +- View +- postToPhotosSharedAlbumSheet(isPresented:items:photoLibrary:defaultAlbumIdentifier:completion:) Beta + +Instance Method + +# postToPhotosSharedAlbumSheet(isPresented:items:photoLibrary:defaultAlbumIdentifier:completion:) + +Presents an “Add to Shared Album” sheet that allows the user to post the given items to a shared album. + +PhotosUISwiftUI + +@MainActor +func postToPhotosSharedAlbumSheet( + +items: [PHPickerResult], +photoLibrary: PHPhotoLibrary, +defaultAlbumIdentifier: String? = nil, + +Show all declarations + +## Discussion + +- isPresented: The binding to whether the sheet should be shown. + +- items: The items to be posted to the shared album. + +- photoLibrary: Library to choose from. + +- defaultAlbumIdentifier: Identifier for the shared album to be pre-selected. If none provided user can manually choose the shared album in UI. + +- completion: Called with the result on completion of the request. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/preferredwindowclippingmargins(_:_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/presentationbreakthrougheffect(_:) + +#app-main) + +- SwiftUI +- View +- presentationBreakthroughEffect(\_:) Beta + +Instance Method + +# presentationBreakthroughEffect(\_:) + +Changes the way the enclosing presentation breaks through content occluding it. + +nonisolated + +## Parameters + +`effect` + +The type of effect to apply when a presentation element is occluded by other content. + +## Discussion + +Use this modifier to disable or customize a breakthrough effect for the enclosing presentation. + +Breakthrough is an effect allowing elements to be visible to the user even when other app content (3D models, UI elements) is occluding it. The way the element appears depends on the chosen `BreakthroughEffect`. + +Most system presentations appear with a breakthrough effect by default. For these cases, the `presentationBreakthroughEffect` modifier allows customization of the type of effect. This is achieved by applying the modifier to the content of the presentation: + +Button("Show Details") { +isShowingDetails = true +} +.popover(isPresented: $isShowingDetails) { +DetailsView() +.presentationBreakthroughEffect(.prominent) +} + +Only popovers allow breakthrough to be disabled altogether. Passing a `.none` value for a sheet doesn’t have any effect. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/presentationpreventsapptermination(_:) + +#app-main) + +- SwiftUI +- View +- presentationPreventsAppTermination(\_:) + +Instance Method + +# presentationPreventsAppTermination(\_:) + +Whether a presentation prevents the app from being terminated/quit by the system or app termination menu item. + +nonisolated + +## Discussion + +SwiftUI uses the buttons in a sheet’s toolbar to determine whether a particular sheet should block termination by default. If there is a singular toolbar item with the `confirmationAction` or the `cancellationAction` placement and no other toolbar items, the sheet will not prevent termination by default. + +Use this modifier to specify whether a sheet should prevent app termination. Pass `nil` to explicitly request the automatic behavior/for the inert version of this modifier. Non-nil values will override `nil`, and `true` takes precedence over `false`. + +Use this modifier within the `content` argument to `View/sheet` + +struct LaunchScreen: View { +@State private var presentLogin = false +var body: some View { +HomeView() +.sheet(isPresented: $presentLogin) { +LoginView() +// explicitly allow app termination because the +// default behavior would resolve to `true`. +.presentationPreventsAppTermination(false) +.toolbar { +ToolbarItem(placement: .cancellationAction) { +Button("Cancel") { presentLogin = false } +} +ToolbarItem(placement: .confirmationAction) { +Button("Login") { +// Attempt login... +presentLogin = false +} +} +} +} +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/view/productdescription(_:) + +#app-main) + +- SwiftUI +- View +- productDescription(\_:) + +Instance Method + +# productDescription(\_:) + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +StoreKitSwiftUI + +nonisolated + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/producticonborder() + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/productviewstyle(_:) + +#app-main) + +- SwiftUI +- View +- productViewStyle(\_:) + +Instance Method + +# productViewStyle(\_:) + +Sets the style for In-App Purchase product views within a view. + +StoreKitSwiftUI + +nonisolated + +## Parameters + +`style` + +The style to apply to the in-app purchase product views within the view. + +## Discussion + +This modifier styles any `ProductView` or `StoreView` instances within a view. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/realityviewcameracontrols(_:) + +#app-main) + +- SwiftUI +- View +- realityViewCameraControls(\_:) + +Instance Method + +# realityViewCameraControls(\_:) + +Adds gestures that control the position and direction of a virtual camera. + +RealityKitSwiftUI + +@MainActor @preconcurrency + +## Discussion + +You can use a drag gesture from a mouse, trackpad, or screen touches with iOS and iPadOS devices to `.tilt`, `.pan`, `.orbit`, or `.dolly` a virtual camera. + +## See Also + +### Configuring camera controls + +`var realityViewCameraControls: CameraControls` + +The camera controls for the reality view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/realityviewlayoutbehavior(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/rotation3dlayout(_:) + +#app-main) + +- SwiftUI +- View +- rotation3DLayout(\_:) Beta + +Instance Method + +# rotation3DLayout(\_:) + +Rotates a view with impacts to its frame in a containing layout + +nonisolated + +## Parameters + +`rotation` + +A rotation to apply to the view and its frame. + +## Discussion + +The following example will rotate the top plane by 45 degrees while adjusting its frame to account for this rotation. The VStack sizes to fit the rotated and standard models. + +VStack { +Model3D(named: "plane") +.rotation3DLayout(Rotation3D(angle: .degrees(45), axis: .z)) +Model3D(named: "plane") + +} + +The layout system will use a bounding box that completely contains the rotated view, meaning this modifier can change the size of the view it is applied to. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/rotation3dlayout(_:axis:) + +#app-main) + +- SwiftUI +- View +- rotation3DLayout(\_:axis:) Beta + +Instance Method + +# rotation3DLayout(\_:axis:) + +Rotates a view with impacts to its frame in a containing layout + +nonisolated +func rotation3DLayout( +_ angle: Angle, +axis: (x: CGFloat, y: CGFloat, z: CGFloat) + +Show all declarations + +## Parameters + +`angle` + +The angle by which to rotate the view and its frame. + +`axis` + +The axis of rotation. + +## Discussion + +The following example will rotate the top plane by 45 degrees while adjusting its frame to account for this rotation. The VStack sizes to fit the rotated and standard models. + +VStack { +Model3D(named: "plane") +.rotation3DLayout(.degrees(45), axis: (x: 0, y: 0, z: 1)) +Model3D(named: "plane") + +} + +The layout system will use a bounding box that completely contains the rotated view, meaning this modifier can change the size of the view it is applied to. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/safeareabar(edge:alignment:spacing:content:) + +#app-main) + +- SwiftUI +- View +- safeAreaBar(edge:alignment:spacing:content:) Beta + +Instance Method + +# safeAreaBar(edge:alignment:spacing:content:) + +Renders the provided content appropriately to be displayed as a custom bar. + +nonisolated +func safeAreaBar( +edge: HorizontalEdge, +alignment: VerticalAlignment = .center, +spacing: CGFloat? = nil, + +Show all declarations + +## Discussion + +Similar to a `View/safeAreaInset(edge:alignment:spacing:content)` modifier, the modified view will have its horizontal safe area inset by the height of the content. + +In addition to adjusting the safe area, the bar modifier configures the `content` to support views to automatically extend the edge effect of any scroll view’s the bar adjusts safe area of. + +## See Also + +### Configuring scroll edge effects + +Configures the scroll edge effect style for scroll views within this hierarchy. + +Beta + +Disables any scroll edge effects for scroll views within this hierarchy. + +`struct ScrollEdgeEffectStyle` + +A structure that defines the style of pocket a scroll view will have. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/scaledtofill3d() + +#app-main) + +- SwiftUI +- View +- scaledToFill3D() Beta + +Instance Method + +# scaledToFill3D() + +Scales this view to fill its parent. + +nonisolated + +## Return Value + +A view that scales this view to fit its parent, maintaining this view’s aspect ratio. + +## Discussion + +This view’s 3D aspect ratio is maintained as the view scales. This method is equivalent to calling `aspectRatio3D(nil, contentMode: .fill)`. + +Model3D(named: "Sphere") { resolved in +resolved +.resizable() +.scaledToFill3D() +} placeholder: { +ProgressView() +} +.frame(width: 300, height: 100) +.frame(depth: 300) +.border(Color(white: 0.75)) + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/scaledtofit3d() + +#app-main) + +- SwiftUI +- View +- scaledToFit3D() Beta + +Instance Method + +# scaledToFit3D() + +Scales this view to fit its parent. + +nonisolated + +## Return Value + +A view that scales this view to fit its parent, maintaining this view’s aspect ratio. + +## Discussion + +This view’s 3D aspect ratio is maintained as the view scales. This method is equivalent to calling `aspectRatio3D(nil, contentMode: .fit)`. + +Model3D(named: "Plane") { resolved in +resolved +.resizable() +.scaledToFit3D() +} placeholder: { +ProgressView() +} +.frame(width: 400, height: 400) +.frame(depth: 200) +.border(Color(white: 0.75)) + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/scrolledgeeffectdisabled(_:for:) + +#app-main) + +- SwiftUI +- View +- scrollEdgeEffectDisabled(\_:for:) Beta + +Instance Method + +# scrollEdgeEffectDisabled(\_:for:) + +Disables any scroll edge effects for scroll views within this hierarchy. + +nonisolated +func scrollEdgeEffectDisabled( +_ disabled: Bool = true, +for edges: Edge.Set = .all + +## Discussion + +By default, a scroll view will render an automatic edge effect style. You use this modifier to disable the rendering of any edge effects for scroll views within this hierarchy. + +ScrollView { +LazyVStack { +ForEach(data) { item in +RowView(item) +} +} +} +.scrollEdgeEffectDisabled() + +## See Also + +### Configuring scroll edge effects + +Configures the scroll edge effect style for scroll views within this hierarchy. + +Beta + +`struct ScrollEdgeEffectStyle` + +A structure that defines the style of pocket a scroll view will have. + +`func safeAreaBar(edge:alignment:spacing:content:)` + +Renders the provided content appropriately to be displayed as a custom bar. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/scrolledgeeffectstyle(_:for:) + +#app-main) + +- SwiftUI +- View +- scrollEdgeEffectStyle(\_:for:) Beta + +Instance Method + +# scrollEdgeEffectStyle(\_:for:) + +Configures the scroll edge effect style for scroll views within this hierarchy. + +nonisolated +func scrollEdgeEffectStyle( +_ style: ScrollEdgeEffectStyle?, +for edges: Edge.Set + +## Discussion + +By default, a scroll view will render an automatic edge effect. You use this modifier to change rendered edge effect style. + +ScrollView { +LazyVStack { +ForEach(data) { item in +RowView(item) +} +} +} +.scrollEdgeEffectStyle(.hard) + +## See Also + +### Configuring scroll edge effects + +Disables any scroll edge effects for scroll views within this hierarchy. + +Beta + +`struct ScrollEdgeEffectStyle` + +A structure that defines the style of pocket a scroll view will have. + +`func safeAreaBar(edge:alignment:spacing:content:)` + +Renders the provided content appropriately to be displayed as a custom bar. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/scrollinputbehavior(_:for:) + +#app-main) + +- SwiftUI +- View +- scrollInputBehavior(\_:for:) + +Instance Method + +# scrollInputBehavior(\_:for:) + +Enables or disables scrolling in scrollable views when using particular inputs. + +@MainActor @preconcurrency +func scrollInputBehavior( +_ behavior: ScrollInputBehavior, +for input: ScrollInputKind + +## Parameters + +`behavior` + +Whether scrolling should be enabled or disabled for this input. + +`input` + +The input for which to enable or disable scrolling. + +## Discussion + +In contrast to `scrollDisabled(_:)`, this modifier will enable or disable scrolling only for particular inputs. The following, for instance, disables double-tap-to-scroll on watchOS while preserving the ability to scroll via touch and the Digital Crown: + +ScrollView(...) +.scrollInputBehavior(.disabled, for: .handGestureShortcut) + +If `scrollDisabled(true)` has been applied to this view, scrolling will be disabled for all inputs and this modifier cannot be used to re-enable scrolling. + +## See Also + +### Managing scrolling for different inputs + +`struct ScrollInputKind` + +Inputs used to scroll views. + +`struct ScrollInputBehavior` + +A type that defines whether input should scroll a view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/searchtoolbarbehavior(_:) + +#app-main) + +- SwiftUI +- View +- searchToolbarBehavior(\_:) Beta + +Instance Method + +# searchToolbarBehavior(\_:) + +Configures the behavior for search in the toolbar. + +nonisolated + +## Discussion + +This modifier can be used to change the default behavior of a search field that appears in the toolbar. Place this modifier after the `searchable(text:isPresented:placement:prompt:)` modifier that renders search in the toolbar. + +On iPhone, the search field in the bottom toolbar can be configured to appear as a button-like control when inactive: + +@State private var searchText = "" + +NavigationStack { +RecipeList() +.searchable($searchText) +.searchToolbarBehavior(.minimized) +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/sectionindexlabel(_:) + +#app-main) + +- SwiftUI +- View +- sectionIndexLabel(\_:) Beta + +Instance Method + +# sectionIndexLabel(\_:) + +Sets the label that is used in a section index to point to this section, typically only a single character long. + +nonisolated + +Show all declarations + +## Parameters + +`label` + +The label to display in the section index, or `nil` to display no label for this section. + +## Discussion + +- See also `listSectionIndexVisibility(_:)` + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/signinwithapplebuttonstyle(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/spatialoverlay(alignment:content:) + +#app-main) + +- SwiftUI +- View +- spatialOverlay(alignment:content:) Beta + +Instance Method + +# spatialOverlay(alignment:content:) + +Adds secondary views within the 3D bounds of this view. + +nonisolated + +alignment: Alignment3D = .center, + +## Parameters + +`alignment` + +The alignment with a default value of `center` that you use to position the secondary view. + +`content` + +The view builder which produces views to occupy the same 3D space as this view. Multiple views provided by content are organized into a `SpatialContainer`. + +## Return Value + +A view that adds `content` within the view’s 3D bounds. + +## Discussion + +Multiple views provided by `content` are stacked depthwise. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/spatialoverlaypreferencevalue(_:alignment:_:) + +#app-main) + +- SwiftUI +- View +- spatialOverlayPreferenceValue(\_:alignment:\_:) Beta + +Instance Method + +# spatialOverlayPreferenceValue(\_:alignment:\_:) + +Uses the specified preference value from the view to produce another view occupying the same 3D space of the first view. + +nonisolated + +_ key: K.Type, +alignment: Alignment3D = .center, + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/storebutton(_:for:) + +#app-main) + +- SwiftUI +- View +- storeButton(\_:for:) + +Instance Method + +# storeButton(\_:for:) + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +StoreKitSwiftUI + +nonisolated +func storeButton( +_ visibility: Visibility, +for buttonKinds: StoreButtonKind... + +## Parameters + +`visibility` + +The preferred visibility of the buttons. + +`buttonKinds` + +The type of store button. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/storeproducttask(for:priority:action:) + +#app-main) + +- SwiftUI +- View +- storeProductTask(for:priority:action:) + +Instance Method + +# storeProductTask(for:priority:action:) + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +StoreKitSwiftUI + +nonisolated +func storeProductTask( +for id: Product.ID, +priority: TaskPriority = .medium, + +## Parameters + +`id` + +The product ID to load from the App Store. The task restarts whenever this parameter changes. + +`priority` + +The task priority to use when creating the task. + +`action` + +The action to perform when the task’s state changes. + +## Discussion + +Before a view modified with this method appears, a task will start in the background to load the product from the App Store. While the view is presented, the task will call `action` whenever the product changes or the task’s state changes. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on a collection of In-App Purchase products and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/storeproductstask(for:priority:action:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionintroductoryoffer(applyoffer:compactjws:) + +#app-main) + +- SwiftUI +- View +- subscriptionIntroductoryOffer(applyOffer:compactJWS:) Beta + +Instance Method + +# subscriptionIntroductoryOffer(applyOffer:compactJWS:) + +Selects the introductory offer eligibility preference to apply to a purchase a customer makes from a subscription store view. + +StoreKitSwiftUI + +nonisolated +func subscriptionIntroductoryOffer( + +## Parameters + +`applyOffer` + +The system calls this function before drawing the given subscription product on the subscription store view. Return if the introductory offer should be applied to a given product, if any, to have system-provided UI reflect the discounted terms under the selected offer. + +`compactJWS` + +The system calls this function before processing a purchase, with the product to be purchased provided as a parameter. Return a compact JWS signature you generate on your server that validates the selected offer eligibility preference. Errors thrown from this closure will be surfaced via the `onInAppPurchaseCompletion(perform:)` modifier. For information about generating the JWS signature, see Generating JWS to sign App Store requests. + +## Discussion + +Subscription stores within this view uses the introductory subscription offers to configure the appearance of the subscription plans displayed, when you use a system-provided `SubscriptionStoreControlStyle` to style the in-app subscription store. Standard `ProductViewStyle` instances don’t show introductory or promotional offers in UI, instead use `SubscriptionStoreView`. + +Determine if the introductory offer should be displayed in the view and applied to the purchase using the `applyOffer`. If the signature passes validation, the system applies or removes the offer to the purchases according to the offer eligibility preference. If the signature fails validation, the purchase will fail with `Product.PurchaseError.invalidOfferSignature`. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionofferviewbuttonvisibility(_:for:) + +#app-main) + +- SwiftUI +- View +- subscriptionOfferViewButtonVisibility(\_:for:) Beta + +Instance Method + +# subscriptionOfferViewButtonVisibility(\_:for:) + +StoreKitSwiftUI + +nonisolated +func subscriptionOfferViewButtonVisibility( +_ visibility: Visibility, +for buttonKinds: SubscriptionOfferViewButtonKind... + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionofferviewdetailaction(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionOfferViewDetailAction(\_:) Beta + +Instance Method + +# subscriptionOfferViewDetailAction(\_:) + +StoreKitSwiftUI + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionofferviewstyle(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionOfferViewStyle(\_:) Beta + +Instance Method + +# subscriptionOfferViewStyle(\_:) + +StoreKitSwiftUI + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionpromotionaloffer(offer:compactjws:) + +#app-main) + +- SwiftUI +- View +- subscriptionPromotionalOffer(offer:compactJWS:) Beta + +Instance Method + +# subscriptionPromotionalOffer(offer:compactJWS:) + +Selects a promotional offer to apply to a purchase a customer makes from a subscription store view. + +StoreKitSwiftUI + +nonisolated +func subscriptionPromotionalOffer( + +## Parameters + +`offer` + +The system calls this function before drawing the given subscription product on the subscription store view. Return the promotional offer to apply to the product, if any, to have system-provided UI reflect the discounted terms under the selected offer. + +`compactJWS` + +The system calls this function before processing a purchase, with the product to be purchased provided as a parameter, along with the selected subscription offer to be applied to the purchase. Return a compact JWS signature you generate on your server that validates the selected offer. Errors thrown from this closure will be surfaced via the `onInAppPurchaseCompletion(perform:)` modifier. For information about generating the JWS signature, see Generating JWS to sign App Store requests.. + +## Discussion + +Subscription stores within this view uses the specified subscription offer to configure the appearance of the subscription plans displayed, when you use a system-provided `SubscriptionStoreControlStyle` to style the in-app subscription store. Standard `ProductViewStyle` instances don’t show introductory or promotional offers in UI. Use the `SubscriptionStoreView` instead to show these offers in the UI. + +If the signature passes validation for the offer you select, the system applies the offer to the purchase. If the signature fails validation for the offer you select, the purchase fails with `Product.PurchaseError.invalidOfferSignature`. + +Promotional offers you select in this modifier overwrite any offers you specified in ancestor views. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionpromotionaloffer(offer:signature:) + +#app-main) + +- SwiftUI +- View +- subscriptionPromotionalOffer(offer:signature:) Deprecated + +Instance Method + +# subscriptionPromotionalOffer(offer:signature:) + +Selects a promotional offer to apply to a purchase a customer makes from a subscription store view. + +StoreKitSwiftUIiOS 17.4–26.0DeprecatediPadOS 17.4–26.0DeprecatedmacOS 14.4–26.0DeprecatedtvOS 17.4–26.0DeprecatedvisionOS 1.1–26.0DeprecatedwatchOS 10.4–26.0Deprecated + +nonisolated +func subscriptionPromotionalOffer( + +## Parameters + +`offer` + +The system calls this function before drawing the given subscription product on the subscription store view. Return the promotional offer to apply to the product, if any, to have system-provided UI reflect the discounted terms under the selected offer. + +`signature` + +The system calls this function before processing a purchase, with the product to be purchased provided as a parameter, along with the selected subscription offer to be applied to the purchase. Return a signature you generate on your server that validates the selected offer. Errors thrown from this closure will be surfaced via the `onInAppPurchaseCompletion(perform:)` modifier. For information about generating the signature, see Generating a signature for promotional offers. + +## Discussion + +Subscription stores within this view uses the specified subscription offer to configure the appearance of the subscription plans displayed, when you use a system-provided `SubscriptionStoreControlStyle` to style the in-app subscription store. Standard `ProductViewStyle` instances don’t show introductory or promotional offers in UI. Use the `SubscriptionStoreView` instead to show these offers in the UI. + +If the signature passes validation for the offer you select, the system applies the offer to the purchase. If the signature fails validation for the offer you select, the purchase fails with `Product.PurchaseError.invalidOfferSignature`. + +Promotional offers you select in this modifier overwrite any offers you specified in ancestor views. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorebuttonlabel(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorecontrolbackground(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreControlBackground(\_:) + +Instance Method + +# subscriptionStoreControlBackground(\_:) + +Set a standard effect to use for the background of subscription store view controls within the view. + +StoreKitSwiftUI + +nonisolated + +Show all declarations + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorecontrolicon(icon:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreControlIcon(icon:) + +Instance Method + +# subscriptionStoreControlIcon(icon:) + +Sets a view to use to decorate individual subscription options within a subscription store view. + +StoreKitSwiftUI + +nonisolated + +## Parameters + +`icon` + +A closure that takes a `Product` and `Product.SubscriptionInfo` and returns a view. + +## Discussion + +You can adjust this view to provide a different appearance for each subscription option. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorecontrolstyle(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreControlStyle(\_:) + +Instance Method + +# subscriptionStoreControlStyle(\_:) + +Sets the control style for subscription store views within a view. + +StoreKitSwiftUI + +nonisolated + +## Discussion + +This view modifier set the style of controls for `SubscriptionStoreView` instances within a view. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorecontrolstyle(_:placement:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreControlStyle(\_:placement:) + +Instance Method + +# subscriptionStoreControlStyle(\_:placement:) + +Sets the control style and control placement for subscription store views within a view. + +StoreKitSwiftUI + +nonisolated + +_ style: S, +placement: S.Placement + +## Parameters + +`style` + +The subscription store control style to use when drawing the subscription controls of `SubscriptionStoreView` instances within a view. + +`placement` + +The desired region of the subscription store view for placing the subscription controls. + +## Discussion + +This modifier sets the style and placement of the subscription controls in any `SubscriptionStoreView` instance within a view. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstoreoptiongroupstyle(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreOptionGroupStyle(\_:) + +Instance Method + +# subscriptionStoreOptionGroupStyle(\_:) + +Sets the style subscription store views within this view use to display groups of subscription options. + +StoreKitSwiftUI + +nonisolated + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepickeritembackground(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepickeritembackground(_:in:) + +#app-main) + +- SwiftUI +- View +- subscriptionStorePickerItemBackground(\_:in:) + +Instance Method + +# subscriptionStorePickerItemBackground(\_:in:) + +Sets the background shape and style for subscription store view picker items within a view. + +StoreKitSwiftUI + +nonisolated +func subscriptionStorePickerItemBackground( +_ backgroundStyle: some ShapeStyle, +in shape: some Shape + +## Parameters + +`backgroundStyle` + +A `ShapeStyle` that determines the background style for the subscription store view picker items. + +`shape` + +An instance of a type that conforms to `Shape` and determines the shape of the subscription store view picker items. Omit the shape parameter to use the default shape. + +## Discussion + +Use this view modifier to customize the shape of the picker options in a subscription store view, as well as the background style. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepolicydestination(for:destination:) + +#app-main) + +- SwiftUI +- View +- subscriptionStorePolicyDestination(for:destination:) + +Instance Method + +# subscriptionStorePolicyDestination(for:destination:) + +Configures a view as the destination for a policy button action in subscription store views. + +StoreKitSwiftUI + +nonisolated +func subscriptionStorePolicyDestination( +for button: SubscriptionStorePolicyKind, + +## Parameters + +`button` + +The policy button to associate the URL with. + +`destination` + +The view to present when someone chooses to view the policy. + +## Discussion + +Except on tvOS, you can also set a URL as the destination using `subscriptionStorePolicyDestination(url:for:)`. If you do not set a destination, the system will use the automatic behavior. Check the documentation for the value you provide for `button` to understand the automatic behavior. + +By default, the subscription store shows the & buttons if you set a destination for at least one policy. The policy that is not explicitly set will use the automatic behavior. You can override this behavior using the `storeButton(_:for:)` modifier, with `policies` as the second parameter. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepolicydestination(url:for:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepolicyforegroundstyle(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStorePolicyForegroundStyle(\_:) + +Instance Method + +# subscriptionStorePolicyForegroundStyle(\_:) + +Sets the style for the and buttons within a subscription store view. + +StoreKitSwiftUI + +nonisolated + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstorepolicyforegroundstyle(_:_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStorePolicyForegroundStyle(\_:\_:) + +Instance Method + +# subscriptionStorePolicyForegroundStyle(\_:\_:) + +Sets the primary and secondary style for the and buttons within a subscription store view. + +StoreKitSwiftUI + +nonisolated +func subscriptionStorePolicyForegroundStyle( +_ primary: some ShapeStyle, +_ secondary: some ShapeStyle + +## Parameters + +`primary` + +The color or pattern to use for the and buttons + +`secondary` + +The color or pattern to use for the conjunction between the buttons in the policy section + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/subscriptionstoresigninaction(_:) + +#app-main) + +- SwiftUI +- View +- subscriptionStoreSignInAction(\_:) + +Instance Method + +# subscriptionStoreSignInAction(\_:) + +Adds an action to perform when a person uses the sign-in button on a subscription store view within a view. + +StoreKitSwiftUI + +nonisolated + +## Parameters + +`action` + +The action to perform. Pass `nil` to remove the sign in action for subscription stores within this view. The default value is `nil`. + +## Discussion + +You can only have one sign in action for a view. If an ancestor view specifies a sign in action, using this modifier will replace the ancestor’s sign in action. + +If the value is `nil`, subscription stores will never show a sign in button. You can also hide the sign in button without removing the action by using the `storeButton(_:for:)` modifier, providing `signIn` as the button kind. + +## See Also + +### Interacting with the App Store and Apple Music + +Presents a StoreKit overlay when a given condition is true. + +Display the refund request sheet for the given transaction. + +Presents a sheet that enables users to redeem subscription offer codes that you configure in App Store Connect. + +Initiates the process of presenting a sheet with subscription offers for Apple Music when the `isPresented` binding is `true`. + +Declares the view as dependent on the entitlement of an In-App Purchase product, and returns a modified view. + +Add a function to call before initiating a purchase from StoreKit view within this view, providing a set of options for the purchase. + +Add an action to perform when a purchase initiated from a StoreKit view within this view completes. + +Add an action to perform when a user triggers the purchase button on a StoreKit view within this view. + +Adds a standard border to an in-app purchase product’s icon . + +Sets the style for In-App Purchase product views within a view. + +Configure the visibility of labels displaying an in-app purchase product description within the view. + +Specifies the visibility of auxiliary buttons that store view and subscription store view instances may use. + +Declares the view as dependent on an In-App Purchase product and returns a modified view. + +--- + +# https://developer.apple.com/documentation/swiftui/view/symbolcolorrenderingmode(_:) + +#app-main) + +- SwiftUI +- View +- symbolColorRenderingMode(\_:) Beta + +Instance Method + +# symbolColorRenderingMode(\_:) + +Sets the color rendering mode for symbol images. + +nonisolated + +## Parameters + +`mode` + +The color rendering mode, or nil to use the default mode. + +## Return Value + +A view that specifies the color rendering mode for symbol images. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/symbolvariablevaluemode(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabbarminimizebehavior(_:) + +#app-main) + +- SwiftUI +- View +- tabBarMinimizeBehavior(\_:) Beta + +Instance Method + +# tabBarMinimizeBehavior(\_:) + +Sets the behavior for tab bar minimization. + +nonisolated + +## Parameters + +`behavior` + +The minimize behavior. + +## Discussion + +The following TabView minimizes its tab bar when scrolling in the ‘Numbers’ or ‘Alerts’ tabs on iPhone. + +struct ContentView: View { +var body: some View { +TabView { +Tab("Numbers", systemImage: "number") { +ScrollView { +ForEach(0 ..< 50) { index in +Text("\(index)") +.padding() +} +} +} +Tab("Alerts", systemImage: "bell") { +AlertsView() +} +} +.tabBarMinimizeBehavior(.onScrollDown) +} +} + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabviewbottomaccessory(content:) + +#app-main) + +- SwiftUI +- View +- tabViewBottomAccessory(content:) Beta + +Instance Method + +# tabViewBottomAccessory(content:) + +nonisolated + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabletopgame(_:parent:automaticupdate:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/tabletopgame(_:parent:automaticupdate:interaction:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/textcontenttype(_:) + +#app-main) + +- SwiftUI +- View +- textContentType(\_:) + +Instance Method + +# textContentType(\_:) + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on macOS. + +nonisolated + +Show all declarations + +## Parameters + +`textContentType` + +One of the content types available in the `NSTextContentType` structure that identify the semantic meaning expected for a text-entry area. + +## Discussion + +Use this method to set the content type for input text. For example, you can configure a `TextField` for the entry of a username: + +TextField("Enter your username", text: $username) +.textContentType(.username) + +## See Also + +### Managing text entry + +Sets whether to disable autocorrection for this view. + +`var autocorrectionDisabled: Bool` + +A Boolean value that determines whether the view hierarchy has auto-correction enabled. + +Sets the keyboard type for this view. + +Configures the behavior in which scrollable content interacts with the software keyboard. + +Sets how often the shift key in the keyboard is automatically enabled. + +`struct TextInputAutocapitalization` + +The kind of autocapitalization behavior applied during text input. + +Associates a fully formed string with the value of this view when used as a text input suggestion + +Configures the text input suggestions for this view. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on a watchOS device. + +Sets the text content type for this view, which the system uses to offer suggestions while the user enters text on an iOS or tvOS device. + +`struct TextInputFormattingControlPlacement` + +A structure defining the system text formatting controls available on each platform. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/view/textinputformattingcontrolvisibility(_:for:) + +#app-main) + +- SwiftUI +- View +- textInputFormattingControlVisibility(\_:for:) Beta + +Instance Method + +# textInputFormattingControlVisibility(\_:for:) + +Define which system text formatting controls are available. + +@MainActor @preconcurrency +func textInputFormattingControlVisibility( +_ visibility: Visibility, +for placement: TextInputFormattingControlPlacement.Set + +## Parameters + +`visibility` + +Whether the control may become visible to the user + +`placement` + +The onscreen control to modify + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/textrenderer(_:) + +#app-main) + +- SwiftUI +- View +- textRenderer(\_:) + +Instance Method + +# textRenderer(\_:) + +Returns a new view such that any text views within it will use `renderer` to draw themselves. + +nonisolated + +## Parameters + +`renderer` + +The renderer value. + +## Return Value + +A new view that will use `renderer` to draw its text views. + +## See Also + +### Rendering text + +Creating visual effects with SwiftUI + +Add scroll effects, rich color treatments, custom transitions, and advanced effects using shaders and a text renderer. + +`protocol TextAttribute` + +A value that you can attach to text views and that text renderers can query. + +`protocol TextRenderer` + +A value that can replace the default text view rendering behavior. + +`struct TextProxy` + +A proxy for a text view that custom text renderers use. + +--- + +# https://developer.apple.com/documentation/swiftui/view/textselectionaffinity(_:) + +#app-main) + +- SwiftUI +- View +- textSelectionAffinity(\_:) + +Instance Method + +# textSelectionAffinity(\_:) + +Sets the direction of a selection or cursor relative to a text character. + +nonisolated + +## Parameters + +`affinity` + +The text selection affinity strategy to apply. + +## Return Value + +A view that uses the specified selection affinity strategy. + +## Discussion + +Use this modifier when you need to handle line breaks in a specific way, alter cursor movement or deal with bidirectional text (text that contains both LTR and RTL scripts, like English and Arabic combined). + +Selection affinity also determines whether, for example, the insertion point appears after the last character on a line or before the first character on the following line in cases where text wraps across line boundaries. + +Given the scenario `hello|مرحبا`, where `|` represents the cursor & `مرحبا` represents “hello” in Arabic, the ambiguity arises because: + +- If the cursor is associated with the end of the English word, it would be as if you’re continuing to type in English (LTR). + +- If the cursor is associated with the beginning of the Arabic word, it would also be as if you’re continuing to type in Arabic (RTL). + +This modifier helps resolve this ambiguity by determining the direction or association of the cursor relative to the surrounding text. + +The following example shows how you would specify a specific selection affinity on the given hierarchy: + +struct SuggestionTextEditor: View { +@State var text: String = "" +@State var selection: TextSelection? = nil + +var body: some View { +VStack { +TextEditor(text: $text, selection: $selection) +// A helper view that offers live suggestions based on selection. +SuggestionsView( +substrings: getSubstrings(text: text, indices: selection?.indices)) +} +.textSelectionAffinity(.upstream) +} + +private func getSubstrings( +text: String, indices: TextSelection.Indices? + +// Resolve substrings representing the current selection... +} +} + +struct SuggestionsView: View { ... } + +## See Also + +### Selecting text + +Controls whether people can select text within this view. + +`protocol TextSelectability` + +A type that describes the ability to select text. + +`struct TextSelection` + +Represents a selection of text. + +`var textSelectionAffinity: TextSelectionAffinity` + +A representation of the direction or association of a selection or cursor relative to a text character. This concept becomes much more prominent when dealing with bidirectional text (text that contains both LTR and RTL scripts, like English and Arabic combined). + +`enum TextSelectionAffinity` + +`struct AttributedTextSelection` + +Represents a selection of attributed text. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipbackground(_:) + +#app-main) + +- SwiftUI +- View +- tipBackground(\_:) + +Instance Method + +# tipBackground(\_:) + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +nonisolated + +## Parameters + +`style` + +An instance of a type that conforms to `ShapeStyle` that SwiftUI draws behind the modified view. + +## Return Value + +A view with the specified style drawn behind it. + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +Sets the style for a tip’s image. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipcornerradius(_:antialiased:) + +#app-main) + +- SwiftUI +- View +- tipCornerRadius(\_:antialiased:) + +Instance Method + +# tipCornerRadius(\_:antialiased:) + +Sets the corner radius for an inline tip view. + +nonisolated +func tipCornerRadius( +_ cornerRadius: CGFloat, +antialiased: Bool = true + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +Sets the style for a tip’s image. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipimagesize(_:) + +#app-main) + +- SwiftUI +- View +- tipImageSize(\_:) + +Instance Method + +# tipImageSize(\_:) + +Sets the size for a tip’s image. + +nonisolated + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the given style for TipView within the view hierarchy. + +Sets the style for a tip’s image. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipimagestyle(_:) + +#app-main) + +- SwiftUI +- View +- tipImageStyle(\_:) + +Instance Method + +# tipImageStyle(\_:) + +Sets the style for a tip’s image. + +nonisolated + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipimagestyle(_:_:) + +#app-main) + +- SwiftUI +- View +- tipImageStyle(\_:\_:) + +Instance Method + +# tipImageStyle(\_:\_:) + +Sets the style for a tip’s image. + +nonisolated + +_ primary: S1, +_ secondary: S2 + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipimagestyle(_:_:_:) + +#app-main) + +- SwiftUI +- View +- tipImageStyle(\_:\_:\_:) + +Instance Method + +# tipImageStyle(\_:\_:\_:) + +Sets the style for a tip’s image. + +nonisolated + +_ primary: S1, +_ secondary: S2, +_ tertiary: S3 + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the given style for TipView within the view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/view/tipviewstyle(_:) + +#app-main) + +- SwiftUI +- View +- tipViewStyle(\_:) + +Instance Method + +# tipViewStyle(\_:) + +Sets the given style for TipView within the view hierarchy. + +nonisolated + +## Parameters + +`style` + +The style to set. + +## Return Value + +A view that uses the specified style on its child views. + +## Discussion + +For more information on styling tips, see `TipKit/TipViewStyle`. + +## See Also + +### Providing tips + +Presents a popover tip on the modified view. + +Sets the tip’s view background to a style. Currently this only applies to inline tips, not popover tips. + +Sets the corner radius for an inline tip view. + +Sets the size for a tip’s image. + +Sets the style for a tip’s image. + +--- + +# https://developer.apple.com/documentation/swiftui/view/toolbaritemhidden(_:) + +#app-main) + +- SwiftUI +- View +- toolbarItemHidden(\_:) + +Instance Method + +# toolbarItemHidden(\_:) + +Hides an individual view within a control group toolbar item. + +nonisolated + +## Parameters + +`hidden` + +Whether the view in a control group toolbar item is hidden. + +## Discussion + +Use this modifier to hide individual views of a `ControlGroup` without hiding the entire group. On macOS and iOS, hidden items will be displayed during user customization. + +The following example displays a collaboration button in a group when there is an active collaboration session. + +struct ContentView { +@State private var inCollaboration = false + +var body: some View { +BrowserView() +.toolbar(id: "browserToolbar") { +ToolbarItem(id: "share") { +ControlGroup { +ShareButton() +CollaborationButton() +.toolbarItemHidden(!inCollaboration) +} +} +} +} +} + +--- + +# https://developer.apple.com/documentation/swiftui/view/transactiontask(_:action:) + +#app-main) + +- SwiftUI +- View +- transactionTask(\_:action:) + +Instance Method + +# transactionTask(\_:action:) + +Provides a task to perform before this view appears + +SecureElementCredentialSwiftUI + +nonisolated +func transactionTask( +_ configuration: CredentialTransaction.Configuration?, + +## Parameters + +`configuration` + +A configuration containing information about the transaction task. When the task is completed or an error is encountered while performing the task, the system invalidates this configuration, and the `CredentialTransaction` is invalidated. + +`action` + +A closure that will be called when `isPerformingTransaction` is `true`. It provides a `CredentialTransaction` instance that can be used to perform transactions. + +## Discussion + +This task provides an instance of a `CredentialTransaction` to be used to perform transactions. + +A typical client should use the APIs in the following sequence: + +1. `acquirePresentmentIntentAssertion()` prior to showing any proprietary payment UI + +2. `relinquish()` the assertion before invoking the transaction API + +3. `configuration.invalidate()` after presenting the credential + +4. Optionally, `acquirePresentmentIntentAssertion()` to finish up any proprietary payment UI + +5. `relinquish()` the assertion + +For example: + +struct TransactionView: View { +@State private var configuration: CredentialTransaction.Configuration? +private var assertion: PresentmentIntentAssertion // acquirePresentmentIntentAssertion() before transitioning into this view (step 1) +private var activeSession: CredentialSession +private var selectedCredential: Credential + +var body: some View { +VStack { +Button("Perform Transaction") { +guard let configuration else { +configuration = activeSession.configuration() +return +} + +configuration.invalidate() // step 3 +// Optional +assertion = try await session.acquirePresentmentIntentAssertion() // step 4 +// handle any proprietary UI +try await assertion.relinquish() // step 5 +// Optional end +} +.transactionTask(configuration) { transaction in +do { +try await assertion.relinquish() // step 2 +try await transaction.performTransaction(using: selectedCredential) +} catch { +// code to handle error +} +} +} +} +} + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +--- + +# https://developer.apple.com/documentation/swiftui/view/translationpresentation(ispresented:text:attachmentanchor:arrowedge:replacementaction:) + +#app-main) + +- SwiftUI +- View +- translationPresentation(isPresented:text:attachmentAnchor:arrowEdge:replacementAction:) + +Instance Method + +# translationPresentation(isPresented:text:attachmentAnchor:arrowEdge:replacementAction:) + +Presents a translation popover when a given condition is true. + +TranslationSwiftUI + +nonisolated +func translationPresentation( + +text: String, +attachmentAnchor: PopoverAttachmentAnchor = .rect(.bounds), +arrowEdge: Edge = .top, + +## Parameters + +`isPresented` + +A binding to a Boolean value that determines whether to present the popover. + +`text` + +The text to be translated. Changing this after the popover presents has no effect. + +`attachmentAnchor` + +The positioning anchor that defines the attachment point of the popover. The default is `bounds`. + +`arrowEdge` + +The edge of the `attachmentAnchor` that defines the location of the popover’s arrow in macOS. The default is `Edge.top`. iOS ignores this parameter. + +`replacementAction` + +An optional action to perform when someone interacts with the “Replace with Translation” button. The “Replace with Translation” button appears when you provide this action. + +## Discussion + +Use this method to show a system UI translation popover when the `translationVisible` Boolean variable is `true`. Attach this view modifier to the containing view holding the text to translate. Then set the `isPresented` Boolean binding to `true` when you want the popover to display. When you do, a system UI translation popover appears offering a translation. + +In the example below, the popover appears when the user toggles the `translationVisible` state variable by pressing the Translate button. + +struct ContentView: View { +@State private var translationVisible = false +private var originalText = "Hallo, Welt!" + +var body: some View { +VStack { +Text(verbatim: originalText) +.translationPresentation(isPresented: $translationVisible, text: originalText) +Button("Translate") { +translationVisible.toggle() +} +} +} +} + +To replace the original text with the translation, pass in a trailing closure to the `replacementAction` parameter. When you do, a Replace with Translation button appears in the system UI. When the user taps this button, the closure returns a translation of the text as a string. Use that string to update the original text with the translated text as shown below: + +struct ReplaceTranslation: View { +@State private var translationVisible = false +@State private var originalText = "Hallo, Welt!" + +var body: some View { +VStack(spacing: 20) { +TextField("Text to translate", text: $originalText, axis: .vertical) +.textFieldStyle(.roundedBorder) +.translationPresentation(isPresented: $translationVisible, text: originalText) { translatedString in +// Update the original text with the translated result. +originalText = translatedString +} +Button("Translate") { +translationVisible.toggle() +} +} +.padding() +} +} + +If the system can’t detect the source language, it asks the user to select the language to translate from. For a list of supported languages see `LanguageAvailability.supportedLanguages`. + +While this function does support long strings of text, it works best with short ones (no more than a couple of sentences or phrases in length). + +## See Also + +### Showing a translation + +Adds a task to perform before this view appears or when the translation configuration changes. + +Adds a task to perform before this view appears or when the specified source or target languages change. + +--- + +# https://developer.apple.com/documentation/swiftui/view/translationtask(_:action:) + +#app-main) + +- SwiftUI +- View +- translationTask(\_:action:) + +Instance Method + +# translationTask(\_:action:) + +Adds a task to perform before this view appears or when the translation configuration changes. + +TranslationSwiftUI + +nonisolated +func translationTask( +_ configuration: TranslationSession.Configuration?, + +## Parameters + +`configuration` + +A configuration for a `TranslationSession`. When this configuration is non-nil and changes. the `action` runs providing an instance of `TranslationSession` to perform translations. + +`action` + +A closure that runs when the `configuration` is non-nil and changes. This closure runs when the view appears if `configuration` is initially non-nil. It provides a `TranslationSession` instance to perform one or multiple translations. + +## Discussion + +This task provides an instance of `TranslationSession` to use in translations. Whenever `TranslationSession/Configuration` changes and isn’t `nil`, the closure `action` runs, providing a `TranslationSession` instance to perform one or more translations. + +For example, you can create a `TranslationSession/Configuration` in response to a button press to trigger translation: + +struct ContentView: View { +@State private var sourceText = "Hallo, Welt!" +var sourceLanguage: Locale.Language? +var targetLanguage: Locale.Language? + +@State private var targetText: String? +@State private var configuration: TranslationSession.Configuration? + +var body: some View { +VStack { +Text(targetText ?? sourceText) +Button("Translate") { +guard configuration == nil else { +configuration?.invalidate() +return +} + +configuration = TranslationSession.Configuration( +source: sourceLanguage, +target: targetLanguage) +} +.translationTask(configuration) { session in +Task { @MainActor in +do { +let response = try await session.translate(sourceText) +targetText = response.targetText +} catch { +// code to handle error +} +} +} +} +} +} + +The system throws a `fatalError` if you use a `TranslationSession` instance after the view it attaches to disappears, or if you use it after changing the `configuration`, causing the `action` closure to provide a new `TranslationSession` instance. + +## See Also + +### Showing a translation + +Presents a translation popover when a given condition is true. + +Adds a task to perform before this view appears or when the specified source or target languages change. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/translationtask(source:target:action:) + +#app-main) + +- SwiftUI +- View +- translationTask(source:target:action:) + +Instance Method + +# translationTask(source:target:action:) + +Adds a task to perform before this view appears or when the specified source or target languages change. + +TranslationSwiftUI + +nonisolated +func translationTask( +source: Locale.Language? = nil, +target: Locale.Language? = nil, + +## Parameters + +`source` + +The language the source content is in. If this is `nil` the session tries to identify the language, and prompt the user to pick the source language if it’s unclear. All text translated within the session should be in the same source language. Changing this value cancels previous tasks and creates a new one to perform translations again. + +`target` + +The language to translate content into. A `nil` value means the session picks a target according to the user’s `Locale.preferredLanguages`, and the `source`. Changing this value cancels previous tasks and create a new one to perform translations again. + +`action` + +A closure that runs when the view first appears, and when `source` or `target` change. It provides a `TranslationSession` instance to perform one or multiple translations. + +## Discussion + +This task provides an instance of `TranslationSession` to use to perform translations. + +If you need to perform new translations again with the same `source` and `target` language, it’s better to use `translationTask(_:action:)` and call `TranslationSession/Configuration/invalidate()`. + +For example, you can translate when content appears: + +struct ContentView: View { +var sourceText = "Hallo, Welt!" +var sourceLanguage: Locale.Language? +var targetLanguage: Locale.Language? + +@State private var targetText: String? + +var body: some View { +Text(targetText ?? sourceText) +.translationTask( +source: sourceLanguage, +target: targetLanguage +) { session in +Task { @MainActor in +do { +let response = try await session.translate(sourceText) +targetText = response.targetText +} catch { +// code to handle error +} +} +} +} +} + +The system throws a `fatalError` if you use a `TranslationSession` instance after the view it attaches to disappears, or if you use it after changing the `source` or `target` parameters, causing the `action` closure to provide a new `TranslationSession` instance. + +## See Also + +### Showing a translation + +Presents a translation popover when a given condition is true. + +Adds a task to perform before this view appears or when the translation configuration changes. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/verifyidentitywithwalletbuttonstyle(_:) + +#app-main) + +- SwiftUI +- View +- verifyIdentityWithWalletButtonStyle(\_:) + +Instance Method + +# verifyIdentityWithWalletButtonStyle(\_:) + +Sets the style to be used by the button. (see `PKIdentityButtonStyle`). + +PassKitSwiftUI + +nonisolated + +## See Also + +### Accessing Apple Pay and Wallet + +A view that displays a button for identity verification. + +Sets the button’s style. + +Sets the style to be used by the button. (see `PKAddPassButtonStyle`). + +Called when a user has entered or updated a coupon code. This is required if the user is being asked to provide a coupon code. + +Called when a payment method has changed and asks for an update payment request. If this modifier isn’t provided Wallet will assume the payment method is valid. + +Called when a user selected a shipping address. This is required if the user is being asked to provide a shipping contact. + +Called when a user selected a shipping method. This is required if the user is being asked to provide a shipping method. + +Sets the action on the PayLaterView. See `PKPayLaterAction`. + +Sets the display style on the PayLaterView. See `PKPayLaterDisplayStyle`. + +Sets the style to be used by the button. (see `PayWithApplePayButtonStyle`). + +Provides a task to perform before this view appears + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewbackforwardnavigationgestures(_:) + +#app-main) + +- SwiftUI +- View +- webViewBackForwardNavigationGestures(\_:) + +Instance Method + +# webViewBackForwardNavigationGestures(\_:) + +Determines whether horizontal swipe gestures trigger backward and forward page navigation. + +WebKitSwiftUI + +nonisolated + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewcontentbackground(_:) + +#app-main) + +- SwiftUI +- View +- webViewContentBackground(\_:) + +Instance Method + +# webViewContentBackground(\_:) + +Specifies the visibility of the webpage’s natural background color within this view. + +WebKitSwiftUI + +nonisolated + +## Parameters + +`visibility` + +The visibility to use for the background. + +## Discussion + +By default, WebViews are opaque, and use the page’s natural background color as their background color. Use this modifier if you would like to not use this behavior and instead provide a custom background using SwiftUI. + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewcontextmenu(menu:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewelementfullscreenbehavior(_:) + +#app-main) + +- SwiftUI +- View +- webViewElementFullscreenBehavior(\_:) + +Instance Method + +# webViewElementFullscreenBehavior(\_:) + +Determines whether a web view can display content full screen. + +WebKitSwiftUI + +nonisolated + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewlinkpreviews(_:) + +#app-main) + +- SwiftUI +- View +- webViewLinkPreviews(\_:) + +Instance Method + +# webViewLinkPreviews(\_:) + +Determines whether pressing a link displays a preview of the destination for the link. + +WebKitSwiftUI + +nonisolated + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewmagnificationgestures(_:) + +#app-main) + +- SwiftUI +- View +- webViewMagnificationGestures(\_:) + +Instance Method + +# webViewMagnificationGestures(\_:) + +Determines whether magnify gestures change the view’s magnification. + +WebKitSwiftUI + +nonisolated + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewonscrollgeometrychange(for:of:action:) + +#app-main) + +- SwiftUI +- View +- webViewOnScrollGeometryChange(for:of:action:) + +Instance Method + +# webViewOnScrollGeometryChange(for:of:action:) + +Adds an action to be performed when a value, created from a scroll geometry, changes. + +WebKitSwiftUI + +nonisolated + +for type: T.Type, + +## Parameters + +`type` + +The type of value transformed from a `ScrollGeometry`. + +`transform` + +A closure that transforms a `ScrollGeometry` to your type. + +`action` + +A closure to run when the transformed data changes. + +## Discussion + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewscrollinputbehavior(_:for:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewscrollposition(_:) + +#app-main) + +- SwiftUI +- View +- webViewScrollPosition(\_:) + +Instance Method + +# webViewScrollPosition(\_:) + +Associates a binding to a scroll position with the web view. + +WebKitSwiftUI + +nonisolated + +## Discussion + +--- + +# https://developer.apple.com/documentation/swiftui/view/webviewtextselection(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/windowresizeanchor(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/workoutpreview(_:ispresented:) + +#app-main) + +- SwiftUI +- View +- workoutPreview(\_:isPresented:) + +Instance Method + +# workoutPreview(\_:isPresented:) + +Presents a preview of the workout contents as a modal sheet + +WorkoutKitSwiftUI + +nonisolated +func workoutPreview( +_ workout: WorkoutPlan, + +## Parameters + +`workout` + +The `WorkoutContainer` the preview displays + +`isPresented` + +A binding to a Boolean value that determines whether to present the preview + +## Discussion + +struct WorkoutPreviewer: View { +let workout: WorkoutPlan +@State var presented: Bool = false +var body: some View { +Button { +isPresented = true +} label: { +WorkoutContainerView(workout) +} +.workoutPreview(workout, isPresented: $presented) +} +} + +## See Also + +### Accessing health data + +Asynchronously requests permission to read a data type that requires per-object authorization (such as vision prescriptions). + +Requests permission to read the specified HealthKit data types. + +Requests permission to save and read the specified HealthKit data types. + +--- + +# https://developer.apple.com/documentation/swiftui/view/writingdirection(strategy:) + +#app-main) + +- SwiftUI +- View +- writingDirection(strategy:) Beta + +Instance Method + +# writingDirection(strategy:) + +A modifier for the default text writing direction strategy in the view hierarchy. + +nonisolated + +## Discussion + +To control the writing direction explicitly, choose the `layoutBased` mode and set the `layoutDirection` to the appropriate value. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/view/writingtoolsaffordancevisibility(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/view/writingtoolsbehavior(_:) + + + +--- + +# https://developer.apple.com/documentation/swiftui/dynamicviewcontent + +- SwiftUI +- DynamicViewContent + +Protocol + +# DynamicViewContent + +A type of view that generates views from an underlying collection of data. + +## Topics + +### Managing the data + +`var data: Self.Data` + +The collection of underlying data. + +**Required** + +`associatedtype Data : Collection` + +The type of the underlying collection of data. + +### Responding to updates + +Sets the deletion action for the dynamic view. You must delete the corresponding item within `action`, as it will be called after the row has already been removed from the `List`. + +Sets the insert action for the dynamic view. + +Sets the move action for the dynamic view. + +### Deprecated symbols + +Deprecated + +### Instance Methods + +`func onInsert(of:perform:)` + +## Relationships + +### Inherits From + +- `View` + +### Conforming Types + +- `ForEach` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `View`. + +- `ModifiedContent` +Conforms when `Content` conforms to `DynamicViewContent` and `Modifier` conforms to `ViewModifier`. + +## See Also + +### Iterating over dynamic data + +`struct ForEach` + +A structure that computes views on demand from an underlying collection of identified data. + +`struct ForEachSectionCollection` + +A collection which allows a view to be treated as a collection of its sections in a for each loop. + +`struct ForEachSubviewCollection` + +A collection which allows a view to be treated as a collection of its subviews in a for each loop. + +--- + +# https://developer.apple.com/documentation/swiftui/insettableshape + + + +--- + +# https://developer.apple.com/documentation/swiftui/nsviewcontrollerrepresentable + + + +--- + +# https://developer.apple.com/documentation/swiftui/nsviewrepresentable + +- SwiftUI +- NSViewRepresentable + +Protocol + +# NSViewRepresentable + +A wrapper that you use to integrate an AppKit view into your SwiftUI view hierarchy. + +@MainActor @preconcurrency +protocol NSViewRepresentable : View where Self.Body == Never + +## Overview + +Use an `NSViewRepresentable` instance to create and manage an `NSView` object in your SwiftUI interface. Adopt this protocol in one of your app’s custom instances, and use its methods to create, update, and tear down your view. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your view with your app’s current state information. Use the teardown process to remove your view cleanly from your SwiftUI. For example, you might use the teardown process to notify other objects that the view is disappearing. + +To add your view into your SwiftUI interface, create your `NSViewRepresentable` instance and add it to your SwiftUI interface. The system calls the methods of your representable instance at appropriate times to create and update the view. The following example shows the inclusion of a custom `MyRepresentedCustomView` struct in the view hierarchy. + +struct ContentView: View { +var body: some View { +VStack { +Text("Global Sales") +MyRepresentedCustomView() +} +} +} + +The system doesn’t automatically communicate changes occurring within your view controller to other parts of your SwiftUI interface. When you want your view controller to coordinate with other SwiftUI views, you must provide a `Coordinator` object to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your view controller to any SwiftUI views. + +## Topics + +### Creating and updating the view + +Creates the view object and configures its initial state. + +**Required** + +`func updateNSView(Self.NSViewType, context: Self.Context)` + +Updates the state of the specified view with new information from SwiftUI. + +`typealias Context` + +`associatedtype NSViewType : NSView` + +The type of view to present. + +### Specifying a size + +Given a proposed size, returns the preferred size of the composite view. + +**Required** Default implementation provided. + +### Cleaning up the view + +`static func dismantleNSView(Self.NSViewType, coordinator: Self.Coordinator)` + +Cleans up the presented AppKit view (and coordinator) in anticipation of their removal. + +### Providing a custom coordinator object + +Creates the custom instance that you use to communicate changes from your view to other parts of your SwiftUI interface. + +`associatedtype Coordinator = Void` + +A type to coordinate with the view. + +### Performing layout + +`typealias LayoutOptions` + +## Relationships + +### Inherits From + +- `View` + +## See Also + +### Adding AppKit views to SwiftUI view hierarchies + +`struct NSViewRepresentableContext` + +Contextual information about the state of the system that you use to create and update your AppKit view. + +`protocol NSViewControllerRepresentable` + +A wrapper that you use to integrate an AppKit view controller into your SwiftUI interface. + +`struct NSViewControllerRepresentableContext` + +Contextual information about the state of the system that you use to create and update your AppKit view controller. + +--- + +# https://developer.apple.com/documentation/swiftui/shape + + + +--- + +# https://developer.apple.com/documentation/swiftui/shapeview + +- SwiftUI +- ShapeView + +Protocol + +# ShapeView + +A view that provides a shape that you can use for drawing operations. + +## Overview + +Use this type with the drawing methods on `Shape` to apply multiple fills and/or strokes to a shape. For example, the following code applies a fill and stroke to a capsule shape: + +Capsule() +.fill(.yellow) +.stroke(.blue, lineWidth: 8) + +## Topics + +### Getting the shape + +`var shape: Self.Content` + +The shape that this type draws and provides for other drawing operations. + +**Required** + +`associatedtype Content : Shape` + +The type of shape this can provide. + +### Modify the shape + +Fills this shape with a color or gradient. + +Traces the outline of this shape with a color or gradient. + +Returns a view that’s the result of insetting this view by half of its style’s line width. + +Returns a view that’s the result of filling an inner stroke of this view with the content you supply. + +## Relationships + +### Inherits From + +- `View` + +### Conforming Types + +- `FillShapeView` +- `StrokeBorderShapeView` +- `StrokeShapeView` + +## See Also + +### Defining shape behavior + +`protocol Shape` + +A 2D shape that you can use when drawing a view. + +`struct AnyShape` + +A type-erased shape value. + +`enum ShapeRole` + +Ways of styling a shape. + +`struct StrokeStyle` + +The characteristics of a stroke that traces a path. + +`struct StrokeShapeView` + +A shape provider that strokes its shape. + +`struct StrokeBorderShapeView` + +A shape provider that strokes the border of its shape. + +`struct FillStyle` + +A style for rasterizing vector shapes. + +`struct FillShapeView` + +A shape provider that fills its shape. + +--- + +# https://developer.apple.com/documentation/swiftui/uiviewcontrollerrepresentable + +- SwiftUI +- UIViewControllerRepresentable + +Protocol + +# UIViewControllerRepresentable + +A view that represents a UIKit view controller. + +@MainActor @preconcurrency +protocol UIViewControllerRepresentable : View where Self.Body == Never + +## Overview + +Use a `UIViewControllerRepresentable` instance to create and manage a `UIViewController` object in your SwiftUI interface. Adopt this protocol in one of your app’s custom instances, and use its methods to create, update, and tear down your view controller. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your view controller with your app’s current state information. Use the teardown process to remove your view controller cleanly from your SwiftUI. For example, you might use the teardown process to notify other objects that the view controller is disappearing. + +To add your view controller into your SwiftUI interface, create your `UIViewControllerRepresentable` instance and add it to your SwiftUI interface. The system calls the methods of your custom instance at appropriate times. + +The system doesn’t automatically communicate changes occurring within your view controller to other parts of your SwiftUI interface. When you want your view controller to coordinate with other SwiftUI views, you must provide a `Coordinator` instance to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your view controller to any SwiftUI views. + +## Topics + +### Creating and updating the view controller + +Creates the view controller object and configures its initial state. + +**Required** + +`func updateUIViewController(Self.UIViewControllerType, context: Self.Context)` + +Updates the state of the specified view controller with new information from SwiftUI. + +`typealias Context` + +`associatedtype UIViewControllerType : UIViewController` + +The type of view controller to present. + +### Specifying a size + +Given a proposed size, returns the preferred size of the composite view. + +**Required** Default implementation provided. + +### Cleaning up the view controller + +`static func dismantleUIViewController(Self.UIViewControllerType, coordinator: Self.Coordinator)` + +Cleans up the presented view controller (and coordinator) in anticipation of their removal. + +### Providing a custom coordinator object + +Creates the custom instance that you use to communicate changes from your view controller to other parts of your SwiftUI interface. + +`associatedtype Coordinator = Void` + +A type to coordinate with the view controller. + +### Performing layout + +`typealias LayoutOptions` + +## Relationships + +### Inherits From + +- `View` + +## See Also + +### Adding UIKit views to SwiftUI view hierarchies + +`protocol UIViewRepresentable` + +A wrapper for a UIKit view that you use to integrate that view into your SwiftUI view hierarchy. + +`struct UIViewRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view. + +`struct UIViewControllerRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view controller. + +--- + +# https://developer.apple.com/documentation/swiftui/uiviewrepresentable + +- SwiftUI +- UIViewRepresentable + +Protocol + +# UIViewRepresentable + +A wrapper for a UIKit view that you use to integrate that view into your SwiftUI view hierarchy. + +@MainActor @preconcurrency +protocol UIViewRepresentable : View where Self.Body == Never + +## Overview + +Use a `UIViewRepresentable` instance to create and manage a `UIView` object in your SwiftUI interface. Adopt this protocol in one of your app’s custom instances, and use its methods to create, update, and tear down your view. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your view with your app’s current state information. Use the teardown process to remove your view cleanly from your SwiftUI. For example, you might use the teardown process to notify other objects that the view is disappearing. + +To add your view into your SwiftUI interface, create your `UIViewRepresentable` instance and add it to your SwiftUI interface. The system calls the methods of your representable instance at appropriate times to create and update the view. The following example shows the inclusion of a custom `MyRepresentedCustomView` structure in the view hierarchy. + +struct ContentView: View { +var body: some View { +VStack { +Text("Global Sales") +MyRepresentedCustomView() +} +} +} + +The system doesn’t automatically communicate changes occurring within your view to other parts of your SwiftUI interface. When you want your view to coordinate with other SwiftUI views, you must provide a `Coordinator` instance to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your view to any SwiftUI views. + +## Topics + +### Creating and updating the view + +Creates the view object and configures its initial state. + +**Required** + +`func updateUIView(Self.UIViewType, context: Self.Context)` + +Updates the state of the specified view with new information from SwiftUI. + +`typealias Context` + +`associatedtype UIViewType : UIView` + +The type of view to present. + +### Specifying a size + +Given a proposed size, returns the preferred size of the composite view. + +**Required** Default implementation provided. + +### Cleaning up the view + +`static func dismantleUIView(Self.UIViewType, coordinator: Self.Coordinator)` + +Cleans up the presented UIKit view (and coordinator) in anticipation of their removal. + +### Providing a custom coordinator object + +Creates the custom instance that you use to communicate changes from your view to other parts of your SwiftUI interface. + +`associatedtype Coordinator = Void` + +A type to coordinate with the view. + +### Performing layout + +`typealias LayoutOptions` + +## Relationships + +### Inherits From + +- `View` + +## See Also + +### Adding UIKit views to SwiftUI view hierarchies + +`struct UIViewRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view. + +`protocol UIViewControllerRepresentable` + +A view that represents a UIKit view controller. + +`struct UIViewControllerRepresentableContext` + +Contextual information about the state of the system that you use to create and update your UIKit view controller. + +--- + +# https://developer.apple.com/documentation/swiftui/wkinterfaceobjectrepresentable + +- SwiftUI +- WKInterfaceObjectRepresentable + +Protocol + +# WKInterfaceObjectRepresentable + +A view that represents a WatchKit interface object. + +@MainActor @preconcurrency +protocol WKInterfaceObjectRepresentable : View where Self.Body == Never + +## Overview + +Use a `WKInterfaceObjectRepresentable` instance to create and manage a `WKInterfaceObject` in your SwiftUI interface. Adopt this protocol in one of your app’s custom instances, and use its methods to create, update, and tear down your interface object. The creation and update processes parallel the behavior of SwiftUI views, and you use them to configure your interface object with your app’s current state information. Use the teardown process to remove your interface object cleanly from your SwiftUI. For example, you might use the teardown process to notify other parts of your app that the interface object is disappearing. + +To add your interface object into your SwiftUI interface, create your `WKInterfaceObjectRepresentable` instance and add it to your SwiftUI interface. The system calls the methods of your representable instance at appropriate times to create and update the interface object. + +The system doesn’t automatically communicate changes occurring within your interface object to other parts of your SwiftUI interface. When you want your interface object to coordinate with other SwiftUI views, you must provide a `Coordinator` instance to facilitate those interactions. For example, you use a coordinator to forward target-action and delegate messages from your interface object to any SwiftUI views. + +## Topics + +### Creating and updating the interface object + +Creates a WatchKit interface object and configures its initial state. + +**Required** + +`func updateWKInterfaceObject(Self.WKInterfaceObjectType, context: Self.Context)` + +Updates the presented WatchKit interface object (and its coordinator) to the latest configuration. + +`typealias Context` + +### Cleaning up the interface object + +`static func dismantleWKInterfaceObject(Self.WKInterfaceObjectType, coordinator: Self.Coordinator)` + +Cleans up the presented WatchKit interface object (and its coordinator) in anticipation of their removal. + +**Required** Default implementation provided. + +### Providing a custom coordinator object + +Creates the custom instance that you use to communicate changes from your interface object to other parts of your SwiftUI interface. + +`associatedtype Coordinator = Void` + +A type to coordinate with the WatchKit interface object. + +`associatedtype WKInterfaceObjectType : WKInterfaceObject` + +The type of WatchKit interface object to be presented. + +## Relationships + +### Inherits From + +- `View` + +## See Also + +### Adding WatchKit views to SwiftUI view hierarchies + +`struct WKInterfaceObjectRepresentableContext` + +Contextual information about the state of the system that you use to create and update your WatchKit interface object. + +--- + +# https://developer.apple.com/documentation/swiftui/angulargradient + + + +--- + +# https://developer.apple.com/documentation/swiftui/anyshape + +- SwiftUI +- AnyShape + +Structure + +# AnyShape + +A type-erased shape value. + +@frozen +struct AnyShape + +## Overview + +You can use this type to dynamically switch between shape types: + +struct MyClippedView: View { +var isCircular: Bool + +var body: some View { +OtherView().clipShape(isCircular ? +AnyShape(Circle()) : AnyShape(Capsule())) +} +} + +## Topics + +### Creating a shape + +Create an any shape instance from a shape. + +## Relationships + +### Conforms To + +- `Animatable` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Defining shape behavior + +`protocol ShapeView` + +A view that provides a shape that you can use for drawing operations. + +`protocol Shape` + +A 2D shape that you can use when drawing a view. + +`enum ShapeRole` + +Ways of styling a shape. + +`struct StrokeStyle` + +The characteristics of a stroke that traces a path. + +`struct StrokeShapeView` + +A shape provider that strokes its shape. + +`struct StrokeBorderShapeView` + +A shape provider that strokes the border of its shape. + +`struct FillStyle` + +A style for rasterizing vector shapes. + +`struct FillShapeView` + +A shape provider that fills its shape. + +--- + +# https://developer.apple.com/documentation/swiftui/anyview + +- SwiftUI +- AnyView + +Structure + +# AnyView + +A type-erased view. + +@frozen +struct AnyView + +## Overview + +An `AnyView` allows changing the type of view used in a given view hierarchy. Whenever the type of view used with an `AnyView` changes, the old hierarchy is destroyed and a new hierarchy is created for the new type. + +## Topics + +### Creating a view + +Create an instance that type-erases `view`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Supporting view types + +`struct EmptyView` + +A view that doesn’t contain any content. + +`struct EquatableView` + +A view type that compares itself against its previous value and prevents its child updating if its new value is the same as its old value. + +`struct SubscriptionView` + +A view that subscribes to a publisher with an action. + +`struct TupleView` + +A View created from a swift tuple of View values. + +--- + +# https://developer.apple.com/documentation/swiftui/asyncimage + +- SwiftUI +- AsyncImage + +Structure + +# AsyncImage + +A view that asynchronously loads and displays an image. + +## Overview + +This view uses the shared `URLSession` instance to load an image from the specified URL, and then display it. For example, you can display an icon that’s stored on a server: + +AsyncImage(url: URL(string: "https://example.com/icon.png")) +.frame(width: 200, height: 200) + +Until the image loads, the view displays a standard placeholder that fills the available space. After the load completes successfully, the view updates to display the image. In the example above, the icon is smaller than the frame, and so appears smaller than the placeholder. + +You can specify a custom placeholder using `init(url:scale:content:placeholder:)`. With this initializer, you can also use the `content` parameter to manipulate the loaded image. For example, you can add a modifier to make the loaded image resizable: + +AsyncImage(url: URL(string: "https://example.com/icon.png")) { image in +image.resizable() +} placeholder: { +ProgressView() +} +.frame(width: 50, height: 50) + +For this example, SwiftUI shows a `ProgressView` first, and then the image scaled to fit in the specified frame: + +To gain more control over the loading process, use the `init(url:scale:transaction:content:)` initializer, which takes a `content` closure that receives an `AsyncImagePhase` to indicate the state of the loading operation. Return a view that’s appropriate for the current phase: + +AsyncImage(url: URL(string: "https://example.com/icon.png")) { phase in +if let image = phase.image { +image // Displays the loaded image. +} else if phase.error != nil { +Color.red // Indicates an error. +} else { +Color.blue // Acts as a placeholder. +} +} + +## Topics + +### Loading an image + +`init(url: URL?, scale: CGFloat)` + +Loads and displays an image from the specified URL. + +Loads and displays a modifiable image from the specified URL using a custom placeholder until the image loads. + +### Loading an image in phases + +Loads and displays a modifiable image from the specified URL in phases. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Loading images asynchronously + +`enum AsyncImagePhase` + +The current phase of the asynchronous image loading operation. + +--- + +# https://developer.apple.com/documentation/swiftui/button + + + +--- + +# https://developer.apple.com/documentation/swiftui/buttonbordershape + +- SwiftUI +- ButtonBorderShape + +Structure + +# ButtonBorderShape + +A shape used to draw a button’s border. + +struct ButtonBorderShape + +## Overview + +Use the `buttonBorderShape(_:)` view modifier to apply the shape to bordered buttons within a view hierarchy. + +## Topics + +### Getting border shapes + +`static let automatic: ButtonBorderShape` + +A shape that defers to the system to determine an appropriate shape for the given context and platform. + +`static let capsule: ButtonBorderShape` + +A capsule shape. + +`static let circle: ButtonBorderShape` + +A circular shape. + +`static let roundedRectangle: ButtonBorderShape` + +A rounded rectangle shape. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `Equatable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Creating buttons + +`struct Button` + +A control that initiates an action. + +`func buttonStyle(_:)` + +Sets the style for buttons within this view to a button style with a custom appearance and standard interaction behavior. + +Sets the border shape for buttons in this view. + +Sets whether buttons in this view should repeatedly trigger their actions on prolonged interactions. + +`var buttonRepeatBehavior: ButtonRepeatBehavior` + +Whether buttons with this associated environment should repeatedly trigger their actions on prolonged interactions. + +`struct ButtonRole` + +A value that describes the purpose of a button. + +`struct ButtonRepeatBehavior` + +The options for controlling the repeatability of button actions. + +`struct ButtonSizing` Beta + +--- + +# https://developer.apple.com/documentation/swiftui/buttonstyleconfiguration/label-swift.struct + +- SwiftUI +- ButtonStyleConfiguration +- ButtonStyleConfiguration.Label + +Structure + +# ButtonStyleConfiguration.Label + +A type-erased label of a button. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring a button’s label + +`let label: ButtonStyleConfiguration.Label` + +A view that describes the effect of pressing the button. + +--- + +# https://developer.apple.com/documentation/swiftui/canvas + +- SwiftUI +- Canvas + +Structure + +# Canvas + +A view type that supports immediate mode drawing. + +## Overview + +Use a canvas to draw rich and dynamic 2D graphics inside a SwiftUI view. The canvas passes a `GraphicsContext` to the closure that you use to perform immediate mode drawing operations. The canvas also passes a `CGSize` value that you can use to customize what you draw. For example, you can use the context’s `stroke(_:with:lineWidth:)` command to draw a `Path` instance: + +Canvas { context, size in +context.stroke( +Path(ellipseIn: CGRect(origin: .zero, size: size)), +with: .color(.green), +lineWidth: 4) +} +.frame(width: 300, height: 200) +.border(Color.blue) + +The example above draws the outline of an ellipse that exactly inscribes a canvas with a blue border: + +In addition to outlined and filled paths, you can draw images, text, and complete SwiftUI views. To draw views, use the `init(opaque:colorMode:rendersAsynchronously:renderer:symbols:)` method to supply views that you can reference from inside the renderer. You can also add masks, apply filters, perform transforms, control blending, and more. For information about how to draw, see `GraphicsContext`. + +A canvas doesn’t offer interactivity or accessibility for individual elements, including for views that you pass in as symbols. However, it might provide better performance for a complex drawing that involves dynamic data. Use a canvas to improve performance for a drawing that doesn’t primarily involve text or require interactive elements. + +## Topics + +### Creating a canvas + +Creates and configures a canvas. + +Creates and configures a canvas that you supply with renderable child views. + +### Managing opacity and color + +`var isOpaque: Bool` + +A Boolean that indicates whether the canvas is fully opaque. + +`var colorMode: ColorRenderingMode` + +The working color space and storage format of the canvas. + +### Referencing symbols + +`var symbols: Symbols` + +A view that provides child views that you can use in the drawing callback. + +### Rendering + +`var rendersAsynchronously: Bool` + +A Boolean that indicates whether the canvas can present its contents to its parent view asynchronously. + +The drawing callback that you use to draw into the canvas. + +## Relationships + +### Conforms To + +- `Copyable` +- `View` +Conforms when `Symbols` conforms to `View`. + +## See Also + +### Immediate mode drawing + +Add Rich Graphics to Your SwiftUI App + +Make your apps stand out by adding background materials, vibrancy, custom graphics, and animations. + +`struct GraphicsContext` + +An immediate mode drawing destination, and its current state. + +--- + +# https://developer.apple.com/documentation/swiftui/capsule + + + +--- + +# https://developer.apple.com/documentation/swiftui/circle + + + +--- + +# https://developer.apple.com/documentation/swiftui/color + +- SwiftUI +- Color + +Structure + +# Color + +A representation of a color that adapts to a given context. + +@frozen +struct Color + +## Mentioned in + +Laying out a simple view + +## Overview + +You can create a color in one of several ways: + +- Load a color from an Asset Catalog: + +let aqua = Color("aqua") // Looks in your app's main bundle by default. + +- Specify component values, like red, green, and blue; hue, saturation, and brightness; or white level: + +let skyBlue = Color(red: 0.4627, green: 0.8392, blue: 1.0) +let lemonYellow = Color(hue: 0.1639, saturation: 1, brightness: 1) +let steelGray = Color(white: 0.4745) + +- Create a color instance from another color, like a `UIColor` or an `NSColor`: + +#if os(iOS) +let linkColor = Color(uiColor: .link) +#elseif os(macOS) +let linkColor = Color(nsColor: .linkColor) +#endif + +- Use one of a palette of predefined colors, like `black`, `green`, and `purple`. + +Some view modifiers can take a color as an argument. For example, `foregroundStyle(_:)` uses the color you provide to set the foreground color for view elements, like text or SF Symbols: + +Image(systemName: "leaf.fill") +.foregroundStyle(Color.green) + +Because SwiftUI treats colors as `View` instances, you can also directly add them to a view hierarchy. For example, you can layer a rectangle beneath a sun image using colors defined above: + +ZStack { +skyBlue +Image(systemName: "sun.max.fill") +.foregroundStyle(lemonYellow) +} +.frame(width: 200, height: 100) + +A color used as a view expands to fill all the space it’s given, as defined by the frame of the enclosing `ZStack` in the above example: + +SwiftUI only resolves a color to a concrete value just before using it in a given environment. This enables a context-dependent appearance for system defined colors, or those that you load from an Asset Catalog. For example, a color can have distinct light and dark variants that the system chooses from at render time. + +## Topics + +### Creating a color + +`init(String, bundle: Bundle?)` + +Creates a color from a color set that you indicate by name. + +`init(_:)` + +Creates a constant color with the values specified by the resolved color. + +Evaluates this color to a resolved color given the current `context`. + +### Creating a color from component values + +`init(hue: Double, saturation: Double, brightness: Double, opacity: Double)` + +Creates a constant color from hue, saturation, and brightness values. + +`init(Color.RGBColorSpace, white: Double, opacity: Double)` + +Creates a constant grayscale color. + +`init(Color.RGBColorSpace, red: Double, green: Double, blue: Double, opacity: Double)` + +Creates a constant color from red, green, and blue component values. + +`enum RGBColorSpace` + +A profile that specifies how to interpret a color value for display. + +### Creating a color from another color + +`init(uiColor: UIColor)` + +Creates a color from a UIKit color. + +`init(nsColor: NSColor)` + +Creates a color from an AppKit color. + +`init(cgColor: CGColor)` + +Creates a color from a Core Graphics color. + +### Getting standard colors + +`static let black: Color` + +A black color suitable for use in UI elements. + +`static let blue: Color` + +A context-dependent blue color suitable for use in UI elements. + +`static let brown: Color` + +A context-dependent brown color suitable for use in UI elements. + +`static let clear: Color` + +A clear color suitable for use in UI elements. + +`static let cyan: Color` + +A context-dependent cyan color suitable for use in UI elements. + +`static let gray: Color` + +A context-dependent gray color suitable for use in UI elements. + +`static let green: Color` + +A context-dependent green color suitable for use in UI elements. + +`static let indigo: Color` + +A context-dependent indigo color suitable for use in UI elements. + +`static let mint: Color` + +A context-dependent mint color suitable for use in UI elements. + +`static let orange: Color` + +A context-dependent orange color suitable for use in UI elements. + +`static let pink: Color` + +A context-dependent pink color suitable for use in UI elements. + +`static let purple: Color` + +A context-dependent purple color suitable for use in UI elements. + +`static let red: Color` + +A context-dependent red color suitable for use in UI elements. + +`static let teal: Color` + +A context-dependent teal color suitable for use in UI elements. + +`static let white: Color` + +A white color suitable for use in UI elements. + +`static let yellow: Color` + +A context-dependent yellow color suitable for use in UI elements. + +### Getting semantic colors + +`static var accentColor: Color` + +A color that reflects the accent color of the system or app. + +`static let primary: Color` + +The color to use for primary content. + +`static let secondary: Color` + +The color to use for secondary content. + +### Modifying a color + +Multiplies the opacity of the color by the given amount. + +`var gradient: AnyGradient` + +Returns the standard gradient for the color `self`. + +Returns a version of self mixed with `rhs` by the amount specified by `fraction`. + +Returns a new color with an exposure adjustment applied. + +Beta + +Creates a new color with specified HDR content headroom. + +### Working with high dynamic range (HDR) colors + +Evaluates this color to a resolved color with content headroom, given a set of environment values. / + +`struct ResolvedHDR` + +A concrete color value, including HDR headroom information. + +### Describing a color + +`var description: String` + +A textual representation of the color. + +### Comparing colors + +Indicates whether two colors are equal. + +`func hash(into: inout Hasher)` + +Hashes the essential components of the color by feeding them into the given hash function. + +### Deprecated symbols + +`var cgColor: CGColor?` + +A Core Graphics representation of the color, if available. + +Deprecated + +## Relationships + +### Conforms To + +- `Copyable` +- `CustomStringConvertible` +- `Equatable` +- `Hashable` +- `Sendable` +- `SendableMetatype` +- `ShapeStyle` +- `Transferable` +- `View` + +## See Also + +### Setting a color + +`func tint(_:)` + +Sets the tint color within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/colorpicker + +- SwiftUI +- ColorPicker + +Structure + +# ColorPicker + +A control used to select a color from the system color picker UI. + +## Overview + +The color picker provides a color well that shows the currently selected color, and displays the larger system color picker that allows users to select a new color. + +By default color picker supports colors with opacity; to disable opacity support, set the `supportsOpacity` parameter to `false`. In this mode the color picker won’t show controls for adjusting the opacity of the selected color, and strips out opacity from any color set programmatically or selected from the user’s system favorites. + +You use `ColorPicker` by embedding it inside a view hierarchy and initializing it with a title string and a `Binding` to a `Color`: + +struct FormattingControls: View { +@State private var bgColor = +Color(.sRGB, red: 0.98, green: 0.9, blue: 0.2) + +var body: some View { +VStack { +ColorPicker("Alignment Guides", selection: $bgColor) +} +} +} + +## Topics + +### Creating a color picker + +`init(_:selection:supportsOpacity:)` + +Creates a color picker with a text label generated from a title string key. + +`init(selection:supportsOpacity:label:)` + +Creates an instance that selects a color. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/containerrelativeshape + +- SwiftUI +- ContainerRelativeShape + +Structure + +# ContainerRelativeShape + +A shape that is replaced by an inset version of the current container shape. If no container shape was defined, is replaced by a rectangle. + +@frozen +struct ContainerRelativeShape + +## Topics + +### Creating the shape + +`init()` + +## Relationships + +### Conforms To + +- `Animatable` +- `BitwiseCopyable` +- `Copyable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Setting a container shape + +Sets the container shape to use for any container relative shape within this view. + +`protocol InsettableShape` + +A shape type that is able to inset itself to produce another shape. + +--- + +# https://developer.apple.com/documentation/swiftui/contentunavailableview + +- SwiftUI +- ContentUnavailableView + +Structure + +# ContentUnavailableView + +An interface, consisting of a label and additional content, that you display when the content of your app is unavailable to users. + +## Overview + +It is recommended to use `ContentUnavailableView` in situations where a view’s content cannot be displayed. That could be caused by a network error, a list without items, a search that returns no results etc. + +You create an `ContentUnavailableView` in its simplest form, by providing a label and some additional content such as a description or a call to action: + +ContentUnavailableView { +Label("No Mail", systemImage: "tray.fill") +} description: { +Text("New mails you receive will appear here.") +} + +The system provides default `ContentUnavailableView` s that you can use in specific situations. The example below illustrates the usage of the `search` view: + +struct ContentView: View { +@ObservedObject private var viewModel = ContactsViewModel() + +var body: some View { +NavigationStack { +List { +ForEach(viewModel.searchResults) { contact in +NavigationLink { +ContactsView(contact) +} label: { +Text(contact.name) +} +} +} +.navigationTitle("Contacts") +.searchable(text: $viewModel.searchText) +.overlay { +if searchResults.isEmpty { +ContentUnavailableView.search +} +} +} +} +} + +## Topics + +### Getting built-in unavailable views + +Creates a `ContentUnavailableView` instance that conveys a search state. + +### Creating an unavailable view + +Creates an interface, consisting of a label and additional content, that you display when the content of your app is unavailable to users. + +`init(_:image:description:)` + +Creates an interface, consisting of a title generated from a localized string, an image and additional content, that you display when the content of your app is unavailable to users. + +`init(_:systemImage:description:)` + +Creates an interface, consisting of a title generated from a localized string, a system icon image and additional content, that you display when the content of your app is unavailable to users. + +### Supporting types + +`struct SearchUnavailableContent` + +A structure that represents the body of a static placeholder search view. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/controlgroup + +- SwiftUI +- ControlGroup + +Structure + +# ControlGroup + +A container view that displays semantically-related controls in a visually-appropriate manner for the context + +## Mentioned in + +Populating SwiftUI menus with adaptive controls + +## Overview + +You can provide an optional label to this view that describes its children. This view may be used in different ways depending on the surrounding context. For example, when you place the control group in a toolbar item, SwiftUI uses the label when the group is moved to the toolbar’s overflow menu. + +ContentView() +.toolbar(id: "items") { +ToolbarItem(id: "media") { +ControlGroup { +MediaButton() +ChartButton() +GraphButton() +} label: { +Label("Plus", systemImage: "plus") +} +} +} + +## Topics + +### Creating a control group + +Creates a new ControlGroup with the specified children + +Creates a new control group with the specified content and a label. + +`init(_:content:)` + +Creates a new control group with the specified content that generates its label from a string. + +### Creating a control group with an image + +`init(_:image:content:)` + +Creates a new control group with the specified content that generates its label from a string and image name. + +`init(_:systemImage:content:)` + +### Creating a configured control group + +`init(ControlGroupStyleConfiguration)` + +Creates a control group based on a style configuration. + +### Supporting types + +`struct LabeledControlGroupContent` + +A view that represents the body of a control group with a specified label. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Presenting a group of controls + +Sets the style for control groups within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/controlgroupstyleconfiguration/content-swift.struct + +- SwiftUI +- ControlGroupStyleConfiguration +- ControlGroupStyleConfiguration.Content + +Structure + +# ControlGroupStyleConfiguration.Content + +A type-erased content of a `ControlGroup`. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the content + +`let content: ControlGroupStyleConfiguration.Content` + +A view that represents the content of the `ControlGroup`. + +--- + +# https://developer.apple.com/documentation/swiftui/controlgroupstyleconfiguration/label-swift.struct + +- SwiftUI +- ControlGroupStyleConfiguration +- ControlGroupStyleConfiguration.Label + +Structure + +# ControlGroupStyleConfiguration.Label + +A type-erased label of a `ControlGroup`. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the label + +`let label: ControlGroupStyleConfiguration.Label` + +A view that provides the optional label of the `ControlGroup`. + +--- + +# https://developer.apple.com/documentation/swiftui/datepicker + +- SwiftUI +- DatePicker + +Structure + +# DatePicker + +A control for selecting an absolute date. + +## Mentioned in + +Laying out a simple view + +## Overview + +Use a `DatePicker` when you want to provide a view that allows the user to select a calendar date, and optionally a time. The view binds to a `Date` instance. + +The following example creates a basic `DatePicker`, which appears on iOS as text representing the date. This example limits the display to only the calendar date, not the time. When the user taps or clicks the text, a calendar view animates in, from which the user can select a date. When the user dismisses the calendar view, the view updates the bound `Date`. + +@State private var date = Date() + +var body: some View { +DatePicker( +"Start Date", +selection: $date, +displayedComponents: [.date] +) +} + +For cases where adding a subtitle to the label is desired, use a view builder that creates multiple `Text` views where the first text represents the title and the second text represents the subtitle: + +var body: some View { +DatePicker(selection: $date) { +Text("Start Date") +Text("Select the starting date for the event") +} +} + +You can limit the `DatePicker` to specific ranges of dates, allowing selections only before or after a certain date, or between two dates. The following example shows a date-and-time picker that only permits selections within the year 2021 (in the `UTC` time zone). + +let calendar = Calendar.current +let startComponents = DateComponents(year: 2021, month: 1, day: 1) +let endComponents = DateComponents(year: 2021, month: 12, day: 31, hour: 23, minute: 59, second: 59) +return calendar.date(from:startComponents)! +... +calendar.date(from:endComponents)! +}() + +var body: some View { +DatePicker( +"Start Date", +selection: $date, +in: dateRange, +displayedComponents: [.date, .hourAndMinute] +) +} + +### Styling date pickers + +To use a different style of date picker, use the `datePickerStyle(_:)` view modifier. The following example shows the graphical date picker style. + +var body: some View { +DatePicker( +"Start Date", +selection: $date, +displayedComponents: [.date] +) +.datePickerStyle(.graphical) +} + +## Topics + +### Creating a date picker for any date + +`init(_:selection:displayedComponents:)` + +Creates an instance that selects a `Date` with an unbounded range. + +### Creating a date picker for specific dates + +`init(_:selection:in:displayedComponents:)` + +Creates an instance that selects a `Date` in a closed range. + +`init(selection:in:displayedComponents:label:)` + +### Setting date picker components + +`typealias Components` + +`struct DatePickerComponents` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Choosing dates + +Sets the style for date pickers within this view. + +`struct MultiDatePicker` + +A control for picking multiple dates. + +`var calendar: Calendar` + +The current calendar that views should use when handling dates. + +`var timeZone: TimeZone` + +The current time zone that views should use when handling dates. + +--- + +# https://developer.apple.com/documentation/swiftui/datepickerstyleconfiguration/label-swift.struct + +- SwiftUI +- DatePickerStyleConfiguration +- DatePickerStyleConfiguration.Label + +Structure + +# DatePickerStyleConfiguration.Label + +A type-erased label of a `DatePicker`. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Labeling the date picker + +`let label: DatePickerStyleConfiguration.Label` + +A description of the `DatePicker`. + +`var displayedComponents: DatePickerComponents` + +The date components that the user is able to view and edit. + +--- + +# https://developer.apple.com/documentation/swiftui/debugreplaceableview + +- SwiftUI +- DebugReplaceableView Beta + +Structure + +# DebugReplaceableView + +Erases view opaque result types in debug builds. + +struct DebugReplaceableView + +## Overview + +You don’t use this type directly. Instead SwiftUI creates this type on your behalf when building in debug mode. + +When in debug builds, SwiftUI will erase all opaque result types to `DebugReplaceableView`. This allows developer tools, such as Xcode Previews, to replace the definition of the view without fully rebuilding. + +As such, seeing this type in traces and the view debugger is expected when building for debugging. This type erasure can impact performance, especially when dealing with dynamic content (like content generated by a ForEach, or List) so any performance testing should be done in release mode. + +This type acts similarly to an `AnyView` in that it type-erases its content, however it depends on the underlying type of the value not actually changing as it is in place of an opaque result type. As such, it _should not be used in app code_. + +## Topics + +### Initializers + +Creates a debug replaceable view erasing the given view. + +Deprecated + +## Relationships + +### Conforms To + +- `View` + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/defaultbuttonlabel + +- SwiftUI +- DefaultButtonLabel Beta + +Structure + +# DefaultButtonLabel + +The default label to use for a button. + +struct DefaultButtonLabel + +## Overview + +You don’t use this type directly. Instead, the system creates it automatically when you construct certain types of `Button`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Indicating a value + +`struct Gauge` + +A view that shows a value within a range. + +Sets the style for gauges within this view. + +`struct ProgressView` + +A view that shows the progress toward completion of a task. + +Sets the style for progress views in this view. + +`struct DefaultDateProgressLabel` + +The default type of the current value label when used by a date-relative progress view. + +Beta Software + +This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software. + +Learn more about using Apple's beta software + +--- + +# https://developer.apple.com/documentation/swiftui/defaultdateprogresslabel + +- SwiftUI +- DefaultDateProgressLabel + +Structure + +# DefaultDateProgressLabel + +The default type of the current value label when used by a date-relative progress view. + +struct DefaultDateProgressLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Indicating a value + +`struct Gauge` + +A view that shows a value within a range. + +Sets the style for gauges within this view. + +`struct ProgressView` + +A view that shows the progress toward completion of a task. + +Sets the style for progress views in this view. + +`struct DefaultButtonLabel` + +The default label to use for a button. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/defaultsettingslinklabel + +- SwiftUI +- DefaultSettingsLinkLabel + +Structure + +# DefaultSettingsLinkLabel + +The default label to use for a settings link. + +struct DefaultSettingsLinkLabel + +## Overview + +You don’t use this type directly. Instead, the system creates it automatically when you construct a `SettingsLink` with the default label. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/defaultsharelinklabel + +- SwiftUI +- DefaultShareLinkLabel + +Structure + +# DefaultShareLinkLabel + +The default label used for a share link. + +struct DefaultShareLinkLabel + +## Overview + +You don’t use this type directly. Instead, `ShareLink` uses it automatically depending on how you create a share link. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/defaulttablabel + +- SwiftUI +- DefaultTabLabel + +Structure + +# DefaultTabLabel + +The default label to use for a tab or tab section. + +struct DefaultTabLabel + +## Overview + +You don’t use this type directly. Instead, the system creates it automatically when you construct a `Tab` or `TabSection`. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/defaultwindowvisibilitytogglelabel + + + +--- + +# https://developer.apple.com/documentation/swiftui/disclosuregroup + +- SwiftUI +- DisclosureGroup + +Structure + +# DisclosureGroup + +A view that shows or hides another content view, based on the state of a disclosure control. + +## Mentioned in + +Displaying data in lists + +## Overview + +A disclosure group view consists of a label to identify the contents, and a control to show and hide the contents. Showing the contents puts the disclosure group into the “expanded” state, and hiding them makes the disclosure group “collapsed”. + +In the following example, a disclosure group contains two toggles and an embedded disclosure group. The top level disclosure group exposes its expanded state with the bound property, `topLevelExpanded`. By expanding the disclosure group, the user can use the toggles to update the state of the `toggleStates` structure. + +struct ToggleStates { +var oneIsOn: Bool = false +var twoIsOn: Bool = true +} +@State private var toggleStates = ToggleStates() +@State private var topExpanded: Bool = true + +var body: some View { +DisclosureGroup("Items", isExpanded: $topExpanded) { +Toggle("Toggle 1", isOn: $toggleStates.oneIsOn) +Toggle("Toggle 2", isOn: $toggleStates.twoIsOn) +DisclosureGroup("Sub-items") { +Text("Sub-item 1") +} +} +} + +## Topics + +### Creating a disclosure group + +`init(_:content:)` + +Creates a disclosure group, using a provided localized string key to create a text view for the label. + +Creates a disclosure group with the given label and content views. + +`init(_:isExpanded:content:)` + +Creates a disclosure group, using a provided localized string key to create a text view for the label, and a binding to the expansion state (expanded or collapsed). + +Creates a disclosure group with the given label and content views, and a binding to the expansion state (expanded or collapsed). + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Disclosing information progressively + +`struct OutlineGroup` + +A structure that computes views and disclosure groups on demand from an underlying collection of tree-structured, identified data. + +Sets the style for disclosure groups within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/disclosuregroupstyleconfiguration/content-swift.struct + +- SwiftUI +- DisclosureGroupStyleConfiguration +- DisclosureGroupStyleConfiguration.Content + +Structure + +# DisclosureGroupStyleConfiguration.Content + +A type-erased content of a disclosure group. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the content + +`let content: DisclosureGroupStyleConfiguration.Content` + +The content of the disclosure group. + +--- + +# https://developer.apple.com/documentation/swiftui/disclosuregroupstyleconfiguration/label-swift.struct + +- SwiftUI +- DisclosureGroupStyleConfiguration +- DisclosureGroupStyleConfiguration.Label + +Structure + +# DisclosureGroupStyleConfiguration.Label + +A type-erased label of a disclosure group. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the label + +`let label: DisclosureGroupStyleConfiguration.Label` + +The label for the disclosure group. + +--- + +# https://developer.apple.com/documentation/swiftui/divider + +- SwiftUI +- Divider + +Structure + +# Divider + +A visual element that can be used to separate other content. + +struct Divider + +## Mentioned in + +Building layouts with stack views + +Populating SwiftUI menus with adaptive controls + +## Overview + +When contained in a stack, the divider extends across the minor axis of the stack, or horizontally when not in a stack. + +## Topics + +### Creating a divider + +`init()` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Separators + +`struct Spacer` + +A flexible space that expands along the major axis of its containing stack layout, or on both axes if not contained in a stack. + +--- + +# https://developer.apple.com/documentation/swiftui/editbutton + +- SwiftUI +- EditButton + +Structure + +# EditButton + +A button that toggles the edit mode environment value. + +struct EditButton + +## Overview + +An edit button toggles the environment’s `editMode` value for content within a container that supports edit mode. In the following example, an edit button placed inside a `NavigationView` supports editing of a `List`: + +@State private var fruits = [\ +"Apple",\ +"Banana",\ +"Papaya",\ +"Mango"\ +] + +var body: some View { +NavigationView { +List { +ForEach(fruits, id: \.self) { fruit in +Text(fruit) +} +.onDelete { fruits.remove(atOffsets: $0) } +.onMove { fruits.move(fromOffsets: $0, toOffset: $1) } +} +.navigationTitle("Fruits") +.toolbar { +EditButton() +} +} +} + +Because the `ForEach` in the above example defines behaviors for `onDelete(perform:)` and `onMove(perform:)`, the editable list displays the delete and move UI when the user taps Edit. Notice that the Edit button displays the title “Done” while edit mode is active: + +You can also create custom views that react to changes in the edit mode state, as described in `EditMode`. + +## Topics + +### Creating an edit button + +`init()` + +Creates an Edit button instance. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating special-purpose buttons + +`struct PasteButton` + +A system button that reads items from the pasteboard and delivers it to a closure. + +`struct RenameButton` + +A button that triggers a standard rename action. + +--- + +# https://developer.apple.com/documentation/swiftui/editablecollectioncontent + +- SwiftUI +- EditableCollectionContent + +Structure + +# EditableCollectionContent + +An opaque wrapper view that adds editing capabilities to a row in a list. + +## Overview + +You don’t use this type directly. Instead SwiftUI creates this type on your behalf. + +## Relationships + +### Conforms To + +- `Copyable` +- `View` +Conforms when `Content` conforms to `View`, `Data` conforms to `Copyable`, and `Data` conforms to `Escapable`. + +## See Also + +### Editing a list + +Adds a condition for whether the view’s view hierarchy is movable. + +Adds a condition for whether the view’s view hierarchy is deletable. + +An indication of whether the user can edit the contents of a view associated with this environment. + +`enum EditMode` + +A mode that indicates whether the user can edit a view’s content. + +`struct EditActions` + +A set of edit actions on a collection of data that a view can offer to a user. + +`struct IndexedIdentifierCollection` + +A collection wrapper that iterates over the indices and identifiers of a collection together. + +--- + +# https://developer.apple.com/documentation/swiftui/ellipse + +- SwiftUI +- Ellipse + +Structure + +# Ellipse + +An ellipse aligned inside the frame of the view containing it. + +@frozen +struct Ellipse + +## Topics + +### Creating an ellipse + +`init()` + +Creates a new ellipse shape. + +## Relationships + +### Conforms To + +- `Animatable` +- `BitwiseCopyable` +- `Copyable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Creating circular shapes + +`struct Circle` + +A circle centered on the frame of the view containing it. + +`struct Capsule` + +A capsule shape aligned inside the frame of the view containing it. + +--- + +# https://developer.apple.com/documentation/swiftui/ellipticalgradient + +- SwiftUI +- EllipticalGradient + +Structure + +# EllipticalGradient + +A radial gradient that draws an ellipse. + +@frozen +struct EllipticalGradient + +## Overview + +The gradient maps its coordinate space to the unit space square in which its center and radii are defined, then stretches that square to fill its bounding rect, possibly also stretching the circular gradient to have elliptical contours. + +For example, an elliptical gradient centered on the view, filling its bounds: + +EllipticalGradient(gradient: .init(colors: [.red, .yellow])) + +When using an elliptical gradient as a shape style, you can also use `ellipticalGradient(_:center:startRadiusFraction:endRadiusFraction:)`. + +## Topics + +### Creating an elliptical gradient + +`init(gradient: Gradient, center: UnitPoint, startRadiusFraction: CGFloat, endRadiusFraction: CGFloat)` + +Creates an elliptical gradient. + +[`init(colors: [Color], center: UnitPoint, startRadiusFraction: CGFloat, endRadiusFraction: CGFloat)`](https://developer.apple.com/documentation/swiftui/ellipticalgradient/init(colors:center:startradiusfraction:endradiusfraction:)) + +Creates an elliptical gradient from a collection of colors. + +[`init(stops: [Gradient.Stop], center: UnitPoint, startRadiusFraction: CGFloat, endRadiusFraction: CGFloat)`](https://developer.apple.com/documentation/swiftui/ellipticalgradient/init(stops:center:startradiusfraction:endradiusfraction:)) + +Creates an elliptical gradient from a collection of color stops. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` +- `ShapeStyle` +- `View` + +## See Also + +### Supporting types + +`struct AngularGradient` + +An angular gradient. + +`struct LinearGradient` + +A linear gradient. + +`struct RadialGradient` + +A radial gradient. + +`struct Material` + +A background material type. + +`struct ImagePaint` + +A shape style that fills a shape by repeating a region of an image. + +`struct HierarchicalShapeStyle` + +A shape style that maps to one of the numbered content styles. + +`struct HierarchicalShapeStyleModifier` + +Styles that you can apply to hierarchical shapes. + +`struct ForegroundStyle` + +The foreground style in the current context. + +`struct BackgroundStyle` + +The background style in the current context. + +`struct SelectionShapeStyle` + +A style used to visually indicate selection following platform conventional colors and behaviors. + +`struct SeparatorShapeStyle` + +A style appropriate for foreground separator or border lines. + +`struct TintShapeStyle` + +A style that reflects the current tint color. + +`struct FillShapeStyle` + +A shape style that displays one of the overlay fills. + +`struct LinkShapeStyle` + +A style appropriate for links. + +`struct PlaceholderTextShapeStyle` + +A style appropriate for placeholder text. + +--- + +# https://developer.apple.com/documentation/swiftui/emptyview + + + +--- + +# https://developer.apple.com/documentation/swiftui/equatableview + +- SwiftUI +- EquatableView + +Structure + +# EquatableView + +A view type that compares itself against its previous value and prevents its child updating if its new value is the same as its old value. + +@frozen + +## Topics + +### Creating an equatable view + +`init(content: Content)` + +`var content: Content` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Supporting view types + +`struct AnyView` + +A type-erased view. + +`struct EmptyView` + +A view that doesn’t contain any content. + +`struct SubscriptionView` + +A view that subscribes to a publisher with an action. + +`struct TupleView` + +A View created from a swift tuple of View values. + +--- + +# https://developer.apple.com/documentation/swiftui/fillshapeview + + + +--- + +# https://developer.apple.com/documentation/swiftui/foreach + +- SwiftUI +- ForEach + +Structure + +# ForEach + +A structure that computes views on demand from an underlying collection of identified data. + +## Mentioned in + +Creating performant scrollable stacks + +Grouping data with lazy stack views + +Displaying data in lists + +Picking container views for your content + +## Overview + +Use `ForEach` to provide views based on a `RandomAccessCollection` of some data type. Either the collection’s elements must conform to `Identifiable` or you need to provide an `id` parameter to the `ForEach` initializer. + +The following example creates a `NamedFont` type that conforms to `Identifiable`, and an array of this type called `namedFonts`. A `ForEach` instance iterates over the array, producing new `Text` instances that display examples of each SwiftUI `Font` style provided in the array. + +private struct NamedFont: Identifiable { +let name: String +let font: Font +var id: String { name } +} + +private let namedFonts: [NamedFont] = [\ +NamedFont(name: "Large Title", font: .largeTitle),\ +NamedFont(name: "Title", font: .title),\ +NamedFont(name: "Headline", font: .headline),\ +NamedFont(name: "Body", font: .body),\ +NamedFont(name: "Caption", font: .caption)\ +] + +var body: some View { +ForEach(namedFonts) { namedFont in +Text(namedFont.name) +.font(namedFont.font) +} +} + +Some containers like `List` or `LazyVStack` will query the elements within a for each lazily. To obtain maximal performance, ensure that the view created from each element in the collection represents a constant number of views. + +For example, the following view uses an if statement which means each element of the collection can represent either 1 or 0 views, a non-constant number. + +ForEach(namedFonts) { namedFont in +if namedFont.name.count != 2 { +Text(namedFont.name) +} +} + +You can make the above view represent a constant number of views by wrapping the condition in a `VStack`, an `HStack`, or a `ZStack`. + +ForEach(namedFonts) { namedFont in +VStack { +if namedFont.name.count != 2 { +Text(namedFont.name) +} +} +} + +When enabling the following launch argument, SwiftUI will log when it encounters a view that produces a non-constant number of views in these containers: + +-LogForEachSlowPath YES + +## Topics + +### Creating a collection + +`init(Data)` + +Creates an instance that uniquely identifies and creates table rows across updates based on the identity of the underlying data. + +`init(_:content:)` + +Creates an instance that uniquely identifies and creates map content across updates based on the identity of the underlying data. + +`init(_:id:content:)` + +Creates an instance that uniquely identifies and creates map content across updates based on the provided key path to the underlying data’s identifier. + +### Creating an editable collection + +Creates an instance that uniquely identifies and creates views across updates based on the identity of the underlying data. + +### Accessing content + +A function to create content on demand using the underlying data. + +`var data: Data` + +The collection of underlying identified data that SwiftUI uses to create views dynamically. + +### Initializers + +Creates an instance that uniquely identifies and creates views across updates based on the sections of a given view. + +Creates an instance that uniquely identifies and creates views across updates based on the subviews of a given view. + +## Relationships + +### Conforms To + +- `AccessibilityRotorContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `AccessibilityRotorContent`. + +- `AttachmentContent` +- `Chart3DContent` +- `ChartContent` +- `Copyable` +- `DynamicMapContent` +- `DynamicTableRowContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `TableRowContent`. + +- `DynamicViewContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `View`. + +- `MapContent` +- `TabContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `TabContent`. + +- `TableRowContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `TableRowContent`. + +- `View` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, and `Content` conforms to `View`. + +## See Also + +### Iterating over dynamic data + +`struct ForEachSectionCollection` + +A collection which allows a view to be treated as a collection of its sections in a for each loop. + +`struct ForEachSubviewCollection` + +A collection which allows a view to be treated as a collection of its subviews in a for each loop. + +`protocol DynamicViewContent` + +A type of view that generates views from an underlying collection of data. + +--- + +# https://developer.apple.com/documentation/swiftui/form + +- SwiftUI +- Form + +Structure + +# Form + +A container for grouping controls used for data entry, such as in settings or inspectors. + +## Mentioned in + +Picking container views for your content + +Grouping data with lazy stack views + +## Overview + +SwiftUI applies platform-appropriate styling to views contained inside a form, to group them together. Form-specific styling applies to things like buttons, toggles, labels, lists, and more. Keep in mind that these stylings may be platform-specific. For example, forms apppear as grouped lists on iOS, and as aligned vertical stacks on macOS. + +The following example shows a simple data entry form on iOS, grouped into two sections. The supporting types ( `NotifyMeAboutType` and `ProfileImageSize`) and state variables ( `notifyMeAbout`, `profileImageSize`, `playNotificationSounds`, and `sendReadReceipts`) are omitted for simplicity. + +var body: some View { +NavigationView { +Form { +Section(header: Text("Notifications")) { +Picker("Notify Me About", selection: $notifyMeAbout) { +Text("Direct Messages").tag(NotifyMeAboutType.directMessages) +Text("Mentions").tag(NotifyMeAboutType.mentions) +Text("Anything").tag(NotifyMeAboutType.anything) +} +Toggle("Play notification sounds", isOn: $playNotificationSounds) +Toggle("Send read receipts", isOn: $sendReadReceipts) +} +Section(header: Text("User Profiles")) { +Picker("Profile Image Size", selection: $profileImageSize) { +Text("Large").tag(ProfileImageSize.large) +Text("Medium").tag(ProfileImageSize.medium) +Text("Small").tag(ProfileImageSize.small) +} +Button("Clear Image Cache") {} +} +} +} +} + +On macOS, a similar form renders as a vertical stack. To adhere to macOS platform conventions, this version doesn’t use sections, and uses colons at the end of its labels. It also sets the picker to use the `inline` style, which produces radio buttons on macOS. + +var body: some View { +Spacer() +HStack { +Spacer() +Form { +Picker("Notify Me About:", selection: $notifyMeAbout) { +Text("Direct Messages").tag(NotifyMeAboutType.directMessages) +Text("Mentions").tag(NotifyMeAboutType.mentions) +Text("Anything").tag(NotifyMeAboutType.anything) +} +Toggle("Play notification sounds", isOn: $playNotificationSounds) +Toggle("Send read receipts", isOn: $sendReadReceipts) + +Picker("Profile Image Size:", selection: $profileImageSize) { +Text("Large").tag(ProfileImageSize.large) +Text("Medium").tag(ProfileImageSize.medium) +Text("Small").tag(ProfileImageSize.small) +} +.pickerStyle(.inline) + +Button("Clear Image Cache") {} +} +Spacer() +} +Spacer() +} + +## Topics + +### Creating a form + +Creates a form with the provided content. + +### Creating a form from a configuration + +`init(FormStyleConfiguration)` + +Creates a form based on a form style configuration. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Grouping inputs + +Sets the style for forms in a view hierarchy. + +`struct LabeledContent` + +A container for attaching a label to a value-bearing view. + +Sets a style for labeled content. + +--- + +# https://developer.apple.com/documentation/swiftui/formstyleconfiguration/content-swift.struct + +- SwiftUI +- FormStyleConfiguration +- FormStyleConfiguration.Content + +Structure + +# FormStyleConfiguration.Content + +A type-erased content of a form. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting configuration content + +`let content: FormStyleConfiguration.Content` + +A view that is the content of the form. + +--- + +# https://developer.apple.com/documentation/swiftui/gauge + +- SwiftUI +- Gauge + +Structure + +# Gauge + +A view that shows a value within a range. + +## Overview + +A gauge is a view that shows a current level of a value in relation to a specified finite capacity, very much like a fuel gauge in an automobile. Gauge displays are configurable; they can show any combination of the gauge’s current value, the range the gauge can display, and a label describing the purpose of the gauge itself. + +In its most basic form, a gauge displays a single value along the path of the gauge mapped into a range from 0 to 100 percent. The example below sets the gauge’s indicator to a position 40 percent along the gauge’s path: + +struct SimpleGauge: View { +@State private var batteryLevel = 0.4 + +var body: some View { +Gauge(value: batteryLevel) { +Text("Battery Level") +} +} +} + +You can make a gauge more descriptive by describing its purpose, showing its current value and its start and end values. This example shows the gauge variant that accepts a range and adds labels using multiple trailing closures describing the current value and the minimum and maximum values of the gauge: + +struct LabeledGauge: View { +@State private var current = 67.0 +@State private var minValue = 0.0 +@State private var maxValue = 170.0 + +var body: some View { +Gauge(value: current, in: minValue...maxValue) { +Text("BPM") +} currentValueLabel: { +Text("\(Int(current))") +} minimumValueLabel: { +Text("\(Int(minValue))") +} maximumValueLabel: { +Text("\(Int(maxValue))") +} +} +} + +As shown above, the default style for gauges is a linear, continuous bar with an indicator showing the current value, and optional labels describing the gauge’s purpose, current, minimum, and maximum values. + +To change the style of a gauge, use the `gaugeStyle(_:)` view modifier and supply an initializer for a specific gauge style. For example, to display the same gauge in a circular style, apply the `circular` style to the view: + +var body: some View { +Gauge(value: current, in: minValue...maxValue) { +Text("BPM") +} currentValueLabel: { +Text("\(Int(current))") +} minimumValueLabel: { +Text("\(Int(minValue))") +} maximumValueLabel: { +Text("\(Int(maxValue))") +} +.gaugeStyle(.circular) +} +} + +To style elements of a gauge’s presentation, you apply view modifiers to the elements that you want to change. In the example below, the current value, minimum and maximum value labels have custom colors: + +struct StyledGauge: View { +@State private var current = 67.0 +@State private var minValue = 50.0 +@State private var maxValue = 170.0 + +var body: some View { +Gauge(value: current, in: minValue...maxValue) { +Image(systemName: "heart.fill") +.foregroundColor(.red) +} currentValueLabel: { +Text("\(Int(current))") +.foregroundColor(Color.green) +} minimumValueLabel: { +Text("\(Int(minValue))") +.foregroundColor(Color.green) +} maximumValueLabel: { +Text("\(Int(maxValue))") +.foregroundColor(Color.red) +} +.gaugeStyle(.circular) +} +} + +You can further style a gauge’s appearance by supplying a tint color or a gradient to the style’s initializer. The following example shows the effect of a gradient in the initialization of a `CircularGaugeStyle` gauge with a colorful gradient across the length of the gauge: + +struct StyledGauge: View { +@State private var current = 67.0 +@State private var minValue = 50.0 +@State private var maxValue = 170.0 +let gradient = Gradient(colors: [.green, .yellow, .orange, .red]) + +var body: some View { +Gauge(value: current, in: minValue...maxValue) { +Image(systemName: "heart.fill") +.foregroundColor(.red) +} currentValueLabel: { +Text("\(Int(current))") +.foregroundColor(Color.green) +} minimumValueLabel: { +Text("\(Int(minValue))") +.foregroundColor(Color.green) +} maximumValueLabel: { +Text("\(Int(maxValue))") +.foregroundColor(Color.red) +} +.gaugeStyle(CircularGaugeStyle(tint: gradient)) +} +} + +## Topics + +### Creating a gauge + +Creates a gauge showing a value within a range and describes the gauge’s purpose and current value. + +Creates a gauge showing a value within a range and that describes the gauge’s purpose and current value. + +Creates a gauge representing a value within a range. + +Creates a gauge showing a value within a range and describes the gauge’s current, minimum, and maximum values. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Indicating a value + +Sets the style for gauges within this view. + +`struct ProgressView` + +A view that shows the progress toward completion of a task. + +Sets the style for progress views in this view. + +`struct DefaultDateProgressLabel` + +The default type of the current value label when used by a date-relative progress view. + +`struct DefaultButtonLabel` + +The default label to use for a button. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/currentvaluelabel-swift.struct + +- SwiftUI +- GaugeStyleConfiguration +- GaugeStyleConfiguration.CurrentValueLabel + +Structure + +# GaugeStyleConfiguration.CurrentValueLabel + +A type-erased value label of a gauge that contains the current value. + +@MainActor @preconcurrency +struct CurrentValueLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Setting the value + +`var value: Double` + +The current value of the gauge. + +`var currentValueLabel: GaugeStyleConfiguration.CurrentValueLabel?` + +A view that describes the current value. + +`struct MarkedValueLabel` + +A type-erased label describing a specific value of a gauge. + +--- + +# https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/label-swift.struct + +- SwiftUI +- GaugeStyleConfiguration +- GaugeStyleConfiguration.Label + +Structure + +# GaugeStyleConfiguration.Label + +A type-erased label of a gauge, describing its purpose. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Describing the purpose of the gauge + +`var label: GaugeStyleConfiguration.Label` + +A view that describes the purpose of the gauge. + +--- + +# https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/markedvaluelabel + +- SwiftUI +- GaugeStyleConfiguration +- GaugeStyleConfiguration.MarkedValueLabel + +Structure + +# GaugeStyleConfiguration.MarkedValueLabel + +A type-erased label describing a specific value of a gauge. + +@MainActor @preconcurrency +struct MarkedValueLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Setting the value + +`var value: Double` + +The current value of the gauge. + +`var currentValueLabel: GaugeStyleConfiguration.CurrentValueLabel?` + +A view that describes the current value. + +`struct CurrentValueLabel` + +A type-erased value label of a gauge that contains the current value. + +--- + +# https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/maximumvaluelabel-swift.struct + +- SwiftUI +- GaugeStyleConfiguration +- GaugeStyleConfiguration.MaximumValueLabel + +Structure + +# GaugeStyleConfiguration.MaximumValueLabel + +A type-erased value label of a gauge describing the maximum value. + +@MainActor @preconcurrency +struct MaximumValueLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Reporting the range + +`var minimumValueLabel: GaugeStyleConfiguration.MinimumValueLabel?` + +A view that describes the minimum of the range for the current value. + +`struct MinimumValueLabel` + +A type-erased value label of a gauge describing the minimum value. + +`var maximumValueLabel: GaugeStyleConfiguration.MaximumValueLabel?` + +A view that describes the maximum of the range for the current value. + +--- + +# https://developer.apple.com/documentation/swiftui/gaugestyleconfiguration/minimumvaluelabel-swift.struct + +- SwiftUI +- GaugeStyleConfiguration +- GaugeStyleConfiguration.MinimumValueLabel + +Structure + +# GaugeStyleConfiguration.MinimumValueLabel + +A type-erased value label of a gauge describing the minimum value. + +@MainActor @preconcurrency +struct MinimumValueLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Reporting the range + +`var minimumValueLabel: GaugeStyleConfiguration.MinimumValueLabel?` + +A view that describes the minimum of the range for the current value. + +`var maximumValueLabel: GaugeStyleConfiguration.MaximumValueLabel?` + +A view that describes the maximum of the range for the current value. + +`struct MaximumValueLabel` + +A type-erased value label of a gauge describing the maximum value. + +--- + +# https://developer.apple.com/documentation/swiftui/geometryreader + +- SwiftUI +- GeometryReader + +Structure + +# GeometryReader + +A container view that defines its content as a function of its own size and coordinate space. + +@frozen + +## Overview + +This view returns a flexible preferred size to its parent layout. + +## Topics + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Measuring a view + +`struct GeometryReader3D` + +`struct GeometryProxy` + +A proxy for access to the size and coordinate space (for anchor resolution) of the container view. + +`struct GeometryProxy3D` + +A proxy for access to the size and coordinate space of the container view. + +Assigns a name to the view’s coordinate space, so other code can operate on dimensions like points and sizes relative to the named space. + +`enum CoordinateSpace` + +A resolved coordinate space created by the coordinate space protocol. + +`protocol CoordinateSpaceProtocol` + +A frame of reference within the layout system. + +`struct PhysicalMetric` + +Provides access to a value in points that corresponds to the specified physical measurement. + +`struct PhysicalMetricsConverter` + +A physical metrics converter provides conversion between point values and their extent in 3D space, in the form of physical length measurements. + +--- + +# https://developer.apple.com/documentation/swiftui/geometryreader3d + +- SwiftUI +- GeometryReader3D + +Structure + +# GeometryReader3D + +A container view that defines its content as a function of its own size and coordinate space. + +@frozen + +## Overview + +This view returns a flexible preferred size to its own container view. + +This container differs from `GeometryReader` in that it also reads available depth, and thus also returns a flexible preferred depth to its parent layout. Use the 3D version only in situations where you need to read depth, because it affects depth layout when used in a container like a `ZStack`. + +## Topics + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Measuring a view + +`struct GeometryReader` + +`struct GeometryProxy` + +A proxy for access to the size and coordinate space (for anchor resolution) of the container view. + +`struct GeometryProxy3D` + +A proxy for access to the size and coordinate space of the container view. + +Assigns a name to the view’s coordinate space, so other code can operate on dimensions like points and sizes relative to the named space. + +`enum CoordinateSpace` + +A resolved coordinate space created by the coordinate space protocol. + +`protocol CoordinateSpaceProtocol` + +A frame of reference within the layout system. + +`struct PhysicalMetric` + +Provides access to a value in points that corresponds to the specified physical measurement. + +`struct PhysicalMetricsConverter` + +A physical metrics converter provides conversion between point values and their extent in 3D space, in the form of physical length measurements. + +--- + +# https://developer.apple.com/documentation/swiftui/glassbackgroundeffectconfiguration/content-swift.struct + +- SwiftUI +- GlassBackgroundEffectConfiguration +- GlassBackgroundEffectConfiguration.Content + +Structure + +# GlassBackgroundEffectConfiguration.Content + +A type-erased content of a glass background. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/grid + +- SwiftUI +- Grid + +Structure + +# Grid + +A container view that arranges other views in a two dimensional layout. + +@frozen + +## Overview + +Create a two dimensional layout by initializing a `Grid` with a collection of `GridRow` structures. The first view in each grid row appears in the grid’s first column, the second view in the second column, and so on. The following example creates a grid with two rows and two columns: + +Grid { +GridRow { +Text("Hello") +Image(systemName: "globe") +} +GridRow { +Image(systemName: "hand.wave") +Text("World") +} +} + +A grid and its rows behave something like a collection of `HStack` instances wrapped in a `VStack`. However, the grid handles row and column creation as a single operation, which applies alignment and spacing to cells, rather than first to rows and then to a column of unrelated rows. The grid produced by the example above demonstrates this: + +### Multicolumn cells + +If you provide a view rather than a `GridRow` as an element in the grid’s content, the grid uses the view to create a row that spans all of the grid’s columns. For example, you can add a `Divider` between the rows of the previous example: + +Grid { +GridRow { +Text("Hello") +Image(systemName: "globe") +} +Divider() +GridRow { +Image(systemName: "hand.wave") +Text("World") +} +} + +Because a divider takes as much horizontal space as its parent offers, the entire grid widens to fill the width offered by its parent view. + +To prevent a flexible view from taking more space on a given axis than the other cells in a row or column require, add the `gridCellUnsizedAxes(_:)` view modifier to the view: + +Divider() +.gridCellUnsizedAxes(.horizontal) + +This restores the grid to the width that the text and images require: + +To make a cell span a specific number of columns rather than the whole grid, use the `gridCellColumns(_:)` modifier on a view that’s contained inside a `GridRow`. + +### Column count + +The grid’s column count grows to handle the row with the largest number of columns. If you create rows with different numbers of columns, the grid adds empty cells to the trailing edge of rows that have fewer columns. The example below creates three rows with different column counts: + +Grid { +GridRow { +Text("Row 1") +ForEach(0..<2) { _ in Color.red } +} +GridRow { +Text("Row 2") +ForEach(0..<5) { _ in Color.green } +} +GridRow { +Text("Row 3") +ForEach(0..<4) { _ in Color.blue } +} +} + +The resulting grid has as many columns as the widest row, adding empty cells to rows that don’t specify enough views: + +The grid sets the width of all the cells in a column to match the needs of column’s widest cell. In the example above, the width of the first column depends on the width of the widest `Text` view that the column contains. The other columns, which contain flexible `Color` views, share the remaining horizontal space offered by the grid’s parent view equally. + +Similarly, the tallest cell in a row sets the height of the entire row. The cells in the first column of the grid above need only the height required for each string, but the `Color` cells expand to equally share the total height available to the grid. As a result, the color cells determine the row heights. + +### Cell spacing and alignment + +You can control the spacing between cells in both the horizontal and vertical dimensions and set a default alignment for the content in all the grid cells when you initialize the grid using the `init(alignment:horizontalSpacing:verticalSpacing:content:)` initializer. Consider a modified version of the previous example: + +Grid(alignment: .bottom, horizontalSpacing: 1, verticalSpacing: 1) { +// ... +} + +This configuration causes all of the cells to use `bottom` alignment — which only affects the text cells because the colors fill their cells completely — and it reduces the spacing between cells: + +You can override the alignment of specific cells or groups of cells. For example, you can change the horizontal alignment of the cells in a column by adding the `gridColumnAlignment(_:)` modifier, or the vertical alignment of the cells in a row by configuring the row’s `init(alignment:content:)` initializer. You can also align a single cell with the `gridCellAnchor(_:)` modifier. + +### Performance considerations + +A grid can size its rows and columns correctly because it renders all of its child views immediately. If your app exhibits poor performance when it first displays a large grid that appears inside a `ScrollView`, consider switching to a `LazyVGrid` or `LazyHGrid` instead. + +Lazy grids render their cells when SwiftUI needs to display them, rather than all at once. This reduces the initial cost of displaying a large scrollable grid that’s never fully visible, but also reduces the grid’s ability to optimally lay out cells. Switch to a lazy grid only if profiling your code shows a worthwhile performance improvement. + +## Topics + +### Creating a grid + +Creates a grid with the specified spacing, alignment, and child views. + +## Relationships + +### Conforms To + +- `Copyable` +- `View` +Conforms when `Content` conforms to `View`. + +## See Also + +### Statically arranging views in two dimensions + +`struct GridRow` + +A horizontal row in a two dimensional grid container. + +Tells a view that acts as a cell in a grid to span the specified number of columns. + +Specifies a custom alignment anchor for a view that acts as a grid cell. + +Asks grid layouts not to offer the view extra size in the specified axes. + +Overrides the default horizontal alignment of the grid column that the view appears in. + +--- + +# https://developer.apple.com/documentation/swiftui/gridrow + +- SwiftUI +- GridRow + +Structure + +# GridRow + +A horizontal row in a two dimensional grid container. + +@frozen + +## Overview + +Use one or more `GridRow` instances to define the rows of a `Grid` container. The child views inside the row define successive grid cells. You can add rows to the grid explicitly, or use the `ForEach` structure to generate multiple rows. Similarly, you can add cells to the row explicitly or you can use `ForEach` to generate multiple cells inside the row. The following example mixes these strategies: + +Grid { +GridRow { +Color.clear +.gridCellUnsizedAxes([.horizontal, .vertical]) +ForEach(1..<4) { column in +Text("C\(column)") +} +} +ForEach(1..<4) { row in +GridRow { +Text("R\(row)") +ForEach(1..<4) { _ in +Circle().foregroundStyle(.mint) +} +} +} +} + +The grid in the example above has an explicit first row and three generated rows. Similarly, each row has an explicit first cell and three generated cells: + +To create an empty cell, use something invisible, like the `clear` color that appears in the first column of the first row in the example above. However, if you use a flexible view like a `Color` or a `Spacer`, you might also need to add the `gridCellUnsizedAxes(_:)` modifier to prevent the view from taking up more space than the other cells in the row or column need. + +By default, the cells in the row use the `Alignment` that you define when you initialize the `Grid`. However, you can override the vertical alignment for the cells in a row by providing a `VerticalAlignment` value to the row’s `init(alignment:content:)` initializer. + +If you apply a view modifier to a row, the row applies the modifier to all of the cells, similar to how a `Group` behaves. For example, if you apply the `border(_:width:)` modifier to a row, SwiftUI draws a border on each cell in the row rather than around the row. + +## Topics + +### Creating a grid row + +Creates a horizontal row of child views in a grid. + +## Relationships + +### Conforms To + +- `Copyable` +- `View` +Conforms when `Content` conforms to `View`. + +## See Also + +### Statically arranging views in two dimensions + +`struct Grid` + +A container view that arranges other views in a two dimensional layout. + +Tells a view that acts as a cell in a grid to span the specified number of columns. + +Specifies a custom alignment anchor for a view that acts as a grid cell. + +Asks grid layouts not to offer the view extra size in the specified axes. + +Overrides the default horizontal alignment of the grid column that the view appears in. + +--- + +# https://developer.apple.com/documentation/swiftui/group + +- SwiftUI +- Group + +Structure + +# Group + +A type that collects multiple instances of a content type — like views, scenes, or commands — into a single unit. + +@frozen + +## Overview + +Use a group to collect multiple views into a single instance, without affecting the layout of those views, like an `HStack`, `VStack`, or `Section` would. After creating a group, any modifier you apply to the group affects all of that group’s members. For example, the following code applies the `headline` font to three views in a group. + +Group { +Text("SwiftUI") +Text("Combine") +Text("Swift System") +} +.font(.headline) + +Because you create a group of views with a `ViewBuilder`, you can use the group’s initializer to produce different kinds of views from a conditional, and then optionally apply modifiers to them. The following example uses a `Group` to add a navigation bar title, regardless of the type of view the conditional produces: + +Group { +if isLoggedIn { +WelcomeView() +} else { +LoginView() +} +} +.navigationBarTitle("Start") + +The modifier applies to all members of the group — and not to the group itself. For example, if you apply `onAppear(perform:)` to the above group, it applies to all of the views produced by the `if isLoggedIn` conditional, and it executes every time `isLoggedIn` changes. + +Because a group of views itself is a view, you can compose a group within other view builders, including nesting within other groups. This allows you to add large numbers of views to different view builder containers. The following example uses a `Group` to collect 10 `Text` instances, meaning that the vertical stack’s view builder returns only two views — the group, plus an additional `Text`: + +var body: some View { +VStack { +Group { +Text("1") +Text("2") +Text("3") +Text("4") +Text("5") +Text("6") +Text("7") +Text("8") +Text("9") +Text("10") +} +Text("11") +} +} + +You can initialize groups with several types other than `View`, such as `Scene` and `ToolbarContent`. The closure you provide to the group initializer uses the corresponding builder type ( `SceneBuilder`, `ToolbarContentBuilder`, and so on), and the capabilities of these builders vary between types. For example, you can use groups to return large numbers of scenes or toolbar content instances, but not to return different scenes or toolbar content based on conditionals. + +## Topics + +### Creating a group + +`init(content:)` + +Creates an instance that generates Rotor content by combining, in order, all the Rotor content specified in the passed-in result builder. + +### Initializers + +Constructs a group from the sections of the given view. + +Constructs a group from the subviews of the given view. + +## Relationships + +### Conforms To + +- `AccessibilityRotorContent` +Conforms when `Content` conforms to `AccessibilityRotorContent`. + +- `Commands` +Conforms when `Content` conforms to `Commands`. + +- `Copyable` +- `CustomizableToolbarContent` +Conforms when `Content` conforms to `CustomizableToolbarContent`. + +- `MapContent` +- `Scene` +Conforms when `Content` conforms to `Scene`. + +- `TabContent` +Conforms when `Content` conforms to `TabContent`. + +- `TableColumnContent` +Conforms when `Content` conforms to `TableColumnContent`. + +- `TableRowContent` +Conforms when `Content` conforms to `TableRowContent`. + +- `ToolbarContent` +Conforms when `Content` conforms to `ToolbarContent`. + +- `View` +Conforms when `Content` conforms to `View`. + +## See Also + +### Grouping views into a container + +Creating custom container views + +Access individual subviews to compose flexible container views. + +`struct GroupElementsOfContent` + +Transforms the subviews of a given view into a resulting content view. + +`struct GroupSectionsOfContent` + +Transforms the sections of a given view into a resulting content view. + +--- + +# https://developer.apple.com/documentation/swiftui/groupbox + +- SwiftUI +- GroupBox + +Structure + +# GroupBox + +A stylized view, with an optional label, that visually collects a logical grouping of content. + +## Overview + +Use a group box when you want to visually distinguish a portion of your user interface with an optional title for the boxed content. + +The following example sets up a `GroupBox` with the label “End-User Agreement”, and a long `agreementText` string in a `Text` view wrapped by a `ScrollView`. The box also contains a `Toggle` for the user to interact with after reading the text. + +var body: some View { +GroupBox(label: +Label("End-User Agreement", systemImage: "building.columns") +) { +ScrollView(.vertical, showsIndicators: true) { +Text(agreementText) +.font(.footnote) +} +.frame(height: 100) +Toggle(isOn: $userAgreed) { +Text("I agree to the above terms") +} +} +} + +## Topics + +### Creating a group box + +Creates an unlabeled group box with the provided view content. + +Creates a group box with the provided label and view content. + +`init(_:content:)` + +Creates a group box with the provided view content and title. + +### Creating a group box from a configuration + +`init(GroupBoxStyleConfiguration)` + +Creates a group box based on a style configuration. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Grouping views into a box + +Sets the style for group boxes within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/groupboxstyleconfiguration/content-swift.struct + +- SwiftUI +- GroupBoxStyleConfiguration +- GroupBoxStyleConfiguration.Content + +Structure + +# GroupBoxStyleConfiguration.Content + +A type-erased content of a group box. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the content + +`let content: GroupBoxStyleConfiguration.Content` + +A view that represents the content of the group box. + +--- + +# https://developer.apple.com/documentation/swiftui/groupboxstyleconfiguration/label-swift.struct + + + +--- + +# https://developer.apple.com/documentation/swiftui/groupelementsofcontent + +- SwiftUI +- GroupElementsOfContent + +Structure + +# GroupElementsOfContent + +Transforms the subviews of a given view into a resulting content view. + +## Overview + +You don’t use this type directly. Instead SwiftUI creates this type on your behalf. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Grouping views into a container + +Creating custom container views + +Access individual subviews to compose flexible container views. + +`struct Group` + +A type that collects multiple instances of a content type — like views, scenes, or commands — into a single unit. + +`struct GroupSectionsOfContent` + +Transforms the sections of a given view into a resulting content view. + +--- + +# https://developer.apple.com/documentation/swiftui/groupsectionsofcontent + +- SwiftUI +- GroupSectionsOfContent + +Structure + +# GroupSectionsOfContent + +Transforms the sections of a given view into a resulting content view. + +## Overview + +You don’t use this type directly. Instead SwiftUI creates this type on your behalf. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Grouping views into a container + +Creating custom container views + +Access individual subviews to compose flexible container views. + +`struct Group` + +A type that collects multiple instances of a content type — like views, scenes, or commands — into a single unit. + +`struct GroupElementsOfContent` + +Transforms the subviews of a given view into a resulting content view. + +--- + +# https://developer.apple.com/documentation/swiftui/hstack + +- SwiftUI +- HStack + +Structure + +# HStack + +A view that arranges its subviews in a horizontal line. + +@frozen + +## Mentioned in + +Laying out a simple view + +Building layouts with stack views + +Creating performant scrollable stacks + +Aligning views within a stack + +Aligning views across stacks + +## Overview + +Unlike `LazyHStack`, which only renders the views when your app needs to display them onscreen, an `HStack` renders the views all at once, regardless of whether they are on- or offscreen. Use the regular `HStack` when you have a small number of subviews or don’t want the delayed rendering behavior of the “lazy” version. + +The following example shows a simple horizontal stack of five text views: + +var body: some View { +HStack( +alignment: .top, +spacing: 10 +) { +ForEach( +1...5, +id: \.self +) { +Text("Item \($0)") +} +} +} + +## Topics + +### Creating a stack + +Creates a horizontal stack with the given spacing and vertical alignment. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Statically arranging views in one dimension + +Compose complex layouts from primitive container views. + +`struct VStack` + +A view that arranges its subviews in a vertical line. + +--- + +# https://developer.apple.com/documentation/swiftui/helplink + +- SwiftUI +- HelpLink + +Structure + +# HelpLink + +A button with a standard appearance that opens app-specific help documentation. + +struct HelpLink + +## Overview + +A help link opens documentation relevant to the context where they are used. Typically this is by opening to an anchor in an Apple Help book, but can also perform an arbitrary action such as opening a URL or opening a window. + +HelpLink(anchor: "accountSetupHelp") + +HelpLink { +openURL(onlineHelpURL) +} + +Help links have a standard appearance, as well as conventional placement within a view. When used within an alert or confirmation dialog’s actions, the help link will automatically be placed in the top trailing corner. Or when used in a sheet toolbar, the help link is automatically placed in the lower leading corner. + +struct SheetContentView: View { +var body: some View { +Form { +... +} +.toolbar { +ToolbarItem(.confirmationAction) { +Button("Save") { ... } +} +ToolbarItem(.cancellationAction) { +Button("Cancel") { ... } +} +ToolbarItem { +HelpLink(anchor: "sheetHelp") +} +} +} +} + +## Topics + +### Creating a help link + +Constructs a new help link with the specified action. + +`init(destination: URL)` + +Constructs a new help link that opens the specified destination URL. + +`init(anchor: NSHelpManager.AnchorName)` + +Constructs a new help link with the specified anchor in the main app bundle’s book. + +`init(anchor: NSHelpManager.AnchorName, book: NSHelpManager.BookName)` + +Constructs a new help link with the specified anchor and book. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Linking to other content + +`struct Link` + +A control for navigating to a URL. + +`struct ShareLink` + +A view that controls a sharing presentation. + +`struct SharePreview` + +A representation of a type to display in a share preview. + +`struct TextFieldLink` + +A control that requests text input from the user when pressed. + +--- + +# https://developer.apple.com/documentation/swiftui/keyframeanimator + +- SwiftUI +- KeyframeAnimator + +Structure + +# KeyframeAnimator + +A container that animates its content with keyframes. + +## Overview + +The `content` closure updates every frame while animating, so avoid performing any expensive operations directly within `content`. + +## Topics + +### Creating a phase animator + +Loops the given keyframes continuously, updating the view using the modifiers you apply in `body`. + +Plays the given keyframes when the given trigger value changes, updating the view using the modifiers you apply in `body`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating keyframe-based animation + +`protocol Keyframes` + +A type that defines changes to a value over time. + +`struct KeyframeTimeline` + +A description of how a value changes over time, modeled using keyframes. + +`struct KeyframeTrack` + +A sequence of keyframes animating a single property of a root type. + +`struct KeyframeTrackContentBuilder` + +The builder that creates keyframe track content from the keyframes that you define within a closure. + +`struct KeyframesBuilder` + +A builder that combines keyframe content values into a single value. + +`protocol KeyframeTrackContent` + +A group of keyframes that define an interpolation curve of an animatable value. + +`struct CubicKeyframe` + +A keyframe that uses a cubic curve to smoothly interpolate between values. + +`struct LinearKeyframe` + +A keyframe that uses simple linear interpolation. + +`struct MoveKeyframe` + +A keyframe that immediately moves to the given value without interpolating. + +`struct SpringKeyframe` + +A keyframe that uses a spring function to interpolate to the given value. + +--- + +# https://developer.apple.com/documentation/swiftui/label + +- SwiftUI +- Label + +Structure + +# Label + +A standard label for user interface items, consisting of an icon with a title. + +## Mentioned in + +Performing a search operation + +Preparing views for localization + +Populating SwiftUI menus with adaptive controls + +## Overview + +One of the most common and recognizable user interface components is the combination of an icon and a label. This idiom appears across many kinds of apps and shows up in collections, lists, menus of action items, and disclosable lists, just to name a few. + +You create a label, in its simplest form, by providing a title and the name of an image, such as an icon from the SF Symbols collection: + +Label("Lightning", systemImage: "bolt.fill") + +You can also apply styles to labels in several ways. In the case of dynamic changes to the view after device rotation or change to a window size you might want to show only the text portion of the label using the `titleOnly` label style: + +Label("Lightning", systemImage: "bolt.fill") +.labelStyle(.titleOnly) + +Conversely, there’s also an icon-only label style: + +Label("Lightning", systemImage: "bolt.fill") +.labelStyle(.iconOnly) + +Some containers might apply a different default label style, such as only showing icons within toolbars on macOS and iOS. To opt in to showing both the title and the icon, you can apply the `titleAndIcon` label style: + +Label("Lightning", systemImage: "bolt.fill") +.labelStyle(.titleAndIcon) + +You can also create a customized label style by modifying an existing style; this example adds a red border to the default label style: + +struct RedBorderedLabelStyle: LabelStyle { + +Label(configuration) +.border(Color.red) +} +} + +For more extensive customization or to create a completely new label style, you’ll need to adopt the `LabelStyle` protocol and implement a `LabelStyleConfiguration` for the new style. + +To apply a common label style to a group of labels, apply the style to the view hierarchy that contains the labels: + +VStack { +Label("Rain", systemImage: "cloud.rain") +Label("Snow", systemImage: "snow") +Label("Sun", systemImage: "sun.max") +} +.labelStyle(.iconOnly) + +It’s also possible to make labels using views to compose the label’s icon programmatically, rather than using a pre-made image. In this example, the icon portion of the label uses a filled `Circle` overlaid with the user’s initials: + +Label { +Text(person.fullName) +.font(.body) +.foregroundColor(.primary) +Text(person.title) +.font(.subheadline) +.foregroundColor(.secondary) +} icon: { +Circle() +.fill(person.profileColor) +.frame(width: 44, height: 44, alignment: .center) +.overlay(Text(person.initials)) +} + +## Topics + +### Creating a label + +`init(_:image:)` + +Creates a label with an icon image and a title generated from a localized string. + +`init(_:systemImage:)` + +Creates a label with a system icon image and a title generated from a localized string. + +Creates a label with a custom title and icon. + +`init(_:)` + +Creates a label representing a family activity application. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Displaying text + +`struct Text` + +A view that displays one or more lines of read-only text. + +Sets the style for labels within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/labelstyleconfiguration/icon-swift.struct + +- SwiftUI +- LabelStyleConfiguration +- LabelStyleConfiguration.Icon + +Structure + +# LabelStyleConfiguration.Icon + +A type-erased icon view of a label. + +@MainActor @preconcurrency +struct Icon + +## Relationships + +### Conforms To + +- `Copyable` +- `View` + +## See Also + +### Setting the icon + +`var icon: LabelStyleConfiguration.Icon` + +A symbolic representation of the labeled item. + +--- + +# https://developer.apple.com/documentation/swiftui/labelstyleconfiguration/title-swift.struct + +- SwiftUI +- LabelStyleConfiguration +- LabelStyleConfiguration.Title + +Structure + +# LabelStyleConfiguration.Title + +A type-erased title view of a label. + +@MainActor @preconcurrency +struct Title + +## Relationships + +### Conforms To + +- `Copyable` +- `View` + +## See Also + +### Setting the title + +`var title: LabelStyleConfiguration.Title` + +A description of the labeled item. + +--- + +# https://developer.apple.com/documentation/swiftui/labeledcontent + + + +--- + +# https://developer.apple.com/documentation/swiftui/labeledcontentstyleconfiguration/content-swift.struct + +- SwiftUI +- LabeledContentStyleConfiguration +- LabeledContentStyleConfiguration.Content + +Structure + +# LabeledContentStyleConfiguration.Content + +A type-erased content of a labeled content instance. + +@MainActor @preconcurrency +struct Content + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the content + +`let content: LabeledContentStyleConfiguration.Content` + +The content of the labeled content instance. + +--- + +# https://developer.apple.com/documentation/swiftui/labeledcontentstyleconfiguration/label-swift.struct + +- SwiftUI +- LabeledContentStyleConfiguration +- LabeledContentStyleConfiguration.Label + +Structure + +# LabeledContentStyleConfiguration.Label + +A type-erased label of a labeled content instance. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the label + +`let label: LabeledContentStyleConfiguration.Label` + +The label of the labeled content instance. + +--- + +# https://developer.apple.com/documentation/swiftui/labeledcontrolgroupcontent + +- SwiftUI +- LabeledControlGroupContent + +Structure + +# LabeledControlGroupContent + +A view that represents the body of a control group with a specified label. + +## Overview + +You don’t create this type directly. SwiftUI creates it when you build a `ControlGroup`. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/labeledtoolbaritemgroupcontent + +- SwiftUI +- LabeledToolbarItemGroupContent + +Structure + +# LabeledToolbarItemGroupContent + +A view that represents the view of a toolbar item group with a specified label. + +## Overview + +You don’t create this type directly. SwiftUI creates it when you build a `ToolbarItemGroup`. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/lazyhgrid + +- SwiftUI +- LazyHGrid + +Structure + +# LazyHGrid + +A container view that arranges its child views in a grid that grows horizontally, creating items only as needed. + +## Mentioned in + +Picking container views for your content + +## Overview + +Use a lazy horizontal grid when you want to display a large, horizontally scrollable collection of views arranged in a two dimensional layout. The first view that you provide to the grid’s `content` closure appears in the top row of the column that’s on the grid’s leading edge. Additional views occupy successive cells in the grid, filling the first column from top to bottom, then the second column, and so on. The number of columns can grow unbounded, but you specify the number of rows by providing a corresponding number of `GridItem` instances to the grid’s initializer. + +The grid in the following example defines two rows and uses a `ForEach` structure to repeatedly generate a pair of `Text` views for the rows in each column: + +struct HorizontalSmileys: View { +let rows = [GridItem(.fixed(30)), GridItem(.fixed(30))] + +var body: some View { +ScrollView(.horizontal) { +LazyHGrid(rows: rows) { +ForEach(0x1f600...0x1f679, id: \.self) { value in +Text(String(format: "%x", value)) +Text(emoji(value)) +.font(.largeTitle) +} +} +} +} + +guard let scalar = UnicodeScalar(value) else { return "?" } +return String(Character(scalar)) +} +} + +For each column in the grid, the top row shows a Unicode code point from the “Smileys” group, and the bottom shows its corresponding emoji: + +You can achieve a similar layout using a `Grid` container. Unlike a lazy grid, which creates child views only when SwiftUI needs to display them, a regular grid creates all of its child views right away. This enables the grid to provide better support for cell spacing and alignment. Only use a lazy grid if profiling your app shows that a `Grid` view performs poorly because it tries to load too many views at once. + +## Topics + +### Creating a horizontal grid + +Creates a grid that grows horizontally. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Dynamically arranging views in two dimensions + +`struct LazyVGrid` + +A container view that arranges its child views in a grid that grows vertically, creating items only as needed. + +`struct GridItem` + +A description of a row or a column in a lazy grid. + +--- + +# https://developer.apple.com/documentation/swiftui/lazyhstack + +- SwiftUI +- LazyHStack + +Structure + +# LazyHStack + +A view that arranges its children in a line that grows horizontally, creating items only as needed. + +## Mentioned in + +Picking container views for your content + +Grouping data with lazy stack views + +Creating performant scrollable stacks + +## Overview + +The stack is “lazy,” in that the stack view doesn’t create items until it needs to render them onscreen. + +In the following example, a `ScrollView` contains a `LazyHStack` that consists of a horizontal row of text views. The stack aligns to the top of the scroll view and uses 10-point spacing between each text view. + +ScrollView(.horizontal) { +LazyHStack(alignment: .top, spacing: 10) { +ForEach(1...100, id: \.self) { +Text("Column \($0)") +} +} +} + +## Topics + +### Creating a lazy-loading horizontal stack + +Creates a lazy horizontal stack view with the given spacing, vertical alignment, pinning behavior, and content. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Dynamically arranging views in one dimension + +Split content into logical sections inside lazy stack views. + +Display large numbers of repeated views efficiently with scroll views, stack views, and lazy stacks. + +`struct LazyVStack` + +A view that arranges its children in a line that grows vertically, creating items only as needed. + +`struct PinnedScrollableViews` + +A set of view types that may be pinned to the bounds of a scroll view. + +--- + +# https://developer.apple.com/documentation/swiftui/lazyvgrid + +- SwiftUI +- LazyVGrid + +Structure + +# LazyVGrid + +A container view that arranges its child views in a grid that grows vertically, creating items only as needed. + +## Mentioned in + +Picking container views for your content + +## Overview + +Use a lazy vertical grid when you want to display a large, vertically scrollable collection of views arranged in a two dimensional layout. The first view that you provide to the grid’s `content` closure appears in the top row of the column that’s on the grid’s leading edge. Additional views occupy successive cells in the grid, filling the first row from leading to trailing edges, then the second row, and so on. The number of rows can grow unbounded, but you specify the number of columns by providing a corresponding number of `GridItem` instances to the grid’s initializer. + +The grid in the following example defines two columns and uses a `ForEach` structure to repeatedly generate a pair of `Text` views for the columns in each row: + +struct VerticalSmileys: View { +let columns = [GridItem(.flexible()), GridItem(.flexible())] + +var body: some View { +ScrollView { +LazyVGrid(columns: columns) { +ForEach(0x1f600...0x1f679, id: \.self) { value in +Text(String(format: "%x", value)) +Text(emoji(value)) +.font(.largeTitle) +} +} +} +} + +guard let scalar = UnicodeScalar(value) else { return "?" } +return String(Character(scalar)) +} +} + +For each row in the grid, the first column shows a Unicode code point from the “Smileys” group, and the second shows its corresponding emoji: + +You can achieve a similar layout using a `Grid` container. Unlike a lazy grid, which creates child views only when SwiftUI needs to display them, a regular grid creates all of its child views right away. This enables the grid to provide better support for cell spacing and alignment. Only use a lazy grid if profiling your app shows that a `Grid` view performs poorly because it tries to load too many views at once. + +## Topics + +### Creating a vertical grid + +Creates a grid that grows vertically. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Dynamically arranging views in two dimensions + +`struct LazyHGrid` + +A container view that arranges its child views in a grid that grows horizontally, creating items only as needed. + +`struct GridItem` + +A description of a row or a column in a lazy grid. + +--- + +# https://developer.apple.com/documentation/swiftui/lazyvstack + +- SwiftUI +- LazyVStack + +Structure + +# LazyVStack + +A view that arranges its children in a line that grows vertically, creating items only as needed. + +## Mentioned in + +Grouping data with lazy stack views + +Picking container views for your content + +Displaying data in lists + +Creating performant scrollable stacks + +## Overview + +The stack is “lazy,” in that the stack view doesn’t create items until it needs to render them onscreen. + +In the following example, a `ScrollView` contains a `LazyVStack` that consists of a vertical row of text views. The stack aligns to the leading edge of the scroll view, and uses default spacing between the text views. + +ScrollView { +LazyVStack(alignment: .leading) { +ForEach(1...100, id: \.self) { +Text("Row \($0)") +} +} +} + +## Topics + +### Creating a lazy-loading vertical stack + +Creates a lazy vertical stack view with the given spacing, vertical alignment, pinning behavior, and content. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Dynamically arranging views in one dimension + +Split content into logical sections inside lazy stack views. + +Display large numbers of repeated views efficiently with scroll views, stack views, and lazy stacks. + +`struct LazyHStack` + +A view that arranges its children in a line that grows horizontally, creating items only as needed. + +`struct PinnedScrollableViews` + +A set of view types that may be pinned to the bounds of a scroll view. + +--- + +# https://developer.apple.com/documentation/swiftui/lineargradient + + + +--- + +# https://developer.apple.com/documentation/swiftui/link + +- SwiftUI +- Link + +Structure + +# Link + +A control for navigating to a URL. + +@MainActor @preconcurrency + +## Overview + +Create a link by providing a destination URL and a title. The title tells the user the purpose of the link, and can be a string, a title key that produces a localized string, or a view that acts as a label. The example below creates a link to `example.com` and displays the title string as a link-styled view: + +Link("View Our ", +destination: URL(string: "https://www.example.com/TOS.html")!) + +When a user taps or clicks a `Link`, the default behavior depends on the contents of the URL. For example, SwiftUI opens a Universal Link in the associated app if possible, or in the user’s default web browser if not. Alternatively, you can override the default behavior by setting the `openURL` environment value with a custom `OpenURLAction`: + +Link("Visit Our Site", destination: URL(string: "https://www.example.com")!) +.environment(\.openURL, OpenURLAction { url in +print("Open \(url)") +return .handled +}) + +As with other views, you can style links using standard view modifiers depending on the view type of the link’s label. For example, a `Text` label could be modified with a custom `font(_:)` or `foregroundColor(_:)` to customize the appearance of the link in your app’s UI. + +## Topics + +### Creating a link + +`init(_:destination:)` + +Creates a control, consisting of a URL and a title key, used to navigate to a URL. + +Creates a control, consisting of a URL and a label, used to navigate to the given URL. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Linking to other content + +`struct ShareLink` + +A view that controls a sharing presentation. + +`struct SharePreview` + +A representation of a type to display in a share preview. + +`struct TextFieldLink` + +A control that requests text input from the user when pressed. + +`struct HelpLink` + +A button with a standard appearance that opens app-specific help documentation. + +--- + +# https://developer.apple.com/documentation/swiftui/list + +- SwiftUI +- List + +Structure + +# List + +A container that presents rows of data arranged in a single column, optionally providing the ability to select one or more members. + +@MainActor @preconcurrency + +## Mentioned in + +Picking container views for your content + +Displaying data in lists + +Grouping data with lazy stack views + +Migrating to new navigation types + +Making a view into a drag source + +## Overview + +In its simplest form, a `List` creates its contents statically, as shown in the following example: + +var body: some View { +List { +Text("A List Item") +Text("A Second List Item") +Text("A Third List Item") +} +} + +More commonly, you create lists dynamically from an underlying collection of data. The following example shows how to create a simple list from an array of an `Ocean` type which conforms to `Identifiable`: + +struct Ocean: Identifiable { +let name: String +let id = UUID() +} + +private var oceans = [\ +Ocean(name: "Pacific"),\ +Ocean(name: "Atlantic"),\ +Ocean(name: "Indian"),\ +Ocean(name: "Southern"),\ +Ocean(name: "Arctic")\ +] + +var body: some View { +List(oceans) { +Text($0.name) +} +} + +### Supporting selection in lists + +To make members of a list selectable, provide a binding to a selection variable. Binding to a single instance of the list data’s `Identifiable.ID` type creates a single-selection list. Binding to a `Set` creates a list that supports multiple selections. The following example shows how to add multiselect to the previous example: + +struct Ocean: Identifiable, Hashable { +let name: String +let id = UUID() +} + +var body: some View { +NavigationView { +List(oceans, selection: $multiSelection) { +Text($0.name) +} +.navigationTitle("Oceans") +.toolbar { EditButton() } +} +Text("\(multiSelection.count) selections") +} + +When people make a single selection by tapping or clicking, the selected cell changes its appearance to indicate the selection. To enable multiple selections with tap gestures, put the list into edit mode by either modifying the `editMode` value, or adding an `EditButton` to your app’s interface. When you put the list into edit mode, the list shows a circle next to each list item. The circle contains a checkmark when the user selects the associated item. The example above uses an Edit button, which changes its title to Done while in edit mode: + +People can make multiple selections without needing to enter edit mode on devices that have a keyboard and mouse or trackpad, like Mac and iPad. + +### Refreshing the list content + +To make the content of the list refreshable using the standard refresh control, use the `refreshable(action:)` modifier. + +The following example shows how to add a standard refresh control to a list. When the user drags the top of the list downward, SwiftUI reveals the refresh control and executes the specified action. Use an `await` expression inside the `action` closure to refresh your data. The refresh indicator remains visible for the duration of the awaited operation. + +struct Ocean: Identifiable, Hashable { +let name: String +let id = UUID() +let stats: [String: String] +} + +class OceanStore: ObservableObject { +@Published var oceans = Ocean +func loadStats() async {} +} + +@EnvironmentObject var store: OceanStore + +var body: some View { +NavigationView { +List(store.oceans) { ocean in +HStack { +Text(ocean.name) +StatsSummary(stats: ocean.stats) // A custom view for showing statistics. +} +} +.refreshable { +await store.loadStats() +} +.navigationTitle("Oceans") +} +} + +### Supporting multidimensional lists + +To create two-dimensional lists, group items inside `Section` instances. The following example creates sections named after the world’s oceans, each of which has `Text` views named for major seas attached to those oceans. The example also allows for selection of a single list item, identified by the `id` of the example’s `Sea` type. + +struct ContentView: View { +struct Sea: Hashable, Identifiable { +let name: String +let id = UUID() +} + +struct OceanRegion: Identifiable { +let name: String +let seas: [Sea] +let id = UUID() +} + +private let oceanRegions: [OceanRegion] = [\ +OceanRegion(name: "Pacific",\ +seas: [Sea(name: "Australasian Mediterranean"),\ +Sea(name: "Philippine"),\ +Sea(name: "Coral"),\ +Sea(name: "South China")]),\ +OceanRegion(name: "Atlantic",\ +seas: [Sea(name: "American Mediterranean"),\ +Sea(name: "Sargasso"),\ +Sea(name: "Caribbean")]),\ +OceanRegion(name: "Indian",\ +seas: [Sea(name: "Bay of Bengal")]),\ +OceanRegion(name: "Southern",\ +seas: [Sea(name: "Weddell")]),\ +OceanRegion(name: "Arctic",\ +seas: [Sea(name: "Greenland")])\ +] + +@State private var singleSelection: UUID? + +var body: some View { +NavigationView { +List(selection: $singleSelection) { +ForEach(oceanRegions) { region in +Section(header: Text("Major \(region.name) Ocean Seas")) { +ForEach(region.seas) { sea in +Text(sea.name) +} +} +} +} +.navigationTitle("Oceans and Seas") +} +} +} + +Because this example uses single selection, people can make selections outside of edit mode on all platforms. + +### Creating hierarchical lists + +You can also create a hierarchical list of arbitrary depth by providing tree-structured data and a `children` parameter that provides a key path to get the child nodes at any level. The following example uses a deeply-nested collection of a custom `FileItem` type to simulate the contents of a file system. The list created from this data uses collapsing cells to allow the user to navigate the tree structure. + +struct ContentView: View { +struct FileItem: Hashable, Identifiable, CustomStringConvertible { +var id: Self { self } +var name: String +var children: [FileItem]? = nil +var description: String { +switch children { +case nil: +return "📄 \(name)" +case .some(let children): +return children.isEmpty ? "📂 \(name)" : "📁 \(name)" +} +} +} +let fileHierarchyData: [FileItem] = [\ +FileItem(name: "users", children:\ +[FileItem(name: "user1234", children:\ +[FileItem(name: "Photos", children:\ +[FileItem(name: "photo001.jpg"),\ +FileItem(name: "photo002.jpg")]),\ +FileItem(name: "Movies", children:\ +[FileItem(name: "movie001.mp4")]),\ +FileItem(name: "Documents", children: [])\ +]),\ +FileItem(name: "newuser", children:\ +[FileItem(name: "Documents", children: [])\ +])\ +]),\ +FileItem(name: "private", children: nil)\ +] +var body: some View { +List(fileHierarchyData, children: \.children) { item in +Text(item.description) +} +} +} + +### Styling lists + +SwiftUI chooses a display style for a list based on the platform and the view type in which it appears. Use the `listStyle(_:)` modifier to apply a different `ListStyle` to all lists within a view. For example, adding `.listStyle(.plain)` to the example shown in the “Creating Multidimensional Lists” topic applies the `plain` style, the following screenshot shows: + +## Topics + +### Creating a list from a set of views + +Creates a list with the given content. + +`init(selection:content:)` + +Creates a list with the given content that supports selecting a single row that cannot be deselcted. + +### Creating a list from enumerated data + +`init(_:rowContent:)` + +Creates a list that computes its rows on demand from an underlying collection of identifiable data. + +`init(_:selection:rowContent:)` + +Creates a list that computes its rows on demand from an underlying collection of identifiable data, optionally allowing users to select a single row. + +`init(_:id:rowContent:)` + +Creates a list that identifies its rows based on a key path to the identifier of the underlying data. + +`init(_:id:selection:rowContent:)` + +Creates a list that identifies its rows based on a key path to the identifier of the underlying data, optionally allowing users to select a single row. + +### Creating a list from hierarchical data + +`init(_:children:rowContent:)` + +Creates a hierarchical list that computes its rows on demand from a binding to an underlying collection of identifiable data. + +`init(_:children:selection:rowContent:)` + +Creates a hierarchical list that computes its rows on demand from a binding to an underlying collection of identifiable data and allowing users to have exactly one row always selected. + +`init(_:id:children:rowContent:)` + +Creates a hierarchical list that identifies its rows based on a key path to the identifier of the underlying data. + +`init(_:id:children:selection:rowContent:)` + +Creates a hierarchical list that identifies its rows based on a key path to the identifier of the underlying data and allowing users to have exactly one row always selected. + +### Creating a list from editable data + +Creates a list that computes its rows on demand from an underlying collection of identifiable data and allows to edit the collection. + +`init(_:editActions:selection:rowContent:)` + +Creates a list that computes its rows on demand from an underlying collection of identifiable data, allows to edit the collection, and requires a selection of a single row. + +`init(_:id:editActions:selection:rowContent:)` + +Creates a list that computes its rows on demand from an underlying collection of identifiable, allows to edit the collection, and requires a selection of a single row. + +### Supporting types + +`var body: some View` + +The content of the list. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating a list + +Visualize collections of data with platform-appropriate appearance. + +Sets the style for lists within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/menu + +- SwiftUI +- Menu + +Structure + +# Menu + +A control for presenting a menu of actions. + +## Mentioned in + +Populating SwiftUI menus with adaptive controls + +Building and customizing the menu bar with SwiftUI + +## Overview + +The following example presents a menu of three buttons and a submenu, which contains three buttons of its own. + +Menu("Actions") { +Button("Duplicate", action: duplicate) +Button("Rename", action: rename) +Button("Delete…", action: delete) +Menu("Copy") { +Button("Copy", action: copy) +Button("Copy Formatted", action: copyFormatted) +Button("Copy Library Path", action: copyPath) +} +} + +You can create the menu’s title with a `LocalizedStringKey`, as seen in the previous example, or with a view builder that creates multiple views, such as an image and a text view: + +Menu { +Button("Open in Preview", action: openInPreview) +Button("Save as PDF", action: saveAsPDF) +} label: { +Label("PDF", systemImage: "doc.fill") +} + +To support subtitles on menu items, initialize your `Button` with a view builder that creates multiple `Text` views where the first text represents the title and the second text represents the subtitle. The same approach applies to other controls such as `Toggle`: + +Menu { +Button(action: openInPreview) { +Text("Open in Preview") +Text("View the document in Preview") +} +Button(action: saveAsPDF) { +Text("Save as PDF") +Text("Export the document as a PDF file") +} +} label: { +Label("PDF", systemImage: "doc.fill") +} + +### Primary action + +Menus can be created with a custom primary action. The primary action will be performed when the user taps or clicks on the body of the control, and the menu presentation will happen on a secondary gesture, such as on long press or on click of the menu indicator. The following example creates a menu that adds bookmarks, with advanced options that are presented in a menu. + +Menu { +Button(action: addCurrentTabToReadingList) { +Label("Add to Reading List", systemImage: "eyeglasses") +} +Button(action: bookmarkAll) { +Label("Add Bookmarks for All Tabs", systemImage: "book") +} +Button(action: show) { +Label("Show All Bookmarks", systemImage: "books.vertical") +} +} label: { +Label("Add Bookmark", systemImage: "book") +} primaryAction: { +addBookmark() +} + +### Styling menus + +Use the `menuStyle(_:)` modifier to change the style of all menus in a view. The following example shows how to apply a custom style: + +Menu("Editing") { +Button("Set In Point", action: setInPoint) +Button("Set Out Point", action: setOutPoint) +} +.menuStyle(EditingControlsMenuStyle()) + +## Topics + +### Creating a menu from content + +`init(_:content:)` + +Creates a menu that generates its label from a localized string key. + +Creates a menu with a custom label. + +`init(_:image:content:)` + +Creates a menu that generates its label from a localized string key and image resource. + +`init(_:systemImage:content:)` + +Creates a menu that generates its label from a localized string key and system image. + +### Creating a menu with a primary action + +`init(_:content:primaryAction:)` + +Creates a menu with a custom primary action that generates its label from a localized string key. + +Creates a menu with a custom primary action and custom label. + +`init(_:image:content:primaryAction:)` + +`init(_:systemImage:content:primaryAction:)` + +Creates a menu with a custom primary action that generates its label from a localized string key and system image. + +### Creating a menu from a configuration + +`init(MenuStyleConfiguration)` + +Creates a menu based on a style configuration. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating a menu + +Improve your app by populating menus with controls and organizing your content intuitively. + +Sets the style for menus within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/menubutton + +- SwiftUI +- MenuButton Deprecated + +Structure + +# MenuButton + +A button that displays a menu containing a list of choices when pressed. + +macOS 10.15–26.0Deprecated + +## Topics + +### Creating a menu button + +`init(_:content:)` + +Creates a menu button with the specified localized title and content. + +Creates a menu button with the specified label and content. + +### Styling a menu button + +Sets the style for menu buttons within this view. + +`protocol MenuButtonStyle` + +A custom specification for the appearance and interaction of a menu button. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Deprecated types + +`typealias PullDownButton` Deprecated + +`struct ContextMenu` + +A container for views that you present as menu items in a context menu. + +Deprecated + +--- + +# https://developer.apple.com/documentation/swiftui/menustyleconfiguration/content + + + +--- + +# https://developer.apple.com/documentation/swiftui/menustyleconfiguration/label + +- SwiftUI +- MenuStyleConfiguration +- MenuStyleConfiguration.Label + +Structure + +# MenuStyleConfiguration.Label + +A type-erased label of a menu. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Setting the label and content + +`struct Content` + +A type-erased content of a menu. + +--- + +# https://developer.apple.com/documentation/swiftui/meshgradient + +- SwiftUI +- MeshGradient + +Structure + +# MeshGradient + +A two-dimensional gradient defined by a 2D grid of positioned colors. + +struct MeshGradient + +## Overview + +Each vertex has a position, a color and four surrounding Bezier control points (leading, top, trailing, bottom) that define the tangents connecting the vertex with its four neighboring vertices. (Vertices on the corners or edges of the mesh have less than four neighbors, they ignore their extra control points.) Control points may either be specified explicitly or implicitly. + +When rendering, a tessellated sequence of Bezier patches are created, and vertex colors are interpolated across each patch, either linearly, or via another set of cubic curves derived from how the colors change between neighbors – the latter typically gives smoother color transitions. + +MeshGradient(width: 3, height: 3, points: [\ +.init(0, 0), .init(0.5, 0), .init(1, 0),\ +.init(0, 0.5), .init(0.5, 0.5), .init(1, 0.5),\ +.init(0, 1), .init(0.5, 1), .init(1, 1)\ +], colors: [\ +.red, .purple, .indigo,\ +.orange, .white, .blue,\ +.yellow, .green, .mint\ +]) + +## Topics + +### Structures + +`struct BezierPoint` + +One location in a gradient mesh, along with the four Bezier control points surrounding it. + +### Initializers + +[`init(width: Int, height: Int, bezierPoints: [MeshGradient.BezierPoint], colors: [Color], background: Color, smoothsColors: Bool, colorSpace: Gradient.ColorSpace)`](https://developer.apple.com/documentation/swiftui/meshgradient/init(width:height:bezierpoints:colors:background:smoothscolors:colorspace:)) + +Creates a new gradient mesh specified as a 2D grid of colored points, specifying the Bezier control points explicitly. + +[`init(width: Int, height: Int, bezierPoints: [MeshGradient.BezierPoint], resolvedColors: [Color.Resolved], background: Color, smoothsColors: Bool, colorSpace: Gradient.ColorSpace)`](https://developer.apple.com/documentation/swiftui/meshgradient/init(width:height:bezierpoints:resolvedcolors:background:smoothscolors:colorspace:)) + +Creates a new gradient mesh specified as a 2D grid of colored points, specifying the Bezier control points explicitly, with already-resolved sRGB colors. + +`init(width: Int, height: Int, locations: MeshGradient.Locations, colors: MeshGradient.Colors, background: Color, smoothsColors: Bool, colorSpace: Gradient.ColorSpace)` + +Creates a new gradient mesh specified as a 2D grid of colored vertices. + +Creates a new gradient mesh specified as a 2D grid of colored points. + +Creates a new gradient mesh specified as a 2D grid of colored points, with already-resolved sRGB colors. + +### Instance Properties + +`var background: Color` + +The background color, this fills any points outside the defined vertex mesh. + +`var colorSpace: Gradient.ColorSpace` + +The color space in which to interpolate vertex colors. + +`var colors: MeshGradient.Colors` + +The array of colors. Must contain `width x height` elements. + +`var height: Int` + +The height of the mesh, i.e. the number of vertices per column. + +`var locations: MeshGradient.Locations` + +The array of locations. Must contain `width x height` elements. + +`var smoothsColors: Bool` + +Whether cubic (smooth) interpolation should be used for the colors in the mesh (rather than only for the shape of the mesh). + +`var width: Int` + +The width of the mesh, i.e. the number of vertices per row. + +### Enumerations + +`enum Colors` + +An array of colors. + +`enum Locations` + +An array of 2D locations and their control points. + +## Relationships + +### Conforms To + +- `Copyable` +- `Equatable` +- `Sendable` +- `SendableMetatype` +- `ShapeStyle` +- `View` + +## See Also + +### Styling content + +Adds a border to this view with the specified style and width. + +Sets a view’s foreground elements to use a given style. + +Sets the primary and secondary levels of the foreground style in the child view. + +Sets the primary, secondary, and tertiary levels of the foreground style. + +Sets the specified style to render backgrounds within the view. + +`var backgroundStyle: AnyShapeStyle?` + +An optional style that overrides the default system background style when set. + +`protocol ShapeStyle` + +A color or pattern to use when rendering a shape. + +`struct AnyShapeStyle` + +A type-erased ShapeStyle value. + +`struct Gradient` + +A color gradient represented as an array of color stops, each having a parametric location value. + +`struct AnyGradient` + +A color gradient. + +`struct ShadowStyle` + +A style to use when rendering shadows. + +`struct Glass` + +A structure that defines the configuration of the Liquid Glass material. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/modifiedcontent + +- SwiftUI +- ModifiedContent + +Structure + +# ModifiedContent + +A value with a modifier applied to it. + +@frozen + +## Topics + +### Creating a modified content view + +`init(content: Content, modifier: Modifier)` + +A structure that defines the content and modifier needed to produce a new view or view modifier. + +`var content: Content` + +The content that the modifier transforms into a new view or new view modifier. + +`var modifier: Modifier` + +The view modifier. + +### Instance Methods + +`func accessibility(activationPoint:)` + +Specifies the point where activations occur in the view. + +Deprecated + +Adds the given traits to the view. + +Specifies whether to hide this view from system accessibility features. + +Communicates to the user what happens after performing the view’s action. + +Uses the specified string to identify the view. + +Sets alternate input labels with which users identify a view. + +Adds a label to the view that describes its contents. + +Removes the given traits from this view. + +Sets a selection identifier for this view’s accessibility element. + +Sets the sort priority order for this view’s accessibility element, relative to other elements at the same level. + +Adds a textual description of the value that the view contains. + +Adds an accessibility action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +Adds an accessibility action representing `actionKind` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +`func accessibilityAction(named:_:)` + +`func accessibilityAction(named:intent:)` + +Adds an accessibility action labeled `name` to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. When the action is performed, the `intent` will be invoked. + +`func accessibilityActivationPoint(_:)` + +The activation point for an element is the location assistive technologies use to initiate gestures. + +`func accessibilityActivationPoint(_:isEnabled:)` + +Adds an accessibility adjustable action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +`func accessibilityCustomContent(_:_:importance:)` + +Add additional accessibility information to the view. + +Explicitly set whether this accessibility element is a direct touch area. Direct touch areas passthrough touch events to the app rather than being handled through an assistive technology, such as VoiceOver. The modifier accepts an optional `AccessibilityDirectTouchOptions` option set to customize the functionality of the direct touch area. + +`func accessibilityDragPoint(_:description:)` + +The point an assistive technology should use to begin a drag interaction. + +`func accessibilityDragPoint(_:description:isEnabled:)` + +`func accessibilityDropPoint(_:description:)` + +The point an assistive technology should use to end a drag interaction. + +`func accessibilityDropPoint(_:description:isEnabled:)` + +Set the level of this heading. + +`func accessibilityHint(_:)` + +`func accessibilityHint(_:isEnabled:)` + +Uses the string you specify to identify the view. + +`func accessibilityInputLabels(_:)` + +`func accessibilityInputLabels(_:isEnabled:)` + +`func accessibilityLabel(_:)` + +`func accessibilityLabel(_:isEnabled:)` + +Explicitly set whether this Accessibility element responds to user interaction and would thus be interacted with by technologies such as Switch Control, Voice Control or Full Keyboard Access. + +Adds an accessibility scroll action to the view. Actions allow assistive technologies, such as the VoiceOver, to interact with the view by invoking the action. + +`func accessibilityScrollStatus(_:isEnabled:)` + +Changes the announcement provided by accessibility technologies when a user scrolls a scroll view within this view. + +Beta + +Sets an accessibility text content type. + +`func accessibilityValue(_:)` + +`func accessibilityValue(_:isEnabled:)` + +Adds an accessibility zoom action to the view. Actions allow assistive technologies, such as VoiceOver, to interact with the view by invoking the action. + +## Relationships + +### Conforms To + +- `Animatable` +Conforms when `Content` conforms to `Animatable` and `Modifier` conforms to `Animatable`. + +- `Chart3DContent` +- `Copyable` +- `CustomHoverEffect` +Conforms when `Content` conforms to `CustomHoverEffect` and `Modifier` conforms to `CustomHoverEffect`. + +- `DynamicMapContent` +- `DynamicTableRowContent` +Conforms when `Content` conforms to `DynamicTableRowContent` and `Modifier` conforms to `_TableRowContentModifier`. + +- `DynamicViewContent` +Conforms when `Content` conforms to `DynamicViewContent` and `Modifier` conforms to `ViewModifier`. + +- `Equatable` +- `HoverEffectContent` +Conforms when `Content` conforms to `HoverEffectContent` and `Modifier` conforms to `HoverEffectContent`. + +- `MapContent` +- `Scene` +Conforms when `Content` conforms to `Scene` and `Modifier` conforms to `_SceneModifier`. + +- `Sendable` +- `SendableMetatype` +- `TableRowContent` +Conforms when `Content` conforms to `TableRowContent` and `Modifier` conforms to `_TableRowContentModifier`. + +- `View` +Conforms when `Content` conforms to `View` and `Modifier` conforms to `ViewModifier`. + +- `ViewModifier` +Conforms when `Content` conforms to `ViewModifier` and `Modifier` conforms to `ViewModifier`. + +- `VisualEffect` +Conforms when `Content` conforms to `VisualEffect` and `Modifier` conforms to `VisualEffect`. + +## See Also + +### Modifying a view + +Configuring views + +Adjust the characteristics of a view by applying view modifiers. + +Reducing view modifier maintenance + +Bundle view modifiers that you regularly reuse into a custom view modifier. + +Applies a modifier to a view and returns a new view. + +`protocol ViewModifier` + +A modifier that you apply to a view or another view modifier, producing a different version of the original value. + +`struct EmptyModifier` + +An empty, or identity, modifier, used during development to switch modifiers at compile time. + +`protocol EnvironmentalModifier` + +A modifier that must resolve to a concrete modifier in an environment before use. + +`struct ManipulableModifier` Beta + +`struct ManipulableResponderModifier` Beta + +`struct ManipulableTransformBindingModifier` Beta + +`struct ManipulationGeometryModifier` Beta + +`struct ManipulationGestureModifier` Beta + +`struct ManipulationUsingGestureStateModifier` Beta + +`enum Manipulable` + +A namespace for various manipulable related types. + +--- + +# https://developer.apple.com/documentation/swiftui/multidatepicker + +- SwiftUI +- MultiDatePicker + +Structure + +# MultiDatePicker + +A control for picking multiple dates. + +## Overview + +Use a `MultiDatePicker` when you want to provide a view that allows the user to select multiple dates. + +The following example creates a basic `MultiDatePicker`, which appears as a calendar view representing the selected dates: + +var body: some View { +MultiDatePicker("Dates Available", selection: $dates) +} + +You can limit the `MultiDatePicker` to specific ranges of dates allowing selections only before or after a certain date or between two dates. The following example shows a multi-date picker that only permits selections within the 6th and (excluding) the 16th of December 2021 (in the `UTC` time zone): + +@Environment(\.calendar) var calendar +@Environment(\.timeZone) var timeZone + +let start = calendar.date(from: DateComponents( +timeZone: timeZone, year: 2022, month: 6, day: 6))! +let end = calendar.date(from: DateComponents( +timeZone: timeZone, year: 2022, month: 6, day: 16))! +return start ..< end +} + +var body: some View { +MultiDatePicker("Dates Available", selection: $dates, in: bounds) +} + +You can also specify an alternative locale, calendar and time zone through environment values. This can be useful when using a `PreviewProvider` to see how your multi-date picker behaves in environments that differ from your own. + +The following example shows a multi-date picker with a custom locale, calendar and time zone: + +struct ContentView_Previews: PreviewProvider { +static var previews: some View { +MultiDatePicker("Dates Available", selection: .constant([])) +.environment(\.locale, Locale.init(identifier: "zh")) +.environment( +\.calendar, Calendar.init(identifier: .chinese)) +.environment(\.timeZone, TimeZone(abbreviation: "HKT")!) +} +} + +## Topics + +### Picking dates + +`init(_:selection:)` + +Creates an instance that selects multiple dates with an unbounded range. + +`init(selection: Binding>, label: () -> Label)` + +### Picking dates in a range + +`init(_:selection:in:)` + +Creates an instance that selects multiple dates on or after some start date. + +`init(selection:in:label:)` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Choosing dates + +`struct DatePicker` + +A control for selecting an absolute date. + +Sets the style for date pickers within this view. + +`var calendar: Calendar` + +The current calendar that views should use when handling dates. + +`var timeZone: TimeZone` + +The current time zone that views should use when handling dates. + +--- + +# https://developer.apple.com/documentation/swiftui/offsetshape + +- SwiftUI +- OffsetShape + +Structure + +# OffsetShape + +A shape with a translation offset transform applied to it. + +@frozen + +## Topics + +### Creating an offset shape + +`init(shape: Content, offset: CGSize)` + +### Getting the shape’s characteristics + +`var offset: CGSize` + +`var shape: Content` + +### Supporting types + +The data to animate. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `InsettableShape` +Conforms when `Content` conforms to `InsettableShape`. + +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Transforming a shape + +`struct ScaledShape` + +A shape with a scale transform applied to it. + +`struct RotatedShape` + +A shape with a rotation transform applied to it. + +`struct TransformedShape` + +A shape with an affine transform applied to it. + +--- + +# https://developer.apple.com/documentation/swiftui/outlinegroup + +- SwiftUI +- OutlineGroup + +Structure + +# OutlineGroup + +A structure that computes views and disclosure groups on demand from an underlying collection of tree-structured, identified data. + +## Mentioned in + +Displaying data in lists + +## Overview + +Use an outline group when you need a view that can represent a hierarchy of data by using disclosure views. This allows the user to navigate the tree structure by using the disclosure views to expand and collapse branches. + +In the following example, a tree structure of `FileItem` data offers a simplified view of a file system. Passing the root of this tree and the key path of its children allows you to quickly create a visual representation of the file system. + +struct FileItem: Hashable, Identifiable, CustomStringConvertible { +var id: Self { self } +var name: String +var children: [FileItem]? = nil +var description: String { +switch children { +case nil: +return "📄 \(name)" +case .some(let children): +return children.isEmpty ? "📂 \(name)" : "📁 \(name)" +} +} +} + +let data = +FileItem(name: "users", children: +[FileItem(name: "user1234", children:\ +[FileItem(name: "Photos", children:\ +[FileItem(name: "photo001.jpg"),\ +FileItem(name: "photo002.jpg")]),\ +FileItem(name: "Movies", children:\ +[FileItem(name: "movie001.mp4")]),\ +FileItem(name: "Documents", children: [])\ +]),\ +FileItem(name: "newuser", children:\ +[FileItem(name: "Documents", children: [])\ +])\ +]) + +OutlineGroup(data, children: \.children) { item in +Text("\(item.description)") +} + +### Type parameters + +Five generic type constraints define a specific `OutlineGroup` instance: + +- `Data`: The type of a collection containing the children of an element in the tree-shaped data. + +- `ID`: The type of the identifier for an element. + +- `Parent`: The type of the visual representation of an element whose children property is non- `nil` + +- `Leaf`: The type of the visual representation of an element whose children property is `nil`. + +- `Subgroup`: A type of a view that groups a parent view and a view representing its children, typically with some mechanism for showing and hiding the children + +## Topics + +### Creating an outline group + +`init(_:children:)` + +Creates an outline group from a collection of root data elements and a key path to element’s children. + +`init(_:children:content:)` + +Creates an outline group from a binding to a collection of root data elements and a key path to its children. + +`init(_:id:children:content:)` + +Creates an outline group from a binding to a collection of root data elements, the key path to a data element’s identifier, and a key path to its children. + +### Supporting types + +`struct OutlineSubgroupChildren` + +A type-erased view representing the children in an outline subgroup. + +## Relationships + +### Conforms To + +- `Copyable` +- `TableRowContent` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` is `Data.Element.ID`, `Parent` conforms to `TableRowContent`, `Parent` is `Leaf`, `Leaf` is `Subgroup`, and `Data.Element` is `Parent.TableRowValue`. + +- `View` +Conforms when `Data` conforms to `RandomAccessCollection`, `ID` conforms to `Hashable`, `Parent` conforms to `View`, `Leaf` conforms to `View`, and `Subgroup` conforms to `View`. + +## See Also + +### Disclosing information progressively + +`struct DisclosureGroup` + +A view that shows or hides another content view, based on the state of a disclosure control. + +Sets the style for disclosure groups within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/outlinesubgroupchildren + +- SwiftUI +- OutlineSubgroupChildren + +Structure + +# OutlineSubgroupChildren + +A type-erased view representing the children in an outline subgroup. + +struct OutlineSubgroupChildren + +## Overview + +`OutlineGroup` uses this type as a generic constraint for the `Content` of the `DisclosureGroup` instances it creates. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/pastebutton + + + +--- + +# https://developer.apple.com/documentation/swiftui/path + +- SwiftUI +- Path + +Structure + +# Path + +The outline of a 2D shape. + +@frozen +struct Path + +## Topics + +### Creating a path + +`init()` + +Creates an empty path. + +`init(_:)` + +Creates an empty path, then executes a closure to add its initial elements. + +`init(ellipseIn: CGRect)` + +Creates a path as an ellipse within the given rectangle. + +`init(roundedRect: CGRect, cornerRadius: CGFloat, style: RoundedCornerStyle)` + +Creates a path containing a rounded rectangle. + +`init(roundedRect: CGRect, cornerSize: CGSize, style: RoundedCornerStyle)` + +`init(roundedRect: CGRect, cornerRadii: RectangleCornerRadii, style: RoundedCornerStyle)` + +Creates a path as the given rounded rectangle, which may have uneven corner radii. + +### Getting the path’s characteristics + +`var boundingRect: CGRect` + +A rectangle containing all path segments. + +`var cgPath: CGPath` + +An immutable path representing the elements in the path. + +Returns true if the path contains a specified point. + +`var currentPoint: CGPoint?` + +Returns the last point in the path, or nil if the path contains no points. + +`var description: String` + +A description of the path that may be used to recreate the path via `init?(_:)`. + +`var isEmpty: Bool` + +A Boolean value indicating whether the path contains zero elements. + +### Drawing a path + +`func move(to: CGPoint)` + +Begins a new subpath at the specified point. + +`func addArc(center: CGPoint, radius: CGFloat, startAngle: Angle, endAngle: Angle, clockwise: Bool, transform: CGAffineTransform)` + +Adds an arc of a circle to the path, specified with a radius and angles. + +`func addArc(tangent1End: CGPoint, tangent2End: CGPoint, radius: CGFloat, transform: CGAffineTransform)` + +Adds an arc of a circle to the path, specified with a radius and two tangent lines. + +`func addCurve(to: CGPoint, control1: CGPoint, control2: CGPoint)` + +Adds a cubic Bézier curve to the path, with the specified end point and control points. + +`func addEllipse(in: CGRect, transform: CGAffineTransform)` + +Adds an ellipse that fits inside the specified rectangle to the path. + +`func addLine(to: CGPoint)` + +Appends a straight line segment from the current point to the specified point. + +[`func addLines([CGPoint])`](https://developer.apple.com/documentation/swiftui/path/addlines(_:)) + +Adds a sequence of connected straight-line segments to the path. + +`func addPath(Path, transform: CGAffineTransform)` + +Appends another path value to this path. + +`func addQuadCurve(to: CGPoint, control: CGPoint)` + +Adds a quadratic Bézier curve to the path, with the specified end point and control point. + +`func addRect(CGRect, transform: CGAffineTransform)` + +Adds a rectangular subpath to the path. + +[`func addRects([CGRect], transform: CGAffineTransform)`](https://developer.apple.com/documentation/swiftui/path/addrects(_:transform:)) + +Adds a set of rectangular subpaths to the path. + +`func addRelativeArc(center: CGPoint, radius: CGFloat, startAngle: Angle, delta: Angle, transform: CGAffineTransform)` + +Adds an arc of a circle to the path, specified with a radius and a difference in angle. + +`func addRoundedRect(in: CGRect, cornerSize: CGSize, style: RoundedCornerStyle, transform: CGAffineTransform)` + +Adds a rounded rectangle to the path. + +`func closeSubpath()` + +Closes and completes the current subpath. + +### Transforming the path + +Returns a path constructed by applying the transform to all points of the path. + +Returns a path constructed by translating all its points. + +Returns a partial copy of the path. + +### Performing operations on the path + +Returns a new path with filled regions common to both paths. + +Returns a new path with a line from this path that overlaps the filled regions of the given path. + +Returns a new path with a line from this path that does not overlap the filled region of the given path. + +Returns a new weakly-simple copy of this path. + +Returns a new path with filled regions from this path that are not in the given path. + +Returns a new path with filled regions either from this path or the given path, but not in both. + +Returns a new path with filled regions in either this path or the given path. + +### Operating over path elements + +Calls `body` with each element in the path. + +`enum Element` + +An element of a path. + +### Applying a style + +Returns a stroked copy of the path using `style` to define how the stroked outline is created. + +### Instance Methods + +`func addRoundedRect(in: CGRect, cornerRadii: RectangleCornerRadii, style: RoundedCornerStyle, transform: CGAffineTransform)` + +Adds a rounded rectangle with uneven corners to the path. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `CustomStringConvertible` +- `Equatable` +- `LosslessStringConvertible` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/phaseanimator + + + +--- + +# https://developer.apple.com/documentation/swiftui/picker + +- SwiftUI +- Picker + +Structure + +# Picker + +A control for selecting from a set of mutually exclusive values. + +## Mentioned in + +Picking container views for your content + +Performing a search operation + +Scoping a search operation + +Populating SwiftUI menus with adaptive controls + +## Overview + +You create a picker by providing a selection binding, a label, and the content for the picker to display. Set the `selection` parameter to a bound property that provides the value to display as the current selection. Set the label to a view that visually describes the purpose of selecting content in the picker, and then provide the content for the picker to display. + +For example, consider an enumeration of ice cream flavors and a `State` variable to hold the selected flavor: + +enum Flavor: String, CaseIterable, Identifiable { +case chocolate, vanilla, strawberry +var id: Self { self } +} + +@State private var selectedFlavor: Flavor = .chocolate + +You can create a picker to select among the values by providing a label, a binding to the current selection, and a collection of views for the picker’s content. Append a tag to each of these content views using the `View/tag(_:)` view modifier so that the type of each selection matches the type of the bound state variable: + +List { +Picker("Flavor", selection: $selectedFlavor) { +Text("Chocolate").tag(Flavor.chocolate) +Text("Vanilla").tag(Flavor.vanilla) +Text("Strawberry").tag(Flavor.strawberry) +} +} + +If you provide a string label for the picker, as the example above does, the picker uses it to initialize a `Text` view as a label. Alternatively, you can use the `init(selection:content:label:)` initializer to compose the label from other views. The exact appearance of the picker depends on the context. If you use a picker in a `List` in iOS, it appears in a row with the label and selected value, and a chevron to indicate that you can tap the row to select a new value: + +For cases where adding a subtitle to the label is desired, use a view builder that creates multiple `Text` views where the first text represents the title and the second text represents the subtitle: + +List { +Picker(selection: $selectedFlavor) { +Text("Chocolate").tag(Flavor.chocolate) +Text("Vanilla").tag(Flavor.vanilla) +Text("Strawberry").tag(Flavor.strawberry) +} label: { +Text("Flavor") +Text("Choose your favorite flavor") +} +} + +### Iterating over a picker’s options + +To provide selection values for the `Picker` without explicitly listing each option, you can create the picker with a `ForEach`: + +Picker("Flavor", selection: $selectedFlavor) { +ForEach(Flavor.allCases) { flavor in +Text(flavor.rawValue.capitalized) +} +} + +`ForEach` automatically assigns a tag to the selection views using each option’s `id`. This is possible because `Flavor` conforms to the `Identifiable` protocol. + +The example above relies on the fact that `Flavor` defines the type of its `id` parameter to exactly match the selection type. If that’s not the case, you need to override the tag. For example, consider a `Topping` type and a suggested topping for each flavor: + +enum Topping: String, CaseIterable, Identifiable { +case nuts, cookies, blueberries +var id: Self { self } +} + +extension Flavor { +var suggestedTopping: Topping { +switch self { +case .chocolate: return .nuts +case .vanilla: return .cookies +case .strawberry: return .blueberries +} +} +} + +@State private var suggestedTopping: Topping = .nuts + +The following example shows a picker that’s bound to a `Topping` type, while the options are all `Flavor` instances. Each option uses the tag modifier to associate the suggested topping with the flavor it displays: + +List { +Picker("Flavor", selection: $suggestedTopping) { +ForEach(Flavor.allCases) { flavor in +Text(flavor.rawValue.capitalized) +.tag(flavor.suggestedTopping) +} +} +HStack { +Text("Suggested Topping") +Spacer() +Text(suggestedTopping.rawValue.capitalized) +.foregroundStyle(.secondary) +} +} + +When the user selects chocolate, the picker sets `suggestedTopping` to the value in the associated tag: + +Another example of when the views in a picker’s `ForEach` need an explicit tag modifier is when you select over the cases of an enumeration that conforms to the `Identifiable` protocol by using anything besides `Self` as the `id` parameter type. For example, a string enumeration might use the case’s `rawValue` string as the `id`. That identifier type doesn’t match the selection type, which is the type of the enumeration itself. + +### Styling pickers + +You can customize the appearance and interaction of pickers using styles that conform to the `PickerStyle` protocol, like `segmented` or `menu`. To set a specific style for all picker instances within a view, use the `pickerStyle(_:)` modifier. The following example applies the `segmented` style to two pickers that independently select a flavor and a topping: + +VStack { +Picker("Flavor", selection: $selectedFlavor) { +ForEach(Flavor.allCases) { flavor in +Text(flavor.rawValue.capitalized) +} +} +Picker("Topping", selection: $selectedTopping) { +ForEach(Topping.allCases) { topping in +Text(topping.rawValue.capitalized) +} +} +} +.pickerStyle(.segmented) + +## Topics + +### Creating a picker + +`init(_:selection:content:)` + +Creates a picker that generates its label from a localized string key. + +Creates a picker that displays a custom label. + +### Creating a picker for a collection + +`init(_:sources:selection:content:)` + +Creates a picker bound to a collection of bindings that generates its label from a string. + +`init(sources: C, selection: KeyPath>, content: () -> Content, label: () -> Label)` + +### Creating a picker with an image label + +`init(_:image:selection:content:)` + +Creates a picker that generates its label from a localized string key and image resource + +`init(_:image:sources:selection:content:)` + +Creates a picker bound to a collection of bindings that generates its label from a string and image resource. + +`init(_:systemImage:selection:content:)` + +Creates a picker that generates its label from a localized string key and system image. + +`init(_:systemImage:sources:selection:content:)` + +### Deprecated initializers + +Deprecated + +### Initializers + +`init(_:image:selection:content:currentValueLabel:)` + +Creates a picker that accepts a custom current value label and generates its label from a localized string key and image resource + +`init(_:image:sources:selection:content:currentValueLabel:)` + +Creates a picker bound to a collection of bindings that accepts a custom current value label and generates its label from a string and image resource. + +`init(_:selection:content:currentValueLabel:)` + +Creates a picker that generates its label from a localized string key and accepts a custom current value label. + +`init(_:sources:selection:content:currentValueLabel:)` + +Creates a picker bound to a collection of bindings that generates its label from a string and accepts a custom current value label. + +`init(_:systemImage:selection:content:currentValueLabel:)` + +Creates a picker that accepts a custom current value label and generates its label from a localized string key and system image. + +`init(_:systemImage:sources:selection:content:currentValueLabel:)` + +Creates a picker bound to a collection of bindings that accepts a custom current value label and generates its label from a string. + +Creates a picker that displays a custom label and a custom value label where applicable. + +`init(sources: C, selection: KeyPath>, content: () -> Content, label: () -> Label, currentValueLabel: () -> some View)` + +Creates a picker that displays a custom label and current value label where applicable. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Choosing from a set of options + +Sets the style for pickers within this view. + +Sets the style for radio group style pickers within this view to be horizontally positioned with the radio buttons inside the layout. + +Sets the default wheel-style picker item height. + +`var defaultWheelPickerItemHeight: CGFloat` + +The default height of an item in a wheel-style picker, such as a date picker. + +Specifies the selection effect to apply to a palette item. + +`struct PaletteSelectionEffect` + +The selection effect to apply to a palette item. + +--- + +# https://developer.apple.com/documentation/swiftui/placeholdercontentview + + + +--- + +# https://developer.apple.com/documentation/swiftui/presentedwindowcontent + +- SwiftUI +- PresentedWindowContent + +Structure + +# PresentedWindowContent + +A view that represents the content of a presented window. + +## Overview + +You don’t create this type directly. `WindowGroup` creates values for you. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/previewmodifiercontent + +- SwiftUI +- PreviewModifierContent + +Structure + +# PreviewModifierContent + +The type-erased content of a preview. + +struct PreviewModifierContent + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Defining a preview + +`macro Previewable()` + +Tag allowing a dynamic property to appear inline in a preview. + +`protocol PreviewProvider` + +A type that produces view previews in Xcode. + +`enum PreviewPlatform` + +Platforms that can run the preview. + +Sets a user visible name to show in the canvas for a preview. + +`protocol PreviewModifier` + +A type that defines an environment in which previews can appear. + +--- + +# https://developer.apple.com/documentation/swiftui/primitivebuttonstyleconfiguration/label-swift.struct + +- SwiftUI +- PrimitiveButtonStyleConfiguration +- PrimitiveButtonStyleConfiguration.Label + +Structure + +# PrimitiveButtonStyleConfiguration.Label + +A type-erased label of a button. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring a button’s label + +`let label: PrimitiveButtonStyleConfiguration.Label` + +A view that describes the effect of calling the button’s action. + +--- + +# https://developer.apple.com/documentation/swiftui/progressview + +- SwiftUI +- ProgressView + +Structure + +# ProgressView + +A view that shows the progress toward completion of a task. + +## Mentioned in + +Declaring a custom view + +## Overview + +Use a progress view to show that a task is incomplete but advancing toward completion. A progress view can show both determinate (percentage complete) and indeterminate (progressing or not) types of progress. + +Create a determinate progress view by initializing a `ProgressView` with a binding to a numeric value that indicates the progress, and a `total` value that represents completion of the task. By default, the progress is `0.0` and the total is `1.0`. + +The example below uses the state property `progress` to show progress in a determinate `ProgressView`. The progress view uses its default total of `1.0`, and because `progress` starts with an initial value of `0.5`, the progress view begins half-complete. A “More” button below the progress view allows people to increment the progress in increments of five percent: + +struct LinearProgressDemoView: View { +@State private var progress = 0.5 + +var body: some View { +VStack { +ProgressView(value: progress) +Button("More") { progress += 0.05 } +} +} +} + +To create an indeterminate progress view, use an initializer that doesn’t take a progress value: + +var body: some View { +ProgressView() +} + +You can also create a progress view that covers a closed range of `Date` values. As long as the current date is within the range, the progress view automatically updates, filling or depleting the progress view as it nears the end of the range. The following example shows a five-minute timer whose start time is that of the progress view’s initialization: + +struct DateRelativeProgressDemoView: View { +let workoutDateRange = Date()...Date().addingTimeInterval(5*60) + +var body: some View { +ProgressView(timerInterval: workoutDateRange) { +Text("Workout") +} +} +} + +### Styling progress views + +You can customize the appearance and interaction of progress views by creating styles that conform to the `ProgressViewStyle` protocol. To set a specific style for all progress view instances within a view, use the `progressViewStyle(_:)` modifier. In the following example, a custom style adds a rounded pink border to all progress views within the enclosing `VStack`: + +struct BorderedProgressViews: View { +var body: some View { +VStack { +ProgressView(value: 0.25) { Text("25% progress") } +ProgressView(value: 0.75) { Text("75% progress") } +} +.progressViewStyle(PinkBorderedProgressViewStyle()) +} +} + +struct PinkBorderedProgressViewStyle: ProgressViewStyle { + +ProgressView(configuration) +.padding(4) +.border(.pink, width: 3) +.cornerRadius(4) +} +} + +SwiftUI provides two built-in progress view styles, `linear` and `circular`, as well as an automatic style that defaults to the most appropriate style in the current context. The following example shows a circular progress view that starts at 60 percent completed. + +struct CircularProgressDemoView: View { +@State private var progress = 0.6 + +var body: some View { +VStack { +ProgressView(value: progress) +.progressViewStyle(.circular) +} +} +} + +On platforms other than macOS, the circular style may appear as an indeterminate indicator instead. + +## Topics + +### Creating an indeterminate progress view + +`init()` + +Creates a progress view for showing indeterminate progress, without a label. + +Creates a progress view for showing indeterminate progress that displays a custom label. + +`init(LocalizedStringKey)` + +Creates a progress view for showing indeterminate progress that generates its label from a localized string. + +Creates a progress view for showing indeterminate progress that generates its label from a string. + +### Creating a determinate progress view + +`init(Progress)` + +Creates a progress view for visualizing the given progress instance. + +Creates a progress view for showing determinate progress. + +`init(_:value:total:)` + +Creates a progress view for showing determinate progress that generates its label from a string. + +Creates a progress view for showing determinate progress, with a custom label. + +### Create a progress view spanning a date range + +Creates a progress view for showing continuous progress as time passes. + +Creates a progress view for showing continuous progress as time passes, with a descriptive label. + +Creates a progress view for showing continuous progress as time passes, with descriptive and current progress labels. + +### Initializers + +`init(_:)` + +Creates a progress view based on a style configuration. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Indicating a value + +`struct Gauge` + +A view that shows a value within a range. + +Sets the style for gauges within this view. + +Sets the style for progress views in this view. + +`struct DefaultDateProgressLabel` + +The default type of the current value label when used by a date-relative progress view. + +`struct DefaultButtonLabel` + +The default label to use for a button. + +Beta + +--- + +# https://developer.apple.com/documentation/swiftui/progressviewstyleconfiguration/currentvaluelabel-swift.struct + +- SwiftUI +- ProgressViewStyleConfiguration +- ProgressViewStyleConfiguration.CurrentValueLabel + +Structure + +# ProgressViewStyleConfiguration.CurrentValueLabel + +A type-erased label that describes the current value of a progress view. + +@MainActor @preconcurrency +struct CurrentValueLabel + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the current value label + +`var currentValueLabel: ProgressViewStyleConfiguration.CurrentValueLabel?` + +A view that describes the current value of a progress view. + +--- + +# https://developer.apple.com/documentation/swiftui/progressviewstyleconfiguration/label-swift.struct + +- SwiftUI +- ProgressViewStyleConfiguration +- ProgressViewStyleConfiguration.Label + +Structure + +# ProgressViewStyleConfiguration.Label + +A type-erased label describing the task represented by the progress view. + +@MainActor @preconcurrency +struct Label + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Configuring the label + +`var label: ProgressViewStyleConfiguration.Label?` + +A view that describes the task represented by the progress view. + +--- + +# https://developer.apple.com/documentation/swiftui/radialgradient + +- SwiftUI +- RadialGradient + +Structure + +# RadialGradient + +A radial gradient. + +@frozen +struct RadialGradient + +## Overview + +The gradient applies the color function as the distance from a center point, scaled to fit within the defined start and end radii. The gradient maps the unit space center point into the bounding rectangle of each shape filled with the gradient. + +When using a radial gradient as a shape style, you can also use `radialGradient(_:center:startRadius:endRadius:)`. + +## Topics + +### Creating a radial gradient + +`init(gradient: Gradient, center: UnitPoint, startRadius: CGFloat, endRadius: CGFloat)` + +Creates a radial gradient from a base gradient. + +[`init(colors: [Color], center: UnitPoint, startRadius: CGFloat, endRadius: CGFloat)`](https://developer.apple.com/documentation/swiftui/radialgradient/init(colors:center:startradius:endradius:)) + +Creates a radial gradient from a collection of colors. + +[`init(stops: [Gradient.Stop], center: UnitPoint, startRadius: CGFloat, endRadius: CGFloat)`](https://developer.apple.com/documentation/swiftui/radialgradient/init(stops:center:startradius:endradius:)) + +Creates a radial gradient from a collection of color stops. + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` +- `ShapeStyle` +- `View` + +## See Also + +### Supporting types + +`struct AngularGradient` + +An angular gradient. + +`struct EllipticalGradient` + +A radial gradient that draws an ellipse. + +`struct LinearGradient` + +A linear gradient. + +`struct Material` + +A background material type. + +`struct ImagePaint` + +A shape style that fills a shape by repeating a region of an image. + +`struct HierarchicalShapeStyle` + +A shape style that maps to one of the numbered content styles. + +`struct HierarchicalShapeStyleModifier` + +Styles that you can apply to hierarchical shapes. + +`struct ForegroundStyle` + +The foreground style in the current context. + +`struct BackgroundStyle` + +The background style in the current context. + +`struct SelectionShapeStyle` + +A style used to visually indicate selection following platform conventional colors and behaviors. + +`struct SeparatorShapeStyle` + +A style appropriate for foreground separator or border lines. + +`struct TintShapeStyle` + +A style that reflects the current tint color. + +`struct FillShapeStyle` + +A shape style that displays one of the overlay fills. + +`struct LinkShapeStyle` + +A style appropriate for links. + +`struct PlaceholderTextShapeStyle` + +A style appropriate for placeholder text. + +--- + +# https://developer.apple.com/documentation/swiftui/rectangle + +- SwiftUI +- Rectangle + +Structure + +# Rectangle + +A rectangular shape aligned inside the frame of the view containing it. + +@frozen +struct Rectangle + +## Topics + +### Creating a rectangle + +`init()` + +Creates a new rectangle shape. + +## Relationships + +### Conforms To + +- `Animatable` +- `BitwiseCopyable` +- `Copyable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Creating rectangular shapes + +`struct RoundedRectangle` + +A rectangular shape with rounded corners, aligned inside the frame of the view containing it. + +`enum RoundedCornerStyle` + +Defines the shape of a rounded rectangle’s corners. + +`struct UnevenRoundedRectangle` + +A rectangular shape with rounded corners with different values, aligned inside the frame of the view containing it. + +`struct RectangleCornerRadii` + +Describes the corner radius values of a rounded rectangle with uneven corners. + +--- + +# https://developer.apple.com/documentation/swiftui/rotatedshape + +- SwiftUI +- RotatedShape + +Structure + +# RotatedShape + +A shape with a rotation transform applied to it. + +@frozen + +## Topics + +### Creating a rotated shape + +`init(shape: Content, angle: Angle, anchor: UnitPoint)` + +### Getting the shape’s characteristics + +`var anchor: UnitPoint` + +`var angle: Angle` + +`var shape: Content` + +### Supporting types + +The data to animate. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `InsettableShape` +Conforms when `Content` conforms to `InsettableShape`. + +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Transforming a shape + +`struct ScaledShape` + +A shape with a scale transform applied to it. + +`struct OffsetShape` + +A shape with a translation offset transform applied to it. + +`struct TransformedShape` + +A shape with an affine transform applied to it. + +--- + +# https://developer.apple.com/documentation/swiftui/roundedrectangle + +- SwiftUI +- RoundedRectangle + +Structure + +# RoundedRectangle + +A rectangular shape with rounded corners, aligned inside the frame of the view containing it. + +@frozen +struct RoundedRectangle + +## Topics + +### Creating a rounded rectangle + +`init(cornerRadius: CGFloat, style: RoundedCornerStyle)` + +Creates a new rounded rectangle shape. + +`init(cornerSize: CGSize, style: RoundedCornerStyle)` + +### Getting the shape’s characteristics + +`var cornerSize: CGSize` + +The width and height of the rounded rectangle’s corners. + +`var style: RoundedCornerStyle` + +The style of corners drawn by the rounded rectangle. + +### Supporting types + +`var animatableData: CGSize.AnimatableData` + +The data to animate. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Creating rectangular shapes + +`struct Rectangle` + +A rectangular shape aligned inside the frame of the view containing it. + +`enum RoundedCornerStyle` + +Defines the shape of a rounded rectangle’s corners. + +`struct UnevenRoundedRectangle` + +A rectangular shape with rounded corners with different values, aligned inside the frame of the view containing it. + +`struct RectangleCornerRadii` + +Describes the corner radius values of a rounded rectangle with uneven corners. + +--- + +# https://developer.apple.com/documentation/swiftui/scaledshape + +- SwiftUI +- ScaledShape + +Structure + +# ScaledShape + +A shape with a scale transform applied to it. + +@frozen + +## Topics + +### Creating a scaled shape + +`init(shape: Content, scale: CGSize, anchor: UnitPoint)` + +### Getting the shape’s characteristics + +`var anchor: UnitPoint` + +`var scale: CGSize` + +`var shape: Content` + +### Supporting types + +The data to animate. + +## Relationships + +### Conforms To + +- `Animatable` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Transforming a shape + +`struct RotatedShape` + +A shape with a rotation transform applied to it. + +`struct OffsetShape` + +A shape with a translation offset transform applied to it. + +`struct TransformedShape` + +A shape with an affine transform applied to it. + +--- + +# https://developer.apple.com/documentation/swiftui/scrollview + +- SwiftUI +- ScrollView + +Structure + +# ScrollView + +A scrollable view. + +## Mentioned in + +Picking container views for your content + +Creating performant scrollable stacks + +Grouping data with lazy stack views + +## Overview + +The scroll view displays its content within the scrollable content region. As the user performs platform-appropriate scroll gestures, the scroll view adjusts what portion of the underlying content is visible. `ScrollView` can scroll horizontally, vertically, or both, but does not provide zooming functionality. + +In the following example, a `ScrollView` allows the user to scroll through a `VStack` containing 100 `Text` views. The image after the listing shows the scroll view’s temporarily visible scrollbar at the right; you can disable it with the `showsIndicators` parameter of the `ScrollView` initializer. + +var body: some View { +ScrollView { +VStack(alignment: .leading) { +ForEach(0..<100) { +Text("Row \($0)") +} +} +} +} + +### Controlling Scroll Position + +You can influence where a scroll view is initially scrolled by using the `defaultScrollAnchor(_:)` view modifier. + +Provide a value of \`UnitPoint/center\`\` to have the scroll view start in the center of its content when a scroll view is scrollable in both axes. + +ScrollView([.horizontal, .vertical]) { +// initially centered content +} +.defaultScrollAnchor(.center) + +Or provide an alignment of \`UnitPoint/bottom\`\` to have the scroll view start at the bottom of its content when a scroll view is scrollable in its vertical axes. + +ScrollView { +// initially bottom aligned content +} +.defaultScrollAnchor(.bottom) + +After the scroll view initially renders, the user may scroll the content of the scroll view. + +To perform programmatic scrolling, wrap one or more scroll views with a `ScrollViewReader`. + +## Topics + +### Creating a scroll view + +Creates a new instance that’s scrollable in the direction of the given axis and can show indicators while scrolling. + +Deprecated + +### Configuring a scroll view + +`var content: Content` + +The scroll view’s content. + +`var axes: Axis.Set` + +The scrollable axes of the scroll view. + +`var showsIndicators: Bool` + +A value that indicates whether the scroll view displays the scrollable component of the content offset, in a way that’s suitable for the platform. + +### Supporting types + +`var body: some View` + +The content and behavior of the scroll view. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating a scroll view + +`struct ScrollViewReader` + +A view that provides programmatic scrolling, by working with a proxy to scroll to known child views. + +`struct ScrollViewProxy` + +A proxy value that supports programmatic scrolling of the scrollable views within a view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/scrollviewreader + +- SwiftUI +- ScrollViewReader + +Structure + +# ScrollViewReader + +A view that provides programmatic scrolling, by working with a proxy to scroll to known child views. + +@frozen + +## Overview + +The scroll view reader’s content view builder receives a `ScrollViewProxy` instance; you use the proxy’s `scrollTo(_:anchor:)` to perform scrolling. + +The following example creates a `ScrollView` containing 100 views that together display a color gradient. It also contains two buttons, one each at the top and bottom. The top button tells the `ScrollViewProxy` to scroll to the bottom button, and vice versa. + +@Namespace var topID +@Namespace var bottomID + +var body: some View { +ScrollViewReader { proxy in +ScrollView { +Button("Scroll to Bottom") { +withAnimation { +proxy.scrollTo(bottomID) +} +} +.id(topID) + +VStack(spacing: 0) { +ForEach(0..<100) { i in +color(fraction: Double(i) / 100) +.frame(height: 32) +} +} + +Button("Top") { +withAnimation { +proxy.scrollTo(topID) +} +} +.id(bottomID) +} +} +} + +Color(red: fraction, green: 1 - fraction, blue: 0.5) +} + +## Topics + +### Creating a scroll view reader + +Creates an instance that can perform programmatic scrolling of its child scroll views. + +### Configuring a scroll view reader + +The view builder that creates the reader’s content. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating a scroll view + +`struct ScrollView` + +A scrollable view. + +`struct ScrollViewProxy` + +A proxy value that supports programmatic scrolling of the scrollable views within a view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/searchunavailablecontent/actions + +- SwiftUI +- SearchUnavailableContent +- SearchUnavailableContent.Actions + +Structure + +# SearchUnavailableContent.Actions + +A view that represents the actions of a static `ContentUnavailableView.search` view. + +@MainActor @preconcurrency +struct Actions + +## Overview + +You don’t create this type directly. SwiftUI creates it when you build a search `ContentUnavailableView`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting content types + +`struct Description` + +A view that represents the description of a static `ContentUnavailableView.search` view. + +`struct Label` + +A view that represents the label of a static placeholder search view. + +--- + +# https://developer.apple.com/documentation/swiftui/searchunavailablecontent/description + +- SwiftUI +- SearchUnavailableContent +- SearchUnavailableContent.Description + +Structure + +# SearchUnavailableContent.Description + +A view that represents the description of a static `ContentUnavailableView.search` view. + +@MainActor @preconcurrency +struct Description + +## Overview + +You don’t create this type directly. SwiftUI creates it when you build a search\`\`ContentUnavailableView\`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting content types + +`struct Actions` + +A view that represents the actions of a static `ContentUnavailableView.search` view. + +`struct Label` + +A view that represents the label of a static placeholder search view. + +--- + +# https://developer.apple.com/documentation/swiftui/searchunavailablecontent/label + +- SwiftUI +- SearchUnavailableContent +- SearchUnavailableContent.Label + +Structure + +# SearchUnavailableContent.Label + +A view that represents the label of a static placeholder search view. + +@MainActor @preconcurrency +struct Label + +## Overview + +You don’t create this type directly. SwiftUI creates it when you build a search `ContentUnavailableView`. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting content types + +`struct Actions` + +A view that represents the actions of a static `ContentUnavailableView.search` view. + +`struct Description` + +A view that represents the description of a static `ContentUnavailableView.search` view. + +--- + +# https://developer.apple.com/documentation/swiftui/section + +- SwiftUI +- Section + +Structure + +# Section + +A container view that you can use to add hierarchy within certain views. + +## Mentioned in + +Grouping data with lazy stack views + +Populating SwiftUI menus with adaptive controls + +Suggesting search terms + +Displaying data in lists + +## Overview + +Use `Section` instances in views like `List`, `Picker`, and `Form` to organize content into separate sections. Each section has custom content that you provide on a per-instance basis. You can also provide headers and footers for each section. + +### Collapsible sections + +Create sections that expand and collapse by using an initializer that accepts an `isExpanded` binding. A collapsible section in a `List` that uses the `sidebar` style shows a disclosure indicator next to the section’s header. Tapping on the disclosure indicator toggles the appearance of the section’s content. + +## Topics + +### Creating a section + +`init(content:)` + +Creates a section with the provided section content. + +`init(_:content:)` + +### Adding headers and footers + +`init(content:header:)` + +Creates a section with a header and the provided section content. + +Creates a section with a footer and the provided section content. + +Creates a section with a header, footer, and the provided section content. + +### Controlling collapsibility + +`init(_:isExpanded:content:)` + +`init(isExpanded:content:header:)` + +Creates a section with a header, the provided section content, and a binding representing the section’s expansion state. + +### Deprecated symbols + +Deprecated + +Sets whether a section can be collapsed by the user. + +## Relationships + +### Conforms To + +- `Copyable` +- `TableRowContent` +Conforms when `Parent` conforms to `TableRowContent`, `Content` conforms to `TableRowContent`, and `Footer` conforms to `TableRowContent`. + +- `View` +Conforms when `Parent` conforms to `View`, `Content` conforms to `View`, and `Footer` conforms to `View`. + +## See Also + +### Organizing views into sections + +`struct SectionCollection` + +An opaque collection representing the sections of view. + +`struct SectionConfiguration` + +Specifies the contents of a section. + +--- + +# https://developer.apple.com/documentation/swiftui/sectionconfiguration/actions-swift.struct + +- SwiftUI +- SectionConfiguration +- SectionConfiguration.Actions + +Structure + +# SectionConfiguration.Actions + +The type-erased actions of a section. + +@MainActor @preconcurrency +struct Actions + +## Relationships + +### Conforms To + +- `Sendable` +- `SendableMetatype` +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/securefield + +- SwiftUI +- SecureField + +Structure + +# SecureField + +A control into which people securely enter private text. + +## Overview + +Use a secure field when you want the behavior of a `TextField`, but you want to hide the field’s text. Typically, you use this for entering passwords and other sensitive information, as the second field in the following screenshot demonstrates: + +The field: + +- Displays one dot for each character someone types. + +- Hides the dots when someone takes a screenshot in iOS. + +- Prevents anyone from cutting or copying the field’s contents. + +- Displays an indicator when Caps Lock is enabled. + +### Bind to a string + +A secure field binds to a string value and updates the string on every keystroke or other edit, so you can read its value at any time from elsewhere in your code. The following code shows how to create the above interface, with the secure field bound to a `password` string: + +@State private var username: String = "" +@State private var password: String = "" + +var body: some View { +VStack { +TextField("Username", text: $username) +.autocorrectionDisabled(true) +#if !os(macOS) +.textInputAutocapitalization(.never) +#endif + +SecureField("Password", text: $password) +.onSubmit { +handleLogin(username: username, password: password) +} +} +.textFieldStyle(.roundedBorder) +} + +The field in the above example has an `onSubmit(of:_:)` modifier that sends the `username` and `password` strings to a custom `handleLogin(username:password:)` method if someone presses the Return key while the secure field has focus. You can alternatively provide another mechanism — like a button — to do the same thing. + +### Guide people with a prompt + +In addition to the string or view that you provide as a label, you can also provide a `Text` view prompt to help guide someone who uses the field, as the following `Form` does: + +Form { +TextField(text: $username, prompt: Text("Required")) { +Text("Username") +} +.autocorrectionDisabled(true) +#if !os(macOS) +#endif + +SecureField(text: $password, prompt: Text("Required")) { +Text("Password") +} +} + +The system uses the label and prompt in different ways depending on the context. For example, a form in macOS places the label against the leading edge of the field and uses the prompt as placeholder text inside the field. The same form in iOS also uses the prompt as placeholder text, but doesn’t display the label: + +If you remove the prompt from the previous example, the field keeps the label on the leading edge and omits the placeholder text in macOS, but displays the label as a placeholder in iOS: + +## Topics + +### Creating a secure text field + +`init(_:text:)` + +Creates a secure field with a prompt generated from a `Text`. + +`init(_:text:prompt:)` + +### Deprecated initializers + +`init(_:text:onCommit:)` + +Creates an instance. + +Deprecated + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting text input + +Building rich SwiftUI text experiences + +Build an editor for formatted text using SwiftUI text editor views and attributed strings. + +`struct TextField` + +A control that displays an editable text interface. + +Sets the style for text fields within this view. + +`struct TextEditor` + +A view that can display and edit long-form text. + +--- + +# https://developer.apple.com/documentation/swiftui/sharelink + +- SwiftUI +- ShareLink + +Structure + +# ShareLink + +A view that controls a sharing presentation. + +## Overview + +People tap or click on a share link to present a share interface. The link typically uses a system-standard appearance; you only need to supply the content to share: + +ShareLink(item: URL(string: "https://developer.apple.com/xcode/swiftui/")!) + +You can control the appearance of the link by providing view content. For example, you can use a `Label` to display a link with a custom icon: + +ShareLink(item: URL(string: "https://developer.apple.com/xcode/swiftui/")!) { +Label("Share", image: "MyCustomShareIcon") +} + +If you only wish to customize the link’s title, you can use one of the convenience initializers that takes a string and creates a `Label` for you: + +ShareLink("Share URL", item: URL(string: "https://developer.apple.com/xcode/swiftui/")!) + +The link can share any content that is `Transferable`. Many framework types, like `URL`, already conform to this protocol. You can also make your own types transferable. + +For example, you can use `ProxyRepresentation` to resolve your own type to a framework type: + +struct Photo: Transferable { +static var transferRepresentation: some TransferRepresentation { +ProxyRepresentation(\.image) +} + +public var image: Image +public var caption: String +} + +struct PhotoView: View { +let photo: Photo + +var body: View { +photo.image +.toolbar { +ShareLink( +item: photo, +preview: SharePreview( +photo.caption, +image: photo.image)) +} +} +} + +Sometimes the content that your app shares isn’t immediately available. You can use `FileRepresentation` or `DataRepresentation` when you need an asynchronous operation, like a network request, to retrieve and prepare the content. + +A `Transferable` type also lets you provide multiple content types for a single shareable item. The share interface shows relevant sharing services based on the types that you provide. + +The previous example also shows how you provide a preview of your content to show in the share interface. + +A preview isn’t required when sharing URLs or non-attributed strings. When sharing these types of content, the system can automatically determine a preview. + +You can provide a preview even when it’s optional. For instance, when sharing URLs, the automatic preview first shows a placeholder link icon alongside the base URL while fetching the link’s metadata over the network. The preview updates once the link’s icon and title become available. If you provide a preview instead, the preview appears immediately without fetching data over the network. + +Some share activities support subject and message fields. You can pre-populate these fields with the `subject` and `message` parameters: + +ShareLink( +item: photo, +subject: Text("Cool Photo"), +message: Text("Check it out!") +preview: SharePreview( +photo.caption, +image: photo.image)) + +## Topics + +### Sharing an item + +`init(item:subject:message:)` + +Creates an instance that presents the share interface. + +`init(_:item:subject:message:)` + +Creates an instance, with a custom label, that presents the share interface. + +`init(item:subject:message:label:)` + +### Sharing an item with a preview + +`init(_:item:subject:message:preview:)` + +### Sharing items + +`init(items:subject:message:)` + +`init(_:items:subject:message:)` + +`init(items:subject:message:label:)` + +### Sharing items with a preview + +`init(_:items:subject:message:preview:)` + +### Supporting types + +`struct DefaultShareLinkLabel` + +The default label used for a share link. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Linking to other content + +`struct Link` + +A control for navigating to a URL. + +`struct SharePreview` + +A representation of a type to display in a share preview. + +`struct TextFieldLink` + +A control that requests text input from the user when pressed. + +`struct HelpLink` + +A button with a standard appearance that opens app-specific help documentation. + +--- + +# https://developer.apple.com/documentation/swiftui/slider + +- SwiftUI +- Slider + +Structure + +# Slider + +A control for selecting a value from a bounded linear range of values. + +## Mentioned in + +Populating SwiftUI menus with adaptive controls + +## Overview + +A slider consists of a “thumb” image that the user moves between two extremes of a linear “track”. The ends of the track represent the minimum and maximum possible values. As the user moves the thumb, the slider updates its bound value. + +The following example shows a slider bound to the value `speed`. As the slider updates this value, a bound `Text` view shows the value updating. The `onEditingChanged` closure passed to the slider receives callbacks when the user drags the slider. The example uses this to change the color of the value text. + +@State private var speed = 50.0 +@State private var isEditing = false + +var body: some View { +VStack { +Slider( +value: $speed, +in: 0...100, +onEditingChanged: { editing in +isEditing = editing +} +) +Text("\(speed)") +.foregroundColor(isEditing ? .red : .blue) +} +} + +You can also use a `step` parameter to provide incremental steps along the path of the slider. For example, if you have a slider with a range of `0` to `100`, and you set the `step` value to `5`, the slider’s increments would be `0`, `5`, `10`, and so on. The following example shows this approach, and also adds optional minimum and maximum value labels. + +var body: some View { +Slider( +value: $speed, +in: 0...100, +step: 5 +) { +Text("Speed") +} minimumValueLabel: { +Text("0") +} maximumValueLabel: { +Text("100") +} onEditingChanged: { editing in +isEditing = editing +} +Text("\(speed)") +.foregroundColor(isEditing ? .red : .blue) +} + +The slider also uses the `step` to increase or decrease the value when a VoiceOver user adjusts the slider with voice commands. + +## Topics + +### Creating a slider + +Creates a slider to select a value from a given range. + +Creates a slider to select a value from a given range, subject to a step increment. + +### Creating a slider with labels + +Creates a slider to select a value from a given range, which displays the provided label. + +Creates a slider to select a value from a given range, subject to a step increment, which displays the provided label. + +Creates a slider to select a value from a given range, which displays the provided labels. + +Creates a slider to select a value from a given range, subject to a step increment, which displays the provided labels. + +### Deprecated initializers + +Deprecated + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting numeric inputs + +`struct Stepper` + +A control that performs increment and decrement actions. + +`struct Toggle` + +A control that toggles between on and off states. + +Sets the style for toggles in a view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/spacer + +- SwiftUI +- Spacer + +Structure + +# Spacer + +A flexible space that expands along the major axis of its containing stack layout, or on both axes if not contained in a stack. + +@frozen +struct Spacer + +## Mentioned in + +Building layouts with stack views + +Adding a background to your view + +Picking container views for your content + +## Overview + +A spacer creates an adaptive view with no content that expands as much as it can. For example, when placed within an `HStack`, a spacer expands horizontally as much as the stack allows, moving sibling views out of the way, within the limits of the stack’s size. SwiftUI sizes a stack that doesn’t contain a spacer up to the combined ideal widths of the content of the stack’s child views. + +The following example provides a simple checklist row to illustrate how you can use a spacer: + +struct ChecklistRow: View { +let name: String + +var body: some View { +HStack { +Image(systemName: "checkmark") +Text(name) +} +.border(Color.blue) +} +} + +Adding a spacer before the image creates an adaptive view with no content that expands to push the image and text to the right side of the stack. The stack also now expands to take as much space as the parent view allows, shown by the blue border that indicates the boundary of the stack: + +var body: some View { +HStack { +Spacer() +Image(systemName: "checkmark") +Text(name) +} +.border(Color.blue) +} +} + +Moving the spacer between the image and the name pushes those elements to the left and right sides of the `HStack`, respectively. Because the stack contains the spacer, it expands to take as much horizontal space as the parent view allows; the blue border indicates its size: + +var body: some View { +HStack { +Image(systemName: "checkmark") +Spacer() +Text(name) +} +.border(Color.blue) +} +} + +Adding two spacer views on the outside of the stack leaves the image and text together, while the stack expands to take as much horizontal space as the parent view allows: + +var body: some View { +HStack { +Spacer() +Image(systemName: "checkmark") +Text(name) +Spacer() +} +.border(Color.blue) +} +} + +## Topics + +### Creating a spacer + +`init(minLength: CGFloat?)` + +`var minLength: CGFloat?` + +The minimum length this spacer can be shrunk to, along the axis or axes of expansion. + +## Relationships + +### Conforms To + +- `BitwiseCopyable` +- `Copyable` +- `Sendable` +- `SendableMetatype` +- `View` + +## See Also + +### Separators + +`struct Divider` + +A visual element that can be used to separate other content. + +--- + +# https://developer.apple.com/documentation/swiftui/stepper + +- SwiftUI +- Stepper + +Structure + +# Stepper + +A control that performs increment and decrement actions. + +## Overview + +Use a stepper control when you want the user to have granular control while incrementing or decrementing a value. For example, you can use a stepper to: + +- Change a value up or down by `1`. + +- Operate strictly over a prescribed range. + +- Step by specific amounts over a stepper’s range of possible values. + +The example below uses an array that holds a number of `Color` values, a local state variable, `value`, to set the control’s background color, and title label. When the user clicks or taps the stepper’s increment or decrement buttons, SwiftUI executes the relevant closure that updates `value`, wrapping the `value` to prevent overflow. SwiftUI then re-renders the view, updating the text and background color to match the current index: + +struct StepperView: View { +@State private var value = 0 +let colors: [Color] = [.orange, .red, .gray, .blue,\ +.green, .purple, .pink] + +func incrementStep() { +value += 1 + +} + +func decrementStep() { +value -= 1 +if value < 0 { value = colors.count - 1 } +} + +var body: some View { +Stepper { +Text("Value: \(value) Color: \(colors[value].description)") +} onIncrement: { +incrementStep() +} onDecrement: { +decrementStep() +} +.padding(5) +.background(colors[value]) +} +} + +The following example shows a stepper that displays the effect of incrementing or decrementing a value with the step size of `step` with the bounds defined by `range`: + +struct StepperView: View { +@State private var value = 0 +let step = 5 +let range = 1...50 + +var body: some View { +Stepper( +value: $value, +in: range, +step: step +) { +Text("Current: \(value) in \(range.description) " + +"stepping by \(step)") +} +.padding(10) +} +} + +## Topics + +### Creating a stepper + +Creates a stepper configured to increment or decrement a binding to a value using a step value you provide. + +Creates a stepper configured to increment or decrement a binding to a value using a step value you provide, displaying its value with an applied format style. + +`init(_:value:step:onEditingChanged:)` + +Creates a stepper with a title and configured to increment and decrement a binding to a value and step amount you provide. + +`init(_:value:step:format:onEditingChanged:)` + +Creates a stepper with a title key and configured to increment and decrement a binding to a value and step amount you provide, displaying its value with an applied format style. + +### Creating a stepper over a range + +Creates a stepper configured to increment or decrement a binding to a value using a step value and within a range of values you provide. + +Creates a stepper configured to increment or decrement a binding to a value using a step value and within a range of values you provide, displaying its value with an applied format style. + +`init(_:value:in:step:onEditingChanged:)` + +Creates a stepper instance that increments and decrements a binding to a value, by a step size and within a closed range that you provide. + +`init(_:value:in:step:format:onEditingChanged:)` + +Creates a stepper instance that increments and decrements a binding to a value, by a step size and within a closed range that you provide, displaying its value with an applied format style. + +### Creating a stepper with change behavior + +Creates a stepper instance that performs the closures you provide when the user increments or decrements the stepper. + +`init(_:onIncrement:onDecrement:onEditingChanged:)` + +Creates a stepper that uses a title key and executes the closures you provide when the user clicks or taps the stepper’s increment and decrement buttons. + +### Deprecated initializers + +Deprecated + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting numeric inputs + +`struct Slider` + +A control for selecting a value from a bounded linear range of values. + +`struct Toggle` + +A control that toggles between on and off states. + +Sets the style for toggles in a view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/strokebordershapeview + +- SwiftUI +- StrokeBorderShapeView + +Structure + +# StrokeBorderShapeView + +A shape provider that strokes the border of its shape. + +@frozen + +## Overview + +You don’t create this type directly; it’s the return type of `Shape.strokeBorder`. + +## Topics + +### Creating a stroke border shape view + +`init(shape: Content, style: Style, strokeStyle: StrokeStyle, isAntialiased: Bool, background: Background)` + +Create a stroke border shape. + +### Getting shape view properties + +`var background: Background` + +The background shown beneath this view. + +`var isAntialiased: Bool` + +Whether this shape should be drawn antialiased. + +`var shape: Content` + +The shape that this type draws and provides for other drawing operations. + +`var strokeStyle: StrokeStyle` + +The stroke style used when stroking this view’s shape. + +`var style: Style` + +The style that strokes the border of this view’s shape. + +## Relationships + +### Conforms To + +- `ShapeView` +- `View` + +## See Also + +### Defining shape behavior + +`protocol ShapeView` + +A view that provides a shape that you can use for drawing operations. + +`protocol Shape` + +A 2D shape that you can use when drawing a view. + +`struct AnyShape` + +A type-erased shape value. + +`enum ShapeRole` + +Ways of styling a shape. + +`struct StrokeStyle` + +The characteristics of a stroke that traces a path. + +`struct StrokeShapeView` + +A shape provider that strokes its shape. + +`struct FillStyle` + +A style for rasterizing vector shapes. + +`struct FillShapeView` + +A shape provider that fills its shape. + +--- + +# https://developer.apple.com/documentation/swiftui/strokeshapeview + +- SwiftUI +- StrokeShapeView + +Structure + +# StrokeShapeView + +A shape provider that strokes its shape. + +@frozen + +## Overview + +You don’t create this type directly; it’s the return type of `Shape.stroke`. + +## Topics + +### Creating a stroke shape view + +`init(shape: Content, style: Style, strokeStyle: StrokeStyle, isAntialiased: Bool, background: Background)` + +Create a StrokeShapeView. + +### Getting shape view properties + +`var background: Background` + +The background shown beneath this view. + +`var isAntialiased: Bool` + +Whether this shape should be drawn antialiased. + +`var shape: Content` + +The shape that this type draws and provides for other drawing operations. + +`var strokeStyle: StrokeStyle` + +The stroke style used when stroking this view’s shape. + +`var style: Style` + +The style that strokes this view’s shape. + +## Relationships + +### Conforms To + +- `ShapeView` +- `View` + +## See Also + +### Defining shape behavior + +`protocol ShapeView` + +A view that provides a shape that you can use for drawing operations. + +`protocol Shape` + +A 2D shape that you can use when drawing a view. + +`struct AnyShape` + +A type-erased shape value. + +`enum ShapeRole` + +Ways of styling a shape. + +`struct StrokeStyle` + +The characteristics of a stroke that traces a path. + +`struct StrokeBorderShapeView` + +A shape provider that strokes the border of its shape. + +`struct FillStyle` + +A style for rasterizing vector shapes. + +`struct FillShapeView` + +A shape provider that fills its shape. + +--- + +# https://developer.apple.com/documentation/swiftui/subscriptionview + +- SwiftUI +- SubscriptionView + +Structure + +# SubscriptionView + +A view that subscribes to a publisher with an action. + +@frozen + +## Topics + +### Managing the subscription + +`var publisher: PublisherType` + +The `Publisher` that is being subscribed. + +The `Action` executed when `publisher` emits an event. + +`var content: Content` + +The content view. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Supporting view types + +`struct AnyView` + +A type-erased view. + +`struct EmptyView` + +A view that doesn’t contain any content. + +`struct EquatableView` + +A view type that compares itself against its previous value and prevents its child updating if its new value is the same as its old value. + +`struct TupleView` + +A View created from a swift tuple of View values. + +--- + +# https://developer.apple.com/documentation/swiftui/subview + +- SwiftUI +- Subview + +Structure + +# Subview + +An opaque value representing a subview of another view. + +struct Subview + +## Overview + +Access to a `Subview` can be obtained by using `ForEach(subviews:)` or `Group(subviews:)`. + +Subviews are proxies to the resolved view they represent, meaning that modifiers applied to the original view will be applied before modifiers applied to the subview, and the view is resolved using the environment of its container, _not_ the environment of the its subview proxy. Additionally, because subviews must represent a single leaf view, or container, a subview may represent a view after the application of styles. As such, attempting to apply a style to it may have no affect. + +## Topics + +### Structures + +`struct ID` + +A unique identifier for a subview. + +### Instance Properties + +`var containerValues: ContainerValues` + +The container values associated with the given subview. + +`var id: Subview.ID` + +The unique identifier of the view. + +### Enumerations + +`enum ContainerSizingOptions` + +Options on how all subviews should be sized when in a container. + +Beta + +## Relationships + +### Conforms To + +- `Identifiable` +- `View` + +## See Also + +### Accessing a container’s subviews + +`struct SubviewsCollection` + +An opaque collection representing the subviews of view. + +`struct SubviewsCollectionSlice` + +A slice of a SubviewsCollection. + +Sets a particular container value of a view. + +`struct ContainerValues` + +A collection of container values associated with a given view. + +`protocol ContainerValueKey` + +A key for accessing container values. + +--- + +# https://developer.apple.com/documentation/swiftui/subviewscollection + +- SwiftUI +- SubviewsCollection + +Structure + +# SubviewsCollection + +An opaque collection representing the subviews of view. + +struct SubviewsCollection + +## Overview + +Subviews collection constructs subviews on demand, so only access the part of the collection you need to create the resulting content. + +You can get access to a view’s subview collection by using the `Group/init(sectionsOf:transform:)` initializer. + +The collection’s elements are the pieces that make up the given view, and the collection as a whole acts as a proxy for the original view. + +## Relationships + +### Conforms To + +- `BidirectionalCollection` +- `Collection` +- `Copyable` +- `RandomAccessCollection` +- `Sequence` +- `View` + +## See Also + +### Accessing a container’s subviews + +`struct Subview` + +An opaque value representing a subview of another view. + +`struct SubviewsCollectionSlice` + +A slice of a SubviewsCollection. + +Sets a particular container value of a view. + +`struct ContainerValues` + +A collection of container values associated with a given view. + +`protocol ContainerValueKey` + +A key for accessing container values. + +--- + +# https://developer.apple.com/documentation/swiftui/subviewscollectionslice + +- SwiftUI +- SubviewsCollectionSlice + +Structure + +# SubviewsCollectionSlice + +A slice of a SubviewsCollection. + +struct SubviewsCollectionSlice + +## Relationships + +### Conforms To + +- `BidirectionalCollection` +- `Collection` +- `Copyable` +- `RandomAccessCollection` +- `Sequence` +- `View` + +## See Also + +### Accessing a container’s subviews + +`struct Subview` + +An opaque value representing a subview of another view. + +`struct SubviewsCollection` + +An opaque collection representing the subviews of view. + +Sets a particular container value of a view. + +`struct ContainerValues` + +A collection of container values associated with a given view. + +`protocol ContainerValueKey` + +A key for accessing container values. + +--- + +# https://developer.apple.com/documentation/swiftui/tabcontentbuilder/content + +- SwiftUI +- TabContentBuilder +- TabContentBuilder.Content + +Structure + +# TabContentBuilder.Content + +A view representation of the content of a builder-based tab view with selection. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/table + +- SwiftUI +- Table + +Structure + +# Table + +A container that presents rows of data arranged in one or more columns, optionally providing the ability to select one or more members. + +## Overview + +You commonly create tables from collections of data. The following example shows how to create a simple, three-column table from an array of `Person` instances that conform to the `Identifiable` protocol: + +struct Person: Identifiable { +let givenName: String +let familyName: String +let emailAddress: String +let id = UUID() + +var fullName: String { givenName + " " + familyName } +} + +@State private var people = [\ +Person(givenName: "Juan", familyName: "Chavez", emailAddress: "juanchavez@icloud.com"),\ +Person(givenName: "Mei", familyName: "Chen", emailAddress: "meichen@icloud.com"),\ +Person(givenName: "Tom", familyName: "Clark", emailAddress: "tomclark@icloud.com"),\ +Person(givenName: "Gita", familyName: "Kumar", emailAddress: "gitakumar@icloud.com")\ +] + +struct PeopleTable: View { +var body: some View { +Table(people) { +TableColumn("Given Name", value: \.givenName) +TableColumn("Family Name", value: \.familyName) +TableColumn("E-Mail Address", value: \.emailAddress) +} +} +} + +If there are more rows than can fit in the available space, `Table` provides vertical scrolling automatically. On macOS, the table also provides horizontal scrolling if there are more columns than can fit in the width of the view. Scroll bars appear as needed on iOS; on macOS, the `Table` shows or hides scroll bars based on the “Show scroll bars” system preference. + +### Supporting selection in tables + +To make rows of a table selectable, provide a binding to a selection variable. Binding to a single instance of the table data’s `id` type creates a single-selection table. Binding to a `Set` creates a table that supports multiple selections. The following example shows how to add multi-select to the previous example. A `Text` view below the table shows the number of items currently selected. + +struct SelectableTable: View { + +var body: some View { +Table(people, selection: $selectedPeople) { +TableColumn("Given Name", value: \.givenName) +TableColumn("Family Name", value: \.familyName) +TableColumn("E-Mail Address", value: \.emailAddress) +} +Text("\(selectedPeople.count) people selected") +} +} + +### Supporting sorting in tables + +To make the columns of a table sortable, provide a binding to an array of `SortComparator` instances. The table reflects the sorted state through its column headers, allowing sorting for any columns with key paths. + +When the table sort descriptors update, re-sort the data collection that underlies the table; the table itself doesn’t perform a sort operation. You can watch for changes in the sort descriptors by using a `onChange(of:perform:)` modifier, and then sort the data in the modifier’s `perform` closure. + +The following example shows how to add sorting capability to the previous example: + +struct SortableTable: View { +@State private var sortOrder = [KeyPathComparator(\Person.givenName)] + +var body: some View { +Table(people, sortOrder: $sortOrder) { +TableColumn("Given Name", value: \.givenName) +TableColumn("Family Name", value: \.familyName) +TableColumn("E-Mail address", value: \.emailAddress) +} +.onChange(of: sortOrder) { _, sortOrder in +people.sort(using: sortOrder) +} +} +} + +### Building tables with static rows + +To create a table from static rows, rather than the contents of a collection of data, you provide both the columns and the rows. + +The following example shows a table that calculates prices from applying varying gratuities (“tips”) to a fixed set of prices. It creates the table with the `init(of:columns:rows:)` initializer, with the `rows` parameter providing the base price that each row uses for its calculations. Each column receives each price and performs its calculation, producing a `Text` to display the formatted result. + +struct Purchase: Identifiable { +let price: Decimal +let id = UUID() +} + +struct TipTable: View { +let currencyStyle = Decimal.FormatStyle.Currency(code: "USD") + +var body: some View { +Table(of: Purchase.self) { +TableColumn("Base price") { purchase in +Text(purchase.price, format: currencyStyle) +} +TableColumn("With 15% tip") { purchase in +Text(purchase.price * 1.15, format: currencyStyle) +} +TableColumn("With 20% tip") { purchase in +Text(purchase.price * 1.2, format: currencyStyle) +} +TableColumn("With 25% tip") { purchase in +Text(purchase.price * 1.25, format: currencyStyle) +} +} rows: { +TableRow(Purchase(price: 20)) +TableRow(Purchase(price: 50)) +TableRow(Purchase(price: 75)) +} +} +} + +### Styling tables + +Use the `tableStyle(_:)` modifier to set a `TableStyle` for all tables within a view. SwiftUI provides several table styles, such as `InsetTableStyle` and, on macOS, `BorderedTableStyle`. The default style is `AutomaticTableStyle`, which is available on all platforms that support `Table`. + +### Using tables on different platforms + +You can define a single table for use on macOS, iOS, and iPadOS. However, on iPhone or in a compact horizontal size class environment — typical on on iPad in certain modes, like Slide Over — the table has limited space to display its columns. To conserve space, the table automatically hides headers and all columns after the first when it detects this condition. + +To provide a good user experience in a space-constrained environment, you can customize the first column to show more information when you detect that the `horizontalSizeClass` environment value becomes `UserInterfaceSizeClass.compact`. For example, you can modify the sortable table from above to conditionally show all the information in the first column: + +struct CompactableTable: View { +#if os(iOS) +@Environment(\.horizontalSizeClass) private var horizontalSizeClass +private var isCompact: Bool { horizontalSizeClass == .compact } +#else +private let isCompact = false +#endif + +@State private var sortOrder = [KeyPathComparator(\Person.givenName)] + +var body: some View { +Table(people, sortOrder: $sortOrder) { +TableColumn("Given Name", value: \.givenName) { person in +VStack(alignment: .leading) { +Text(isCompact ? person.fullName : person.givenName) +if isCompact { +Text(person.emailAddress) +.foregroundStyle(.secondary) +} +} +} +TableColumn("Family Name", value: \.familyName) +TableColumn("E-Mail Address", value: \.emailAddress) +} +.onChange(of: sortOrder) { _, sortOrder in +people.sort(using: sortOrder) +} +} +} + +By making this change, you provide a list-like appearance for narrower displays, while displaying the full table on wider ones. Because you use the same table instance in both cases, you get a seamless transition when the size class changes, like when someone moves your app into or out of Slide Over. + +## Topics + +### Creating a table from columns + +Creates a table that computes its rows based on a collection of identifiable data. + +`init(_:selection:columns:)` + +Creates a table that computes its rows based on a collection of identifiable data, and that supports selecting multiple rows. + +### Creating a sortable table from columns + +Creates a sortable table that computes its rows based on a collection of identifiable data. + +`init(_:selection:sortOrder:columns:)` + +Creates a sortable table that computes its rows based on a collection of identifiable data, and supports selecting multiple rows. + +### Creating a table from columns and rows + +Creates a table with the given columns and rows that generates its contents using values of the given type. + +`init(of:selection:columns:rows:)` + +Creates a table with the given columns and rows that supports selecting multiple rows that generates its data using values of the given type. + +### Creating a sortable table from columns and rows + +Creates a sortable table with the given columns and rows. + +`init(of:selection:sortOrder:columns:rows:)` + +Creates a sortable table with the given columns and rows that supports selecting multiple rows. + +`init(selection:sortOrder:columns:rows:)` + +### Creating a table with customizable columns + +`init(Data, columnCustomization: Binding>, columns: () -> Columns)` + +Creates a table that computes its rows based on a collection of identifiable data and has dynamically customizable columns. + +`init(_:selection:columnCustomization:columns:)` + +Creates a table that computes its rows based on a collection of identifiable data, that supports selecting multiple rows, and that has dynamically customizable columns. + +`init(_:selection:sortOrder:columnCustomization:columns:)` + +Creates a sortable table that computes its rows based on a collection of identifiable data, supports selecting multiple rows, and has dynamically customizable columns. + +[`init(Data, sortOrder: Binding<[Sort]>, columnCustomization: Binding>, columns: () -> Columns)`](https://developer.apple.com/documentation/swiftui/table/init(_:sortorder:columncustomization:columns:)) + +Creates a sortable table that computes its rows based on a collection of identifiable data and has dynamically customizable columns. + +### Creating a table with dynamically customizable columns + +`init(of: Value.Type, columnCustomization: Binding>, columns: () -> Columns, rows: () -> Rows)` + +Creates a table with the given columns and rows that generates its contents using values of the given type and has dynamically customizable columns. + +`init(of:selection:columnCustomization:columns:rows:)` + +Creates a table with the given columns and rows that supports selecting multiple rows that generates its data using values of the given type and has dynamically customizable columns. + +`init(of:selection:sortOrder:columnCustomization:columns:rows:)` + +Creates a sortable table with the given columns and rows that supports selecting multiple rows and dynamically customizable columns. + +[`init(of: Value.Type, sortOrder: Binding<[Sort]>, columnCustomization: Binding>, columns: () -> Columns, rows: () -> Rows)`](https://developer.apple.com/documentation/swiftui/table/init(of:sortorder:columncustomization:columns:rows:)) + +Creates a sortable table with the given columns and rows and has dynamically customizable columns. + +### Creating a hierarchical table + +`init(Data, children: KeyPath, columnCustomization: Binding>?, columns: () -> Columns)` + +Creates a hierarchical table that computes its rows based on a collection of identifiable data and key path to the children of that data. + +`init(_:children:selection:columnCustomization:columns:)` + +Creates a hierarchical table that computes its rows based on a collection of identifiable data and key path to the children of that data, and supports selecting multiple rows. + +`init(_:children:selection:sortOrder:columnCustomization:columns:)` + +Creates a sortable, hierarchical table that computes its rows based on a collection of identifiable data and key path to the children of that data, and supports selecting multiple rows. + +[`init(Data, children: KeyPath, sortOrder: Binding<[Sort]>, columnCustomization: Binding>?, columns: () -> Columns)`](https://developer.apple.com/documentation/swiftui/table/init(_:children:sortorder:columncustomization:columns:)) + +Creates a sortable, hierarchical table that computes its rows based on a collection of identifiable data and key path to the children of that data. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Creating a table + +Building a Great Mac App with SwiftUI + +Create engaging SwiftUI Mac apps by incorporating side bars, tables, toolbars, and several other popular user interface elements. + +Sets the style for tables within this view. + +--- + +# https://developer.apple.com/documentation/swiftui/texteditor + +- SwiftUI +- TextEditor + +Structure + +# TextEditor + +A view that can display and edit long-form text. + +struct TextEditor + +## Overview + +A text editor view allows you to display and edit multiline, scrollable text in your app’s user interface. By default, the text editor view styles the text using characteristics inherited from the environment, like `font(_:)`, `foregroundColor(_:)`, and `multilineTextAlignment(_:)`. + +You create a text editor by adding a `TextEditor` instance to the body of your view, and initialize it by passing in a `Binding` to a string variable in your app: + +struct TextEditingView: View { +@State private var fullText: String = "This is some editable text..." + +var body: some View { +TextEditor(text: $fullText) +} +} + +To style the text, use the standard view modifiers to configure a system font, set a custom font, or change the color of the view’s text. + +In this example, the view renders the editor’s text in gray with a custom font: + +var body: some View { +TextEditor(text: $fullText) +.foregroundColor(Color.gray) +.font(.custom("HelveticaNeue", size: 13)) +} +} + +If you want to change the spacing or font scaling aspects of the text, you can use modifiers like `lineLimit(_:)`, `lineSpacing(_:)`, and `minimumScaleFactor(_:)` to configure how the view displays text depending on the space constraints. For example, here the `lineSpacing(_:)` modifier sets the spacing between lines to 5 points: + +var body: some View { +TextEditor(text: $fullText) +.foregroundColor(Color.gray) +.font(.custom("HelveticaNeue", size: 13)) +.lineSpacing(5) +} +} + +## Topics + +### Creating a text editor + +Creates a plain text editor. + +### Initializers + +`init(text:selection:)` + +Creates a styled text editor. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting text input + +Building rich SwiftUI text experiences + +Build an editor for formatted text using SwiftUI text editor views and attributed strings. + +`struct TextField` + +A control that displays an editable text interface. + +Sets the style for text fields within this view. + +`struct SecureField` + +A control into which people securely enter private text. + +--- + +# https://developer.apple.com/documentation/swiftui/textfield + +- SwiftUI +- TextField + +Structure + +# TextField + +A control that displays an editable text interface. + +## Overview + +You create a text field with a label and a binding to a value. If the value is a string, the text field updates this value continuously as the user types or otherwise edits the text in the field. For non-string types, it updates the value when the user commits their edits, such as by pressing the Return key. + +The following example shows a text field to accept a username, and a `Text` view below it that shadows the continuously updated value of `username`. The `Text` view changes color as the user begins and ends editing. When the user submits their completed entry to the text field, the `onSubmit(of:_:)` modifier calls an internal `validate(name:)` method. + +@State private var username: String = "" +@FocusState private var emailFieldIsFocused: Bool = false + +var body: some View { +TextField( +"User name (email address)", +text: $username +) +.focused($emailFieldIsFocused) +.onSubmit { +validate(name: username) +} +.textInputAutocapitalization(.never) +.disableAutocorrection(true) +.border(.secondary) + +Text(username) +.foregroundColor(emailFieldIsFocused ? .red : .blue) +} + +The bound value doesn’t have to be a string. By using a `FormatStyle`, you can bind the text field to a nonstring type, using the format style to convert the typed text into an instance of the bound type. The following example uses a `PersonNameComponents.FormatStyle` to convert the name typed in the text field to a `PersonNameComponents` instance. A `Text` view below the text field shows the debug description string of this instance. + +@State private var nameComponents = PersonNameComponents() + +var body: some View { +TextField( +"Proper name", +value: $nameComponents, +format: .name(style: .medium) +) +.onSubmit { +validate(components: nameComponents) +} +.disableAutocorrection(true) +.border(.secondary) +Text(nameComponents.debugDescription) +} + +### Text field prompts + +You can set an explicit prompt on the text field to guide users on what text they should provide. Each text field style determines where and when the text field uses a prompt and label. For example, a form on macOS always places the label at the leading edge of the field and uses a prompt, when available, as placeholder text within the field itself. In the same context on iOS, the text field uses either the prompt or label as placeholder text, depending on whether the initializer provided a prompt. + +The following example shows a `Form` with two text fields, each of which provides a prompt to indicate that the field is required, and a view builder to provide a label: + +Form { +TextField(text: $username, prompt: Text("Required")) { +Text("Username") +} +SecureField(text: $password, prompt: Text("Required")) { +Text("Password") +} +} + +### Styling text fields + +SwiftUI provides a default text field style that reflects an appearance and behavior appropriate to the platform. The default style also takes the current context into consideration, like whether the text field is in a container that presents text fields with a special style. Beyond this, you can customize the appearance and interaction of text fields using the `textFieldStyle(_:)` modifier, passing in an instance of `TextFieldStyle`. The following example applies the `roundedBorder` style to both text fields within a `VStack`. + +@State private var givenName: String = "" +@State private var familyName: String = "" + +var body: some View { +VStack { +TextField( +"Given Name", +text: $givenName +) +.disableAutocorrection(true) +TextField( +"Family Name", +text: $familyName +) +.disableAutocorrection(true) +} +.textFieldStyle(.roundedBorder) +} + +## Topics + +### Creating a text field with a string + +`init(_:text:)` + +Creates a text field with a text label generated from a localized title string. + +`init(_:text:prompt:)` + +Creates a text field with a prompt generated from a `Text`. + +### Creating a scrollable text field + +`init(_:text:axis:)` + +Creates a text field with a preferred axis and a text label generated from a localized title string. + +`init(_:text:prompt:axis:)` + +Creates a text field with a preferred axis and a prompt generated from a `Text`. + +### Creating a text field with a value + +Use these initializers to create a text field that binds to a value of an arbitrary type. + +`init(_:value:format:prompt:)` + +Creates a text field that applies a format style to a bound value, with a label generated from a localized title string. + +`init(value:format:prompt:label:)` + +Creates a text field that applies a format style to a bound value, with a label generated from a view builder. + +`init(_:value:formatter:)` + +Create an instance which binds over an arbitrary type, `V`. + +`init(_:value:formatter:prompt:)` + +Creates a text field that applies a formatter to a bound value, with a label generated from a title string. + +Creates a text field that applies a formatter to a bound optional value, with a label generated from a view builder. + +### Deprecated initializers + +Review deprecated text field initializers. + +### Initializers + +`init(_:text:selection:prompt:axis:)` + +Creates a text field with a binding to the current selection and a text label generated from a localized title string. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting text input + +Building rich SwiftUI text experiences + +Build an editor for formatted text using SwiftUI text editor views and attributed strings. + +Sets the style for text fields within this view. + +`struct SecureField` + +A control into which people securely enter private text. + +`struct TextEditor` + +A view that can display and edit long-form text. + +--- + +# https://developer.apple.com/documentation/swiftui/textfieldlink + +- SwiftUI +- TextFieldLink + +Structure + +# TextFieldLink + +A control that requests text input from the user when pressed. + +## Overview + +A `TextFieldLink` should be used to request text input from the user through a button interface. + +## Topics + +### Creating a text field link + +`init(_:prompt:onSubmit:)` + +Creates a TextFieldLink which when pressed will request text input from the user. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Linking to other content + +`struct Link` + +A control for navigating to a URL. + +`struct ShareLink` + +A view that controls a sharing presentation. + +`struct SharePreview` + +A representation of a type to display in a share preview. + +`struct HelpLink` + +A button with a standard appearance that opens app-specific help documentation. + +--- + +# https://developer.apple.com/documentation/swiftui/timelineview + +- SwiftUI +- TimelineView + +Structure + +# TimelineView + +A view that updates according to a schedule that you provide. + +## Overview + +A timeline view acts as a container with no appearance of its own. Instead, it redraws the content it contains at scheduled points in time. For example, you can update the face of an analog timer once per second: + +TimelineView(.periodic(from: startDate, by: 1)) { context in +AnalogTimerView(date: context.date) +} + +The closure that creates the content receives an input of type `TimelineView.Context` that you can use to customize the content’s appearance. The context includes the `date` that triggered the update. In the example above, the timeline view sends that date to an analog timer that you create so the timer view knows how to draw the hands on its face. + +The context also includes a `cadence` property that you can use to hide unnecessary detail. For example, you can use the cadence to decide when it’s appropriate to display the timer’s second hand: + +TimelineView(.periodic(from: startDate, by: 1.0)) { context in +AnalogTimerView( +date: context.date, +showSeconds: context.cadence <= .seconds) +} + +The system might use a cadence that’s slower than the schedule’s update rate. For example, a view on watchOS might remain visible when the user lowers their wrist, but update less frequently, and thus require less detail. + +You can define a custom schedule by creating a type that conforms to the `TimelineSchedule` protocol, or use one of the built-in schedule types: + +- Use an `everyMinute` schedule to update at the beginning of each minute. + +- Use a `periodic(from:by:)` schedule to update periodically with a custom start time and interval between updates. + +- Use an `explicit(_:)` schedule when you need a finite number, or irregular set of updates. + +For a schedule containing only dates in the past, the timeline view shows the last date in the schedule. For a schedule containing only dates in the future, the timeline draws its content using the current date until the first scheduled date arrives. + +## Topics + +### Creating a timeline + +Creates a new timeline view that uses the given schedule. + +`struct Context` + +Information passed to a timeline view’s content callback. + +### Deprecated symbols + +Deprecated + +### Initializers + +`init(_:content:)` + +## Relationships + +### Conforms To + +- `Copyable` +- `View` +Conforms when `Schedule` conforms to `TimelineSchedule` and `Content` conforms to `View`. + +## See Also + +### Updating a view on a schedule + +Updating watchOS apps with timelines + +Seamlessly schedule updates to your user interface, even while it’s inactive. + +`protocol TimelineSchedule` + +A type that provides a sequence of dates for use as a schedule. + +`typealias TimelineViewDefaultContext` + +--- + +# https://developer.apple.com/documentation/swiftui/toggle + +- SwiftUI +- Toggle + +Structure + +# Toggle + +A control that toggles between on and off states. + +## Mentioned in + +Building and customizing the menu bar with SwiftUI + +Declaring a custom view + +Laying out a simple view + +Populating SwiftUI menus with adaptive controls + +## Overview + +You create a toggle by providing an `isOn` binding and a label. Bind `isOn` to a Boolean property that determines whether the toggle is on or off. Set the label to a view that visually describes the purpose of switching between toggle states. For example: + +@State private var vibrateOnRing = false + +var body: some View { +Toggle(isOn: $vibrateOnRing) { +Text("Vibrate on Ring") +} +} + +For the common case of `Label` based labels, you can use the convenience initializer that takes a title string (or localized string key) and the name of a system image: + +@State private var vibrateOnRing = true + +var body: some View { +Toggle( +"Vibrate on Ring", +systemImage: "dot.radiowaves.left.and.right", +isOn: $vibrateOnRing +) +} + +For text-only labels, you can use the convenience initializer that takes a title string (or localized string key) as its first parameter, instead of a trailing closure: + +var body: some View { +Toggle("Vibrate on Ring", isOn: $vibrateOnRing) +} + +For cases where adding a subtitle to the label is desired, use a view builder that creates multiple `Text` views where the first text represents the title and the second text represents the subtitle: + +var body: some View { +Toggle(isOn: $vibrateOnRing) { +Text("Vibrate on Ring") +Text("Enable vibration when the phone rings") +} +} + +### Styling toggles + +Toggles use a default style that varies based on both the platform and the context. For more information, read about the `automatic` toggle style. + +You can customize the appearance and interaction of toggles by applying styles using the `toggleStyle(_:)` modifier. You can apply built-in styles, like `switch`, to either a toggle, or to a view hierarchy that contains toggles: + +VStack { +Toggle("Vibrate on Ring", isOn: $vibrateOnRing) +Toggle("Vibrate on Silent", isOn: $vibrateOnSilent) +} +.toggleStyle(.switch) + +You can also define custom styles by creating a type that conforms to the `ToggleStyle` protocol. + +## Topics + +### Creating a toggle + +`init(_:isOn:)` + +Creates a toggle that generates its label from a localized string key. + +Creates a toggle that displays a custom label. + +`init(_:image:isOn:)` + +Creates a toggle that generates its label from a localized string key and image resource. + +`init(_:systemImage:isOn:)` + +Creates a toggle that generates its label from a localized string key and system image. + +### Creating a toggle for a collection + +`init(_:sources:isOn:)` + +Creates a toggle representing a collection of values that generates its label from a localized string key. + +`init(sources: C, isOn: KeyPath>, label: () -> Label)` + +Creates a toggle representing a collection of values with a custom label. + +`init(_:image:sources:isOn:)` + +Creates a toggle representing a collection of values that generates its label from a localized string key and image resource. + +`init(_:systemImage:sources:isOn:)` + +Creates a toggle representing a collection of values that generates its label from a localized string key and system image. + +### Creating a toggle from a configuration + +`init(ToggleStyleConfiguration)` + +Creates a toggle based on a toggle style configuration. + +### Creating a toggle for an App Intent + +Creates a toggle performing an `AppIntent`. + +`init(_:isOn:intent:)` + +Creates a toggle performing an `AppIntent` and generates its label from a localized string key. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting numeric inputs + +`struct Slider` + +A control for selecting a value from a bounded linear range of values. + +`struct Stepper` + +A control that performs increment and decrement actions. + +Sets the style for toggles in a view hierarchy. + +--- + +# https://developer.apple.com/documentation/swiftui/togglestyleconfiguration/label-swift.struct + +- SwiftUI +- ToggleStyleConfiguration +- ToggleStyleConfiguration.Label + +Structure + +# ToggleStyleConfiguration.Label + +A type-erased label of a toggle. + +@MainActor @preconcurrency +struct Label + +## Overview + +SwiftUI provides a value of this type — which is a `View` type — as the `label` to your custom toggle style implementation. Use the label to help define the appearance of the toggle. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Getting the label view + +`let label: ToggleStyleConfiguration.Label` + +A view that describes the effect of switching the toggle between states. + +--- + +# https://developer.apple.com/documentation/swiftui/transformedshape + +- SwiftUI +- TransformedShape + +Structure + +# TransformedShape + +A shape with an affine transform applied to it. + +@frozen + +## Topics + +### Creating a transformed shape + +`init(shape: Content, transform: CGAffineTransform)` + +### Getting the shape’s characteristics + +`var shape: Content` + +`var transform: CGAffineTransform` + +## Relationships + +### Conforms To + +- `Animatable` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Transforming a shape + +`struct ScaledShape` + +A shape with a scale transform applied to it. + +`struct RotatedShape` + +A shape with a rotation transform applied to it. + +`struct OffsetShape` + +A shape with a translation offset transform applied to it. + +--- + +# https://developer.apple.com/documentation/swiftui/tupleview + +- SwiftUI +- TupleView + +Structure + +# TupleView + +A View created from a swift tuple of View values. + +@frozen + +## Topics + +### Creating a tuple view + +`init(T)` + +`var value: T` + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Supporting view types + +`struct AnyView` + +A type-erased view. + +`struct EmptyView` + +A view that doesn’t contain any content. + +`struct EquatableView` + +A view type that compares itself against its previous value and prevents its child updating if its new value is the same as its old value. + +`struct SubscriptionView` + +A view that subscribes to a publisher with an action. + +--- + +# https://developer.apple.com/documentation/swiftui/unevenroundedrectangle + +- SwiftUI +- UnevenRoundedRectangle + +Structure + +# UnevenRoundedRectangle + +A rectangular shape with rounded corners with different values, aligned inside the frame of the view containing it. + +@frozen +struct UnevenRoundedRectangle + +## Topics + +### Creating an uneven rounded rectangle + +`init(cornerRadii: RectangleCornerRadii, style: RoundedCornerStyle)` + +Creates a new rounded rectangle shape with uneven corners. + +`init(topLeadingRadius: CGFloat, bottomLeadingRadius: CGFloat, bottomTrailingRadius: CGFloat, topTrailingRadius: CGFloat, style: RoundedCornerStyle)` + +### Getting the shape’s characteristics + +`var cornerRadii: RectangleCornerRadii` + +The radii of each corner of the rounded rectangle. + +`var style: RoundedCornerStyle` + +The style of corners drawn by the rounded rectangle. + +### Supporting types + +`var animatableData: RectangleCornerRadii.AnimatableData` + +The data to animate. + +## Relationships + +### Conforms To + +- `Animatable` +- `Copyable` +- `InsettableShape` +- `Sendable` +- `SendableMetatype` +- `Shape` +- `View` + +## See Also + +### Creating rectangular shapes + +`struct Rectangle` + +A rectangular shape aligned inside the frame of the view containing it. + +`struct RoundedRectangle` + +A rectangular shape with rounded corners, aligned inside the frame of the view containing it. + +`enum RoundedCornerStyle` + +Defines the shape of a rounded rectangle’s corners. + +`struct RectangleCornerRadii` + +Describes the corner radius values of a rounded rectangle with uneven corners. + +--- + +# https://developer.apple.com/documentation/swiftui/vstack + +- SwiftUI +- VStack + +Structure + +# VStack + +A view that arranges its subviews in a vertical line. + +@frozen + +## Mentioned in + +Building layouts with stack views + +Creating performant scrollable stacks + +Picking container views for your content + +Adding a background to your view + +Inspecting view layout + +## Overview + +Unlike `LazyVStack`, which only renders the views when your app needs to display them, a `VStack` renders the views all at once, regardless of whether they are on- or offscreen. Use the regular `VStack` when you have a small number of subviews or don’t want the delayed rendering behavior of the “lazy” version. + +The following example shows a simple vertical stack of 10 text views: + +var body: some View { +VStack( +alignment: .leading, +spacing: 10 +) { +ForEach( +1...10, +id: \.self +) { +Text("Item \($0)") +} +} +} + +## Topics + +### Creating a stack + +Creates an instance with the given spacing and horizontal alignment. + +## Relationships + +### Conforms To + +- `View` + +## See Also + +### Statically arranging views in one dimension + +Compose complex layouts from primitive container views. + +`struct HStack` + +A view that arranges its subviews in a horizontal line. + +--- + +# https://developer.apple.com/documentation/swiftui/viewthatfits + +- SwiftUI +- ViewThatFits + +Structure + +# ViewThatFits + +A view that adapts to the available space by providing the first child view that fits. + +@frozen + +## Overview + +`ViewThatFits` evaluates its child views in the order you provide them to the initializer. It selects the first child whose ideal size on the constrained axes fits within the proposed size. This means that you provide views in order of preference. Usually this order is largest to smallest, but since a view might fit along one constrained axis but not the other, this isn’t always the case. By default, `ViewThatFits` constrains in both the horizontal and vertical axes. + +The following example shows an `UploadProgressView` that uses `ViewThatFits` to display the upload progress in one of three ways. In order, it attempts to display: + +- An `HStack` that contains a `Text` view and a `ProgressView`. + +- Only the `ProgressView`. + +- Only the `Text` view. + +The progress views are fixed to a 100-point width. + +struct UploadProgressView: View { +var uploadProgress: Double + +var body: some View { +ViewThatFits(in: .horizontal) { +HStack { +Text("\(uploadProgress.formatted(.percent))") +ProgressView(value: uploadProgress) +.frame(width: 100) +} +ProgressView(value: uploadProgress) +.frame(width: 100) +Text("\(uploadProgress.formatted(.percent))") +} +} +} + +This use of `ViewThatFits` evaluates sizes only on the horizontal axis. The following code fits the `UploadProgressView` to several fixed widths: + +VStack { +UploadProgressView(uploadProgress: 0.75) +.frame(maxWidth: 200) +UploadProgressView(uploadProgress: 0.75) +.frame(maxWidth: 100) +UploadProgressView(uploadProgress: 0.75) +.frame(maxWidth: 50) +} + +## Topics + +### Creating a view that fits + +Produces a view constrained in the given axes from one of several alternatives provided by a view builder. + +## Relationships + +### Conforms To + +- `View` + +--- + +# https://developer.apple.com/documentation/swiftui/zstack + +- SwiftUI +- ZStack + +Structure + +# ZStack + +A view that overlays its subviews, aligning them in both axes. + +@frozen + +## Mentioned in + +Building layouts with stack views + +Laying out a simple view + +Adding a background to your view + +Aligning views within a stack + +Creating performant scrollable stacks + +## Overview + +The `ZStack` assigns each successive subview a higher z-axis value than the one before it, meaning later subviews appear “on top” of earlier ones. + +The following example creates a `ZStack` of 100 x 100 point `Rectangle` views filled with one of six colors, offsetting each successive subview by 10 points so they don’t completely overlap: + +let colors: [Color] = +[.red, .orange, .yellow, .green, .blue, .purple] + +var body: some View { +ZStack { +ForEach(0..

\1<\/h3>/') + text=$(echo "$text" | sed 's/^## \(.*\)$/

\1<\/h2>/') + + # Convert bullet points with emoji support + text=$(echo "$text" | sed 's/^- \*\*\([^*]*\)\*\*\(.*\)$/
  • \1<\/strong>\2<\/li>/') + text=$(echo "$text" | sed 's/^- \([^*].*\)$/
  • \1<\/li>/') + + # Convert bold text + text=$(echo "$text" | sed 's/\*\*\([^*]*\)\*\*/\\1\<\/strong\>/g') + + # Convert inline code + text=$(echo "$text" | sed 's/`\([^`]*\)`/\1<\/code>/g') + + # Convert links [text](url) to text + text=$(echo "$text" | sed 's/\[\([^]]*\)\](\([^)]*\))/\1<\/a>/g') + + echo "$text" +} + +# Extract version section from changelog +extract_version_section() { + local version="$1" + local file="$2" + + # Look for version header (supports [0.1] or ## 0.1 formats) + # Extract from version header to next version header or end of file + awk -v version="$version" ' + BEGIN { found=0; print_section=0 } + /^## \[/ && $0 ~ "\\[" version "\\]" { found=1; print_section=1; next } + found && print_section && /^## / { print_section=0 } + found && print_section { print } + ' "$file" +} + +# Main processing +# Note: Debug output redirected to stderr to avoid polluting HTML output +echo "Extracting changelog for version $VERSION..." >&2 + +# Extract the version section +version_content=$(extract_version_section "$VERSION" "$CHANGELOG_FILE") + +if [ -z "$version_content" ]; then + echo "Warning: No changelog section found for version $VERSION" >&2 + echo "Using default content..." >&2 + cat << EOF +

    VibeTunnel $VERSION

    +

    Latest version of VibeTunnel with new features and improvements.

    +

    View full changelog

    +EOF + exit 0 +fi + +# Convert to HTML +# Note: Title is handled by the calling script (e.g., generate-appcast.sh) + +# Process line by line to handle lists properly +in_list=false +while IFS= read -r line; do + if [[ "$line" =~ ^- ]]; then + if [ "$in_list" = false ]; then + echo "
      " + in_list=true + fi + markdown_to_html "$line" + else + if [ "$in_list" = true ]; then + echo "
    " + in_list=false + fi + + # Skip empty lines and date headers + if [ -n "$line" ] && [[ ! "$line" =~ ^\[.*\].*[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then + markdown_to_html "$line" + fi + fi +done <<< "$version_content" + +# Close list if still open +if [ "$in_list" = true ]; then + echo "" +fi + +# Add link to full changelog +echo "

    View full changelog

    " \ No newline at end of file diff --git a/scripts/codesign-app.sh b/scripts/codesign-app.sh new file mode 100755 index 00000000..a8ecf857 --- /dev/null +++ b/scripts/codesign-app.sh @@ -0,0 +1,125 @@ +#!/bin/bash +# codesign-app.sh - Code signing script for VibeTunnel + +set -euo pipefail + +log() { + echo "[$(date "+%Y-%m-%d %H:%M:%S")] $1" +} + +# Default parameters +APP_BUNDLE="${1:-build/Build/Products/Release/VibeTunnel.app}" +SIGN_IDENTITY="${2:-Developer ID Application}" + +# Validate input +if [ ! -d "$APP_BUNDLE" ]; then + log "Error: App bundle not found at $APP_BUNDLE" + log "Usage: $0 [signing_identity]" + exit 1 +fi + +log "Code signing $APP_BUNDLE with identity: $SIGN_IDENTITY" + +# Create entitlements with hardened runtime +ENTITLEMENTS_FILE="VibeTunnel/VibeTunnel.entitlements" +TMP_ENTITLEMENTS="/tmp/VibeTunnel_entitlements.plist" + +if [ -f "$ENTITLEMENTS_FILE" ]; then + log "Using entitlements from $ENTITLEMENTS_FILE" + + # Get the bundle identifier from the Info.plist + BUNDLE_ID=$(defaults read "$APP_BUNDLE/Contents/Info.plist" CFBundleIdentifier 2>/dev/null || echo "com.amantus.vibetunnel") + log "Bundle identifier: $BUNDLE_ID" + + # Copy entitlements and replace variables + sed -e "s/\$(PRODUCT_BUNDLE_IDENTIFIER)/$BUNDLE_ID/g" "$ENTITLEMENTS_FILE" > "$TMP_ENTITLEMENTS" + + # Ensure hardened runtime is enabled + if ! grep -q "com.apple.security.hardened-runtime" "$TMP_ENTITLEMENTS"; then + awk '/<\/dict>/ { print " com.apple.security.hardened-runtime\n "; } { print; }' "$TMP_ENTITLEMENTS" > "${TMP_ENTITLEMENTS}.new" + mv "${TMP_ENTITLEMENTS}.new" "$TMP_ENTITLEMENTS" + fi +else + log "Creating entitlements file with hardened runtime..." + # Get the bundle identifier + BUNDLE_ID=$(defaults read "$APP_BUNDLE/Contents/Info.plist" CFBundleIdentifier 2>/dev/null || echo "com.amantus.vibetunnel") + log "Bundle identifier: $BUNDLE_ID" + + cat > "$TMP_ENTITLEMENTS" << EOF + + + + + com.apple.security.app-sandbox + + com.apple.security.hardened-runtime + + com.apple.security.network.client + + com.apple.security.files.user-selected.read-only + + com.apple.security.files.downloads.read-write + + com.apple.security.automation.apple-events + + + com.apple.security.temporary-exception.mach-lookup.global-name + + ${BUNDLE_ID}-spks + ${BUNDLE_ID}-spkd + + + +EOF +fi + +# Clean up any existing signatures and quarantine attributes +log "Preparing app bundle for signing..." +xattr -cr "$APP_BUNDLE" 2>/dev/null || true + +# Check if we're in CI and have a specific keychain +KEYCHAIN_OPTS="" +if [ -n "${KEYCHAIN_NAME:-}" ]; then + log "Using keychain: $KEYCHAIN_NAME" + KEYCHAIN_OPTS="--keychain $KEYCHAIN_NAME" +fi + +# Sign frameworks first (if any) +if [ -d "$APP_BUNDLE/Contents/Frameworks" ]; then + log "Signing embedded frameworks..." + find "$APP_BUNDLE/Contents/Frameworks" \( -type d -name "*.framework" -o -type f -name "*.dylib" \) 2>/dev/null | while read -r framework; do + log "Signing framework: $framework" + codesign --force --options runtime --sign "$SIGN_IDENTITY" $KEYCHAIN_OPTS "$framework" || log "Warning: Failed to sign $framework" + done +fi + +# Sign the main executable +log "Signing main executable..." +codesign --force --options runtime --entitlements "$TMP_ENTITLEMENTS" --sign "$SIGN_IDENTITY" $KEYCHAIN_OPTS "$APP_BUNDLE/Contents/MacOS/VibeTunnel" || true + +# Sign the app bundle WITHOUT deep signing (per Sparkle documentation) +# "Due to different code signing requirements, please do not add --deep to +# OTHER_CODE_SIGN_FLAGS or from custom build scripts when signing your application. +# This is a common source of Sandboxing errors." +log "Signing complete app bundle (without --deep per Sparkle requirements)..." +codesign --force --options runtime --entitlements "$TMP_ENTITLEMENTS" --sign "$SIGN_IDENTITY" $KEYCHAIN_OPTS "$APP_BUNDLE" + +# Verify the signature +log "Verifying code signature..." +if codesign --verify --verbose=2 "$APP_BUNDLE" 2>&1; then + log "✅ Code signature verification passed" +else + log "⚠️ Code signature verification had warnings (may be expected in CI)" +fi + +# Test with spctl (may fail without proper certificates) +if spctl -a -t exec -vv "$APP_BUNDLE" 2>&1; then + log "✅ spctl verification passed" +else + log "⚠️ spctl verification failed (expected without proper Developer ID certificate)" +fi + +# Clean up +rm -f "$TMP_ENTITLEMENTS" + +log "✅ Code signing completed successfully" \ No newline at end of file diff --git a/scripts/create-dmg.sh b/scripts/create-dmg.sh new file mode 100755 index 00000000..0237e20c --- /dev/null +++ b/scripts/create-dmg.sh @@ -0,0 +1,203 @@ +#!/bin/bash + +set -euo pipefail + +# Script to create a DMG for VibeTunnel +# Usage: ./scripts/create-dmg.sh [output_path] + +if [[ $# -lt 1 ]] || [[ $# -gt 2 ]]; then + echo "Usage: $0 [output_path]" + exit 1 +fi + +APP_PATH="$1" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +BUILD_DIR="$PROJECT_DIR/build" + +if [[ ! -d "$APP_PATH" ]]; then + echo "Error: App not found at $APP_PATH" + exit 1 +fi + +# Get version info +VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$APP_PATH/Contents/Info.plist") +DMG_NAME="VibeTunnel-${VERSION}.dmg" + +# Use provided output path or default +if [[ $# -eq 2 ]]; then + DMG_PATH="$2" +else + DMG_PATH="$BUILD_DIR/$DMG_NAME" +fi + +echo "Creating DMG: $DMG_NAME" + +# Create temporary directory for DMG contents +DMG_TEMP="$BUILD_DIR/dmg-temp" +rm -rf "$DMG_TEMP" +mkdir -p "$DMG_TEMP" + +# Copy app to temporary directory +cp -R "$APP_PATH" "$DMG_TEMP/" + +# Create symbolic link to Applications folder +ln -s /Applications "$DMG_TEMP/Applications" + +# Create DMG +hdiutil create \ + -volname "VibeTunnel" \ + -srcfolder "$DMG_TEMP" \ + -ov \ + -format UDZO \ + "$DMG_PATH" + +# Clean up +rm -rf "$DMG_TEMP" + +# === EXTENSIVE ENVIRONMENT DEBUGGING === +echo "=== Environment Debug Information ===" +echo "Current working directory: $(pwd)" +echo "User: $(whoami)" +echo "Date: $(date)" +echo "Environment variables related to signing:" +echo " KEYCHAIN_NAME=${KEYCHAIN_NAME:-}" +echo " SIGN_IDENTITY=${SIGN_IDENTITY:-}" +echo " RUNNER_TEMP=${RUNNER_TEMP:-}" +echo " GITHUB_ACTIONS=${GITHUB_ACTIONS:-}" +echo " CI=${CI:-}" + +# Check if secrets are available (without exposing their values) +echo "GitHub Secrets Status:" +echo " APP_STORE_CONNECT_API_KEY_P8: ${APP_STORE_CONNECT_API_KEY_P8:+SET}" +echo " APP_STORE_CONNECT_ISSUER_ID: ${APP_STORE_CONNECT_ISSUER_ID:+SET}" +echo " APP_STORE_CONNECT_KEY_ID: ${APP_STORE_CONNECT_KEY_ID:+SET}" +echo " MACOS_SIGNING_CERTIFICATE_P12_BASE64: ${MACOS_SIGNING_CERTIFICATE_P12_BASE64:+SET}" +echo " MACOS_SIGNING_CERTIFICATE_PASSWORD: ${MACOS_SIGNING_CERTIFICATE_PASSWORD:+SET}" + +# List all keychains +echo "=== Keychain Information ===" +echo "Available keychains:" +security list-keychains -d user || echo "Failed to list user keychains" +security list-keychains -d system || echo "Failed to list system keychains" + +echo "" +echo "Default keychain:" +security default-keychain -d user || echo "Failed to get default user keychain" + +# Check if specific keychain exists +if [ -n "${KEYCHAIN_NAME:-}" ]; then + echo "" + echo "Checking for specified keychain: $KEYCHAIN_NAME" + if security list-keychains -d user | grep -q "$KEYCHAIN_NAME"; then + echo "✅ Keychain $KEYCHAIN_NAME found in user domain" + else + echo "❌ Keychain $KEYCHAIN_NAME NOT found in user domain" + fi + + # Try to unlock the keychain if it exists + if [ -f "$KEYCHAIN_NAME" ]; then + echo "Keychain file exists at: $KEYCHAIN_NAME" + echo "Checking keychain lock status..." + security show-keychain-info "$KEYCHAIN_NAME" 2>&1 || echo "Cannot get keychain info" + else + echo "Keychain file does not exist at: $KEYCHAIN_NAME" + fi +fi + +# === SIGNING IDENTITY ANALYSIS === +echo "" +echo "=== Signing Identity Analysis ===" + +# Sign the DMG if signing credentials are available +if command -v codesign &> /dev/null; then + echo "✅ codesign command is available" + + # Use the same signing identity as the app signing process + SIGN_IDENTITY="${SIGN_IDENTITY:-Developer ID Application}" + echo "Target signing identity: '$SIGN_IDENTITY'" + + # Check if we're in CI and have a specific keychain + KEYCHAIN_OPTS="" + if [ -n "${KEYCHAIN_NAME:-}" ]; then + echo "Using keychain: $KEYCHAIN_NAME" + KEYCHAIN_OPTS="--keychain $KEYCHAIN_NAME" + else + echo "No specific keychain specified, using default" + fi + + # Try to find a valid signing identity + IDENTITY_CHECK_CMD="security find-identity -v -p codesigning" + if [ -n "${KEYCHAIN_NAME:-}" ]; then + IDENTITY_CHECK_CMD="$IDENTITY_CHECK_CMD $KEYCHAIN_NAME" + echo "Full identity check command: $IDENTITY_CHECK_CMD" + fi + + echo "" + echo "=== Full Identity Check Output ===" + echo "Running: $IDENTITY_CHECK_CMD" + IDENTITY_OUTPUT=$($IDENTITY_CHECK_CMD 2>&1) || true + echo "Raw output:" + echo "$IDENTITY_OUTPUT" + echo "=== End Identity Check Output ===" + + # Count valid identities + VALID_COUNT=$(echo "$IDENTITY_OUTPUT" | grep -c "valid identities found" || echo "0") + echo "Valid identities found: $VALID_COUNT" + + # Check if any signing identity is available + if echo "$IDENTITY_OUTPUT" | grep -q "valid identities found" && ! echo "$IDENTITY_OUTPUT" | grep -q "0 valid identities found"; then + echo "✅ At least one valid signing identity found" + + # Show all identities + echo "All available identities:" + echo "$IDENTITY_OUTPUT" | grep -E "^\s*[0-9]+\)" + + # Check if our specific identity exists + if echo "$IDENTITY_OUTPUT" | grep -q "$SIGN_IDENTITY"; then + echo "✅ Found specific identity: $SIGN_IDENTITY" + echo "Attempting to sign DMG with identity: $SIGN_IDENTITY" + echo "Command: codesign --force --sign \"$SIGN_IDENTITY\" $KEYCHAIN_OPTS \"$DMG_PATH\"" + if codesign --force --sign "$SIGN_IDENTITY" $KEYCHAIN_OPTS "$DMG_PATH"; then + echo "✅ DMG signing successful" + else + echo "❌ DMG signing failed" + exit 1 + fi + else + echo "❌ Specific identity '$SIGN_IDENTITY' not found" + + # Try to use the first available Developer ID Application identity + echo "Searching for any Developer ID Application identity..." + AVAILABLE_IDENTITY=$(echo "$IDENTITY_OUTPUT" | grep "Developer ID Application" | head -1 | sed -E 's/.*"([^"]+)".*/\1/' || echo "") + if [ -n "$AVAILABLE_IDENTITY" ]; then + echo "✅ Found alternative identity: $AVAILABLE_IDENTITY" + echo "Command: codesign --force --sign \"$AVAILABLE_IDENTITY\" $KEYCHAIN_OPTS \"$DMG_PATH\"" + if codesign --force --sign "$AVAILABLE_IDENTITY" $KEYCHAIN_OPTS "$DMG_PATH"; then + echo "✅ DMG signing successful with alternative identity" + else + echo "❌ DMG signing failed with alternative identity" + exit 1 + fi + else + echo "❌ No Developer ID Application identity found" + echo "⚠️ DMG will not be signed" + fi + fi + else + echo "❌ No valid signing identities available" + echo "⚠️ DMG will not be signed" + echo "This is expected for PR builds where certificates are not imported" + fi +else + echo "❌ codesign command not available" + echo "⚠️ DMG will not be signed" +fi + +echo "=== End Environment Debug Information ===" + +# Verify DMG +echo "Verifying DMG..." +hdiutil verify "$DMG_PATH" + +echo "DMG created successfully: $DMG_PATH" \ No newline at end of file diff --git a/scripts/extract-build-number.sh b/scripts/extract-build-number.sh new file mode 100755 index 00000000..560267f5 --- /dev/null +++ b/scripts/extract-build-number.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# +# Extract build number from a VibeTunnel DMG file +# +# This script mounts a DMG, extracts the CFBundleVersion from the app's Info.plist, +# and returns the build number for use in Sparkle appcast generation. + +set -euo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +DMG_PATH="$1" + +if [ ! -f "$DMG_PATH" ]; then + echo "Error: DMG file not found: $DMG_PATH" >&2 + exit 1 +fi + +# Create temporary directory for mounting +TEMP_DIR=$(mktemp -d) +trap "rm -rf $TEMP_DIR" EXIT + +# Mount the DMG +MOUNT_POINT="$TEMP_DIR/mount" +mkdir -p "$MOUNT_POINT" + +if ! hdiutil attach "$DMG_PATH" -mountpoint "$MOUNT_POINT" -nobrowse -readonly -quiet 2>/dev/null; then + echo "Error: Failed to mount DMG" >&2 + exit 1 +fi + +# Ensure we unmount on exit +trap "hdiutil detach '$MOUNT_POINT' -quiet 2>/dev/null || true; rm -rf $TEMP_DIR" EXIT + +# Find the app bundle +APP_BUNDLE=$(find "$MOUNT_POINT" -name "*.app" -type d | head -1) + +if [ -z "$APP_BUNDLE" ]; then + echo "Error: No .app bundle found in DMG" >&2 + exit 1 +fi + +# Extract build number from Info.plist +INFO_PLIST="$APP_BUNDLE/Contents/Info.plist" + +if [ ! -f "$INFO_PLIST" ]; then + echo "Error: Info.plist not found in app bundle" >&2 + exit 1 +fi + +# Extract CFBundleVersion using plutil +BUILD_NUMBER=$(plutil -extract CFBundleVersion raw "$INFO_PLIST" 2>/dev/null || echo "") + +if [ -z "$BUILD_NUMBER" ]; then + echo "Error: Could not extract CFBundleVersion from Info.plist" >&2 + exit 1 +fi + +# Validate that it's a number +if ! [[ "$BUILD_NUMBER" =~ ^[0-9]+$ ]]; then + echo "Error: Build number is not numeric: $BUILD_NUMBER" >&2 + exit 1 +fi + +echo "$BUILD_NUMBER" \ No newline at end of file diff --git a/scripts/generate-appcast.sh b/scripts/generate-appcast.sh new file mode 100755 index 00000000..0a40b800 --- /dev/null +++ b/scripts/generate-appcast.sh @@ -0,0 +1,433 @@ +#!/bin/bash +# +# Generate appcast XML files with correct file sizes from GitHub releases +# +# This script fetches release information from GitHub and generates +# appcast.xml and appcast-prerelease.xml with accurate file sizes +# to prevent Sparkle download errors. + +set -euo pipefail + +# Add Sparkle tools to PATH +export PATH="$HOME/.local/bin:$PATH" + +# Load GitHub configuration +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +CONFIG_FILE="$(dirname "$SCRIPT_DIR")/.github-config" +if [ -f "$CONFIG_FILE" ]; then + source "$CONFIG_FILE" +fi + +# Configuration +GITHUB_USERNAME="${GITHUB_USERNAME:-amantus-ai}" +GITHUB_REPO="${GITHUB_USERNAME}/${GITHUB_REPO:-vibetunnel}" +SPARKLE_PRIVATE_KEY_PATH="private/sparkle_private_key" + +# Colors for output +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +# Function to print colored output +print_info() { + echo -e "${GREEN}[INFO]${NC} $1" >&2 +} + +print_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" >&2 +} + +print_error() { + echo -e "${RED}[ERROR]${NC} $1" >&2 +} + +# Function to get file size from URL +get_file_size() { + local url=$1 + curl -sI "$url" | grep -i content-length | awk '{print $2}' | tr -d '\r' +} + +# Function to check if we have a cached signature +get_cached_signature() { + local filename=$1 + local cache_file="$temp_dir/signatures_cache.txt" + + # Check if cache file exists and has the signature + if [ -f "$cache_file" ]; then + grep "^$filename:" "$cache_file" | cut -d: -f2 || echo "" + else + echo "" + fi +} + +# Function to cache a signature +cache_signature() { + local filename=$1 + local signature=$2 + local cache_file="$temp_dir/signatures_cache.txt" + + if [ -n "$signature" ] && [ "$signature" != "" ]; then + echo "$filename:$signature" >> "$cache_file" + fi +} + +# Function to generate EdDSA signature +generate_signature() { + local file_path=$1 + local filename=$(basename "$file_path") + + # Check if we have a cached signature first + local cached_sig=$(get_cached_signature "$filename") + if [ -n "$cached_sig" ]; then + echo "$cached_sig" + return 0 + fi + + # Try to use sign_update from Keychain first (preferred method) + if command -v sign_update >/dev/null 2>&1; then + # First try without -f flag to use Keychain + local signature=$(sign_update "$file_path" -p 2>/dev/null) + if [ -n "$signature" ] && [ "$signature" != "-----END PRIVATE KEY-----" ]; then + echo "$signature" + return 0 + fi + + # If Keychain didn't work and we have a private key file, try that + if [ -f "$SPARKLE_PRIVATE_KEY_PATH" ]; then + signature=$(sign_update "$file_path" -f "$SPARKLE_PRIVATE_KEY_PATH" -p 2>/dev/null) + if [ -n "$signature" ] && [ "$signature" != "-----END PRIVATE KEY-----" ]; then + echo "$signature" + return 0 + fi + fi + fi + + # Try using the bundled tool from Sparkle framework + local sign_tool="/Applications/Sparkle Test App.app/Contents/Frameworks/Sparkle.framework/Versions/B/Resources/sign_update" + if [ -f "$sign_tool" ]; then + local signature=$("$sign_tool" "$file_path" -p 2>/dev/null) + if [ -n "$signature" ] && [ "$signature" != "-----END PRIVATE KEY-----" ]; then + echo "$signature" + return 0 + fi + fi + + print_warning "Could not generate signature for $filename" + echo "" +} + +# Function to format date for appcast +format_date() { + local date_str=$1 + # Convert GitHub date format to RFC 822 format for RSS + date -j -f "%Y-%m-%dT%H:%M:%SZ" "$date_str" "+%a, %d %b %Y %H:%M:%S %z" 2>/dev/null || \ + date -d "$date_str" "+%a, %d %b %Y %H:%M:%S %z" 2>/dev/null || \ + echo "Wed, 04 Jun 2025 12:00:00 +0000" +} + +# Function to extract version and build number from release tag +parse_version() { + local tag=$1 + local version="" + local build="" + + # Remove 'v' prefix if present + tag=${tag#v} + + # For pre-releases like "0.1-beta.1", extract base version + if [[ $tag =~ ^([0-9]+\.[0-9]+)(-.*)?$ ]]; then + version=$tag + else + version=$tag + fi + + echo "$version" +} + +# Function to create appcast item +create_appcast_item() { + local release_json=$1 + local dmg_url=$2 + local is_prerelease=$3 + + # Extract fields with proper fallbacks + local tag=$(echo "$release_json" | jq -r '.tag_name // "unknown"') + local title=$(echo "$release_json" | jq -r '.name // .tag_name // "Release"') + local body=$(echo "$release_json" | jq -r '.body // "Release notes not available"') + local published_at=$(echo "$release_json" | jq -r '.published_at // ""') + + # Validate critical fields + if [ "$tag" = "unknown" ] || [ "$tag" = "null" ] || [ -z "$tag" ]; then + print_warning "Invalid tag_name for release, skipping" + return 1 + fi + + local version_string=$(parse_version "$tag") + + # Get DMG asset info using base64 encoding for robustness + local dmg_asset_b64=$(echo "$release_json" | jq -r ".assets[] | select(.browser_download_url == \"$dmg_url\") | {size: .size, name: .name} | @base64" | head -1) + local dmg_size="" + + if [ -n "$dmg_asset_b64" ] && [ "$dmg_asset_b64" != "null" ]; then + dmg_size=$(echo "$dmg_asset_b64" | base64 --decode | jq -r '.size // null') + fi + + # If size is not in JSON, fetch from HTTP headers + if [ "$dmg_size" = "null" ] || [ -z "$dmg_size" ]; then + print_info "Fetching file size for $dmg_url" + dmg_size=$(get_file_size "$dmg_url") + fi + + # Get signature - either from known signatures or by downloading + local dmg_filename=$(basename "$dmg_url") + local signature="" + + # Check if we have a cached signature first + local cached_sig=$(get_cached_signature "$dmg_filename") + if [ -n "$cached_sig" ]; then + signature="$cached_sig" + print_info "Using cached signature for $dmg_filename" + else + # We'll download DMG once later for both signature and build number + signature="" + fi + + # Extract build number from the DMG + local build_number="" + local temp_dmg="/tmp/$dmg_filename" + + # Download DMG if not already present (for both signature and build number) + if [ ! -f "$temp_dmg" ]; then + print_info "Downloading DMG for analysis..." + curl -sL "$dmg_url" -o "$temp_dmg" 2>/dev/null + fi + + # Generate signature if we haven't already + if [ -z "$signature" ]; then + signature=$(generate_signature "$temp_dmg") + # Cache the signature for future runs + if [ -n "$signature" ]; then + cache_signature "$dmg_filename" "$signature" + fi + fi + + # Extract build number using helper script + if [ -x "$SCRIPT_DIR/extract-build-number.sh" ]; then + build_number=$("$SCRIPT_DIR/extract-build-number.sh" "$temp_dmg" 2>/dev/null || echo "") + elif [ -x "$(dirname "$0")/extract-build-number.sh" ]; then + build_number=$("$(dirname "$0")/extract-build-number.sh" "$temp_dmg" 2>/dev/null || echo "") + else + print_warning "extract-build-number.sh not found - build numbers may be incorrect" + fi + + # Fallback to version-based guessing if extraction fails + if [ -z "$build_number" ]; then + print_warning "Could not extract build number from DMG, using fallback" + case "$version_string" in + *-beta.1) build_number="100" ;; + *-beta.2) build_number="101" ;; + *-beta.3) build_number="102" ;; + *-beta.4) build_number="103" ;; + *-rc.1) build_number="110" ;; + *-rc.2) build_number="111" ;; + 0.1) build_number="100" ;; + *) build_number="1" ;; + esac + fi + + # Clean up temp DMG + rm -f "$temp_dmg" + + # Generate description using local changelog + local description="

    $title

    " + if [ "$is_prerelease" = "true" ]; then + description+="

    Pre-release version

    " + fi + + # Try to get changelog from local CHANGELOG.md using changelog-to-html.sh + local changelog_html="" + local changelog_script="$(dirname "$SCRIPT_DIR")/scripts/changelog-to-html.sh" + local changelog_file="$(dirname "$SCRIPT_DIR")/CHANGELOG.md" + + if [ -x "$changelog_script" ] && [ -f "$changelog_file" ]; then + # Extract version number from tag (remove 'v' prefix) + local version_for_changelog="${version_string}" + changelog_html=$("$changelog_script" "$version_for_changelog" "$changelog_file" 2>/dev/null || echo "") + + # If that fails, try with the base version for pre-releases + if [ -z "$changelog_html" ] && [[ "$version_for_changelog" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then + local base_version="${BASH_REMATCH[1]}" + changelog_html=$("$changelog_script" "$base_version" "$changelog_file" 2>/dev/null || echo "") + fi + fi + + # Use changelog if available, otherwise fall back to GitHub release body + if [ -n "$changelog_html" ]; then + description+="
    $changelog_html
    " + else + # Fall back to GitHub release body (escaped for XML safety) + local clean_body + clean_body=$(echo "$body" | sed 's/&/\&/g; s//\>/g; s/"/\"/g; s/'"'"'/\'/g') + if [ -n "$clean_body" ] && [ "$clean_body" != "Release notes not available" ]; then + local formatted_body=$(echo "$clean_body" | head -5 | sed 's/^[[:space:]]*//; s/[[:space:]]*$//; /^$/d' | sed 's/^/

    /; s/$/<\/p>/') + description+="

    $formatted_body
    " + else + description+="

    Release notes not available

    " + fi + fi + + # Generate the item XML + cat << EOF + + $title + $dmg_url + $build_number + $version_string + + $(format_date "$published_at") + + 15.0 + +EOF +} + +# Main function +main() { + print_info "Generating appcast files for $GITHUB_REPO" + + # Create temporary directory + local temp_dir=$(mktemp -d) + trap "rm -rf $temp_dir" EXIT + + # Fetch all releases from GitHub with error handling + print_info "Fetching releases from GitHub..." + local releases + if ! releases=$(gh api "repos/$GITHUB_REPO/releases" --paginate 2>/dev/null); then + print_error "Failed to fetch releases from GitHub. Please check your GitHub CLI authentication and network connection." + exit 1 + fi + + if [ -z "$releases" ] || [ "$releases" = "[]" ]; then + print_warning "No releases found for repository $GITHUB_REPO" + exit 0 + fi + + # Separate stable and pre-releases + local stable_releases=$(echo "$releases" | jq -c '.[] | select(.prerelease == false)') + local pre_releases=$(echo "$releases" | jq -c '.[] | select(.prerelease == true)') + + # Generate stable appcast + print_info "Generating appcast.xml..." + cat > appcast.xml << 'EOF' + + + + VibeTunnel Updates + https://github.com/amantus-ai/vibetunnel + VibeTunnel automatic updates feed + en +EOF + + # Add stable releases to appcast + while IFS= read -r release; do + [ -z "$release" ] && continue + + # Find DMG asset using base64 encoding for robustness + local dmg_asset_b64=$(echo "$release" | jq -r '.assets[] | select(.name | endswith(".dmg")) | {url: .browser_download_url, name: .name} | @base64' | head -1) + + if [ -n "$dmg_asset_b64" ] && [ "$dmg_asset_b64" != "null" ]; then + local dmg_url=$(echo "$dmg_asset_b64" | base64 --decode | jq -r '.url') + if [ -n "$dmg_url" ] && [ "$dmg_url" != "null" ]; then + if create_appcast_item "$release" "$dmg_url" "false" >> appcast.xml; then + print_info "Added stable release: $(echo "$release" | jq -r '.tag_name')" + else + print_warning "Failed to create item for stable release: $(echo "$release" | jq -r '.tag_name')" + fi + fi + else + print_warning "No DMG asset found for stable release: $(echo "$release" | jq -r '.tag_name // "unknown"')" + fi + done <<< "$stable_releases" + + echo " " >> appcast.xml + echo "" >> appcast.xml + + # Generate pre-release appcast + print_info "Generating appcast-prerelease.xml..." + cat > appcast-prerelease.xml << 'EOF' + + + + VibeTunnel Pre-release Updates + https://github.com/amantus-ai/vibetunnel + VibeTunnel pre-release and beta updates feed + en +EOF + + # Add pre-releases to appcast + while IFS= read -r release; do + [ -z "$release" ] && continue + + # Find DMG asset using base64 encoding for robustness + local dmg_asset_b64=$(echo "$release" | jq -r '.assets[] | select(.name | endswith(".dmg")) | {url: .browser_download_url, name: .name} | @base64' | head -1) + + if [ -n "$dmg_asset_b64" ] && [ "$dmg_asset_b64" != "null" ]; then + local dmg_url=$(echo "$dmg_asset_b64" | base64 --decode | jq -r '.url') + if [ -n "$dmg_url" ] && [ "$dmg_url" != "null" ]; then + if create_appcast_item "$release" "$dmg_url" "true" >> appcast-prerelease.xml; then + print_info "Added pre-release: $(echo "$release" | jq -r '.tag_name')" + else + print_warning "Failed to create item for pre-release: $(echo "$release" | jq -r '.tag_name')" + fi + fi + else + print_warning "No DMG asset found for pre-release: $(echo "$release" | jq -r '.tag_name // "unknown"')" + fi + done <<< "$pre_releases" + + # Also add stable releases to pre-release feed + while IFS= read -r release; do + [ -z "$release" ] && continue + + # Find DMG asset using base64 encoding for robustness + local dmg_asset_b64=$(echo "$release" | jq -r '.assets[] | select(.name | endswith(".dmg")) | {url: .browser_download_url, name: .name} | @base64' | head -1) + + if [ -n "$dmg_asset_b64" ] && [ "$dmg_asset_b64" != "null" ]; then + local dmg_url=$(echo "$dmg_asset_b64" | base64 --decode | jq -r '.url') + if [ -n "$dmg_url" ] && [ "$dmg_url" != "null" ]; then + if create_appcast_item "$release" "$dmg_url" "false" >> appcast-prerelease.xml; then + print_info "Added stable release to pre-release feed: $(echo "$release" | jq -r '.tag_name')" + else + print_warning "Failed to create item for stable release in pre-release feed: $(echo "$release" | jq -r '.tag_name')" + fi + fi + else + print_warning "No DMG asset found for stable release in pre-release feed: $(echo "$release" | jq -r '.tag_name // "unknown"')" + fi + done <<< "$stable_releases" + + echo " " >> appcast-prerelease.xml + echo "" >> appcast-prerelease.xml + + print_info "✅ Appcast files generated successfully!" + print_info " - appcast.xml (stable releases only)" + print_info " - appcast-prerelease.xml (all releases)" + + # Validate the generated files + if command -v xmllint >/dev/null 2>&1; then + print_info "Validating XML..." + xmllint --noout appcast.xml && print_info " ✓ appcast.xml is valid" + xmllint --noout appcast-prerelease.xml && print_info " ✓ appcast-prerelease.xml is valid" + fi +} + +# Run main function +main "$@" \ No newline at end of file diff --git a/scripts/generate-xcproj.sh b/scripts/generate-xcproj.sh new file mode 100755 index 00000000..b0dfe1a5 --- /dev/null +++ b/scripts/generate-xcproj.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# ============================================================================= +# VibeTunnel Xcode Project Generation Script +# ============================================================================= +# +# This script generates the Xcode project and workspace using Tuist, with +# automatic patches applied for Swift 6 Sendable compliance. It's essential +# to run this script after any changes to Project.swift or Tuist.swift. +# +# USAGE: +# ./scripts/generate-xcproj.sh +# +# FEATURES: +# - Runs Tuist project generation silently (no Xcode restart) +# - Applies Swift 6 Sendable compliance patches +# - Allows regeneration while Xcode is open +# +# DEPENDENCIES: +# - Tuist (project generation tool) +# - Xcode (for opening the workspace) +# +# FILES GENERATED: +# - VibeTunnel.xcodeproj/ (Xcode project) +# - VibeTunnel.xcworkspace/ (Xcode workspace) +# - Derived/ (generated sources and Info.plist files) +# +# EXAMPLES: +# ./scripts/generate-xcproj.sh +# +# NOTES: +# - Always run this after modifying Project.swift or Tuist.swift +# - The script includes patches for Swift 6 compliance +# - Generated files are partially tracked in git for CI compatibility +# +# ============================================================================= + +set -e + +# Change to the project directory +cd "$(dirname "$0")/.." + +# Skip Xcode quit/restart to allow silent regeneration while Xcode is open + +echo "Generating Xcode project with Tuist..." +tuist generate --no-open + +echo "Patching generated files for Swift 6 Sendable compliance..." + +# Function to patch Info.plist accessor files +patch_info_plist_accessors() { + local file=$1 + + if [ -f "$file" ]; then + echo "Patching $file..." + + # Replace [String: Any] with [String: Bool] for NSAppTransportSecurity + sed -i '' 's/\[String: Any\]/[String: Bool]/g' "$file" + + # Replace [[String: Any]] with [[String: Sendable]] for arrays + sed -i '' 's/\[\[String: Any\]\]/[[String: Sendable]]/g' "$file" + + # Update the ResourceLoader struct to handle typed dictionaries + # Replace dictionary with dictionary + sed -i '' 's/dictionary/dictionary/g' "$file" + + # Replace arrayOfDictionaries with arrayOfDictionaries + sed -i '' 's/arrayOfDictionaries/arrayOfDictionaries/g' "$file" + fi +} + +# Find and patch all Info.plist accessor files +find . -path "*/Derived/InfoPlists+*" -name "*.swift" | while read -r file; do + patch_info_plist_accessors "$file" +done + +# Skip opening workspace to allow silent regeneration + +echo "✅ Xcode project generated and patched successfully!" \ No newline at end of file diff --git a/scripts/notarize-app.sh b/scripts/notarize-app.sh new file mode 100755 index 00000000..16ae6260 --- /dev/null +++ b/scripts/notarize-app.sh @@ -0,0 +1,313 @@ +#!/bin/bash +# notarize-app.sh - Complete notarization script for VibeTunnel with Sparkle +# Handles hardened runtime, proper signing of all components, and notarization + +set -eo pipefail + +# ============================================================================ +# Configuration +# ============================================================================ + +# Get the script and project directories +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +log() { + echo "[$(date "+%Y-%m-%d %H:%M:%S")] $1" +} + +error() { + echo "[$(date "+%Y-%m-%d %H:%M:%S")] ❌ ERROR: $1" >&2 + exit 1 +} + +success() { + echo "[$(date "+%Y-%m-%d %H:%M:%S")] ✅ $1" +} + +APP_BUNDLE="${1:-build/Build/Products/Release/VibeTunnel.app}" +SIGN_IDENTITY="Developer ID Application: Peter Steinberger (Y5PE65HELJ)" +TIMEOUT_MINUTES=30 + +# Check if app bundle exists +if [ ! -d "$APP_BUNDLE" ]; then + error "App bundle not found at $APP_BUNDLE" +fi + +log "Starting complete notarization process for $APP_BUNDLE" + +# Check required environment variables for notarization +if [ -z "$APP_STORE_CONNECT_API_KEY_P8" ] || [ -z "$APP_STORE_CONNECT_KEY_ID" ] || [ -z "$APP_STORE_CONNECT_ISSUER_ID" ]; then + error "Required environment variables not set. Need APP_STORE_CONNECT_API_KEY_P8, APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_ISSUER_ID" +fi + +# Create temporary API key file +API_KEY_FILE=$(mktemp) +echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > "$API_KEY_FILE" + +cleanup() { + rm -f "$API_KEY_FILE" "/tmp/VibeTunnel_notarize.zip" +} +trap cleanup EXIT + +# ============================================================================ +# Create Entitlements Files +# ============================================================================ + +create_entitlements() { + local entitlements_file="$1" + local is_xpc_service="$2" + + cat > "$entitlements_file" << 'EOF' + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-executable-page-protection + + com.apple.security.cs.disable-library-validation + + com.apple.security.hardened-runtime + +EOF + + if [ "$is_xpc_service" = "true" ]; then + cat >> "$entitlements_file" << 'EOF' + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.files.user-selected.read-write + + com.apple.security.temporary-exception.mach-lookup.global-name + + com.amantus.vibetunnel-spks + com.amantus.vibetunnel-spkd + +EOF + fi + + cat >> "$entitlements_file" << 'EOF' + + +EOF +} + +# Create entitlements files +MAIN_ENTITLEMENTS="/tmp/main_entitlements.plist" +XPC_ENTITLEMENTS="/tmp/xpc_entitlements.plist" + +# Use actual VibeTunnel entitlements for the main app +if [ -f "VibeTunnel/VibeTunnel.entitlements" ]; then + cp "VibeTunnel/VibeTunnel.entitlements" "$MAIN_ENTITLEMENTS" +elif [ -f "$PROJECT_ROOT/VibeTunnel/VibeTunnel.entitlements" ]; then + cp "$PROJECT_ROOT/VibeTunnel/VibeTunnel.entitlements" "$MAIN_ENTITLEMENTS" +else + log "Warning: VibeTunnel.entitlements not found, using default entitlements" + create_entitlements "$MAIN_ENTITLEMENTS" "false" +fi + +create_entitlements "$XPC_ENTITLEMENTS" "true" + +# ============================================================================ +# Signing Functions +# ============================================================================ + +sign_binary() { + local binary="$1" + local entitlements="$2" + local description="$3" + + log "Signing $description: $(basename "$binary")" + + # Add keychain option if available + keychain_opts="" + if [ -n "${KEYCHAIN_NAME:-}" ]; then + keychain_opts="--keychain $KEYCHAIN_NAME" + fi + + codesign \ + --force \ + --sign "$SIGN_IDENTITY" \ + --entitlements "$entitlements" \ + --options runtime \ + --timestamp \ + $keychain_opts \ + "$binary" +} + +sign_app_bundle() { + local bundle="$1" + local entitlements="$2" + local description="$3" + + log "Signing $description: $(basename "$bundle")" + + # Add keychain option if available + keychain_opts="" + if [ -n "${KEYCHAIN_NAME:-}" ]; then + keychain_opts="--keychain $KEYCHAIN_NAME" + fi + + codesign \ + --force \ + --sign "$SIGN_IDENTITY" \ + --entitlements "$entitlements" \ + --options runtime \ + --timestamp \ + $keychain_opts \ + "$bundle" +} + +# ============================================================================ +# Deep Signing Process +# ============================================================================ + +log "Performing deep signing with proper Sparkle framework handling..." + +# 0. Fix Sparkle XPC services for sandbox +log "Fixing Sparkle XPC services for sandboxed operation..." +if [ -x "$SCRIPT_DIR/fix-sparkle-sandbox.sh" ]; then + "$SCRIPT_DIR/fix-sparkle-sandbox.sh" "$APP_BUNDLE" || log "Warning: Sparkle sandbox fix failed (continuing anyway)" +else + log "Warning: fix-sparkle-sandbox.sh not found or not executable" +fi + +# 1. Sign Sparkle components manually per documentation +# https://sparkle-project.org/documentation/sandboxing/#code-signing +log "Signing Sparkle components per documentation..." + +# Add keychain option if available +keychain_opts="" +if [ -n "${KEYCHAIN_NAME:-}" ]; then + keychain_opts="--keychain $KEYCHAIN_NAME" +fi + +# Sign XPC services (directories, not files) +if [ -d "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Installer.xpc" ]; then + codesign -f -s "$SIGN_IDENTITY" -o runtime $keychain_opts "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Installer.xpc" + log "Signed Installer.xpc" +fi +if [ -d "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc" ]; then + # For Sparkle versions >= 2.6, preserve entitlements + codesign -f -s "$SIGN_IDENTITY" -o runtime --preserve-metadata=entitlements $keychain_opts "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc" + log "Signed Downloader.xpc" +fi + +# Sign other Sparkle components +if [ -f "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/Autoupdate" ]; then + codesign -f -s "$SIGN_IDENTITY" -o runtime $keychain_opts "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/Autoupdate" + log "Signed Autoupdate" +fi +if [ -d "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/Updater.app" ]; then + codesign -f -s "$SIGN_IDENTITY" -o runtime $keychain_opts "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework/Versions/B/Updater.app" + log "Signed Updater.app" +fi + +# Finally sign the framework itself +codesign -f -s "$SIGN_IDENTITY" -o runtime $keychain_opts "$APP_BUNDLE/Contents/Frameworks/Sparkle.framework" +log "Signed Sparkle.framework" + +# 2. Sparkle framework is already signed above per documentation + +# 3. Sign other frameworks +log "Signing other frameworks..." +find "$APP_BUNDLE/Contents/Frameworks" -name "*.framework" -not -path "*Sparkle*" -type d | while read framework; do + framework_binary="$framework/$(basename "$framework" .framework)" + if [ -f "$framework_binary" ]; then + sign_binary "$framework_binary" "$MAIN_ENTITLEMENTS" "Framework binary" + fi + + keychain_opts="" + if [ -n "${KEYCHAIN_NAME:-}" ]; then + keychain_opts="--keychain $KEYCHAIN_NAME" + fi + + codesign \ + --force \ + --sign "$SIGN_IDENTITY" \ + --options runtime \ + --timestamp \ + $keychain_opts \ + "$framework" +done + +# 4. Sign helper tools and executables +log "Signing helper tools..." +find "$APP_BUNDLE/Contents" -type f -perm +111 -not -path "*/MacOS/*" -not -path "*/Frameworks/*" | while read executable; do + sign_binary "$executable" "$MAIN_ENTITLEMENTS" "Helper executable" +done + +# 5. Finally, sign the main app bundle +log "Signing main app bundle..." +keychain_opts="" +if [ -n "${KEYCHAIN_NAME:-}" ]; then + keychain_opts="--keychain $KEYCHAIN_NAME" +fi + +codesign \ + --force \ + --sign "$SIGN_IDENTITY" \ + --entitlements "$MAIN_ENTITLEMENTS" \ + --options runtime \ + --timestamp \ + $keychain_opts \ + "$APP_BUNDLE" + +# ============================================================================ +# Notarization +# ============================================================================ + +# Check if notarytool is available +if ! xcrun --find notarytool &> /dev/null; then + error "notarytool not found. Please ensure Xcode 13+ is installed" +fi + +log "Using modern notarytool for notarization" + +# Create ZIP for notarization +ZIP_PATH="/tmp/VibeTunnel_notarize.zip" +log "Creating ZIP archive for notarization..." +if ! ditto -c -k --keepParent "$APP_BUNDLE" "$ZIP_PATH"; then + error "Failed to create ZIP archive" +fi + +# Submit for notarization using notarytool +log "Submitting app for notarization..." +SUBMIT_CMD="xcrun notarytool submit \"$ZIP_PATH\" --key \"$API_KEY_FILE\" --key-id \"$APP_STORE_CONNECT_KEY_ID\" --issuer \"$APP_STORE_CONNECT_ISSUER_ID\" --wait --timeout ${TIMEOUT_MINUTES}m" + +# Run submission with timeout +if ! eval "$SUBMIT_CMD"; then + error "Notarization submission failed" +fi + +success "Notarization completed successfully" + +# Staple the notarization ticket +log "Stapling notarization ticket to app bundle..." +if ! xcrun stapler staple "$APP_BUNDLE"; then + error "Failed to staple notarization ticket" +fi + +# Verify the stapling +log "Verifying stapled notarization ticket..." +if ! xcrun stapler validate "$APP_BUNDLE"; then + error "Failed to verify stapled ticket" +fi + +# Test with spctl to ensure it passes Gatekeeper +log "Testing with spctl (Gatekeeper)..." +if spctl -a -t exec -vv "$APP_BUNDLE" 2>&1; then + success "spctl verification passed - app will run without warnings" +else + log "⚠️ spctl verification failed - app may show security warnings" +fi + +success "Notarization and stapling completed successfully" + +# Clean up temporary files +rm -f "$MAIN_ENTITLEMENTS" "$XPC_ENTITLEMENTS" \ No newline at end of file diff --git a/scripts/preflight-check.sh b/scripts/preflight-check.sh new file mode 100755 index 00000000..440423ff --- /dev/null +++ b/scripts/preflight-check.sh @@ -0,0 +1,322 @@ +#!/bin/bash + +# ============================================================================= +# VibeTunnel Pre-flight Check Script +# ============================================================================= +# +# This script validates that everything is ready for a VibeTunnel release by +# performing comprehensive checks on git status, build configuration, tools, +# certificates, and the IS_PRERELEASE_BUILD system. +# +# USAGE: +# ./scripts/preflight-check.sh +# +# VALIDATION CHECKS: +# - Git repository status (clean working tree, main branch, synced) +# - Version information and build number validation +# - Required development tools (Tuist, GitHub CLI, Sparkle tools) +# - Code signing certificates and notarization credentials +# - Sparkle configuration (keys, appcast files) +# - IS_PRERELEASE_BUILD system configuration +# +# EXIT CODES: +# 0 All checks passed - ready to release +# 1 Some checks failed - fix issues before releasing +# +# DEPENDENCIES: +# - git (repository management) +# - gh (GitHub CLI) +# - tuist (project generation) +# - sign_update (Sparkle EdDSA signing) +# - xcbeautify (optional, build output formatting) +# - security (keychain access for certificates) +# - xmllint (appcast validation) +# +# ENVIRONMENT VARIABLES: +# APP_STORE_CONNECT_API_KEY_P8 App Store Connect API key (for notarization) +# APP_STORE_CONNECT_KEY_ID API Key ID +# APP_STORE_CONNECT_ISSUER_ID API Key Issuer ID +# +# EXAMPLES: +# ./scripts/preflight-check.sh +# +# ============================================================================= + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +# Colors for output +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +# Track if any checks fail +CHECKS_PASSED=true + +echo "🔍 VibeTunnel Release Pre-flight Check" +echo "====================================" +echo "" + +# Function to print check results +check_pass() { + echo -e "${GREEN}✅ PASS${NC}: $1" +} + +check_fail() { + echo -e "${RED}❌ FAIL${NC}: $1" + CHECKS_PASSED=false +} + +check_warn() { + echo -e "${YELLOW}⚠️ WARN${NC}: $1" +} + +# 1. Check Git status +echo "📌 Git Status:" +# Refresh the index to avoid false positives +git update-index --refresh >/dev/null 2>&1 || true +if git diff-index --quiet HEAD -- 2>/dev/null; then + check_pass "Working directory is clean" +else + check_fail "Uncommitted changes detected" + git status --short +fi + +# Check if on main branch +CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) +if [[ "$CURRENT_BRANCH" == "main" ]]; then + check_pass "On main branch" +else + check_warn "Not on main branch (current: $CURRENT_BRANCH)" +fi + +# Check if up to date with remote +git fetch origin main --quiet +LOCAL=$(git rev-parse HEAD) +REMOTE=$(git rev-parse origin/main) +if [[ "$LOCAL" == "$REMOTE" ]]; then + check_pass "Up to date with origin/main" +else + check_fail "Not synced with origin/main" +fi + +echo "" + +# 2. Check version information +echo "📌 Version Information:" +MARKETING_VERSION=$(grep 'MARKETING_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"MARKETING_VERSION": "\(.*\)".*/\1/') +BUILD_NUMBER=$(grep 'CURRENT_PROJECT_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"CURRENT_PROJECT_VERSION": "\(.*\)".*/\1/') + +echo " Marketing Version: $MARKETING_VERSION" +echo " Build Number: $BUILD_NUMBER" + +# Check for Info.plist overrides +if grep "CFBundleShortVersionString" "$PROJECT_ROOT/Project.swift" | grep -v "MARKETING_VERSION" | grep -q .; then + check_fail "Info.plist has version overrides - remove them" +else + check_pass "No Info.plist version overrides" +fi + +echo "" + +# 3. Check build numbers +echo "📌 Build Number Validation:" +USED_BUILD_NUMBERS="" +if [[ -f "$PROJECT_ROOT/appcast.xml" ]]; then + APPCAST_BUILDS=$(grep -E '[0-9]+' "$PROJECT_ROOT/appcast.xml" 2>/dev/null | sed 's/.*\([0-9]*\)<\/sparkle:version>.*/\1/' | tr '\n' ' ' || true) + USED_BUILD_NUMBERS+="$APPCAST_BUILDS" +fi +if [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + PRERELEASE_BUILDS=$(grep -E '[0-9]+' "$PROJECT_ROOT/appcast-prerelease.xml" 2>/dev/null | sed 's/.*\([0-9]*\)<\/sparkle:version>.*/\1/' | tr '\n' ' ' || true) + USED_BUILD_NUMBERS+="$PRERELEASE_BUILDS" +fi + +# Find highest build number +HIGHEST_BUILD=0 +for EXISTING_BUILD in $USED_BUILD_NUMBERS; do + if [[ "$EXISTING_BUILD" -gt "$HIGHEST_BUILD" ]]; then + HIGHEST_BUILD=$EXISTING_BUILD + fi +done + +if [[ -z "$USED_BUILD_NUMBERS" ]]; then + check_pass "No existing builds found" +else + echo " Existing builds: $USED_BUILD_NUMBERS" + echo " Highest build: $HIGHEST_BUILD" + + # Check for duplicates + for EXISTING_BUILD in $USED_BUILD_NUMBERS; do + if [[ "$BUILD_NUMBER" == "$EXISTING_BUILD" ]]; then + check_fail "Build number $BUILD_NUMBER already exists!" + fi + done + + # Check if monotonically increasing + if [[ "$BUILD_NUMBER" -gt "$HIGHEST_BUILD" ]]; then + check_pass "Build number $BUILD_NUMBER is valid (> $HIGHEST_BUILD)" + else + check_fail "Build number must be > $HIGHEST_BUILD" + fi +fi + +echo "" + +# 4. Check required tools +echo "📌 Required Tools:" + +# GitHub CLI +if command -v gh &> /dev/null; then + check_pass "GitHub CLI (gh) installed" + if gh auth status &> /dev/null; then + check_pass "GitHub CLI authenticated" + else + check_fail "GitHub CLI not authenticated - run: gh auth login" + fi +else + check_fail "GitHub CLI not installed - run: brew install gh" +fi + +# Tuist +if command -v tuist &> /dev/null; then + check_pass "Tuist installed" +else + check_fail "Tuist not installed - run: curl -Ls https://install.tuist.io | bash" +fi + +# Sparkle tools +if [[ -f "$HOME/.local/bin/sign_update" ]]; then + check_pass "Sparkle sign_update installed" +else + check_fail "Sparkle tools not installed - see RELEASE.md" +fi + +# xcbeautify (optional but recommended) +if command -v xcbeautify &> /dev/null; then + check_pass "xcbeautify installed" +else + check_warn "xcbeautify not installed (optional) - run: brew install xcbeautify" +fi + +echo "" + +# 5. Check signing configuration +echo "📌 Signing Configuration:" + +# Check for Developer ID certificate +if security find-identity -v -p codesigning | grep -q "Developer ID Application"; then + check_pass "Developer ID certificate found" +else + check_fail "No Developer ID certificate found" +fi + +# Check for notarization credentials +if [[ -n "${APP_STORE_CONNECT_API_KEY_P8:-}" ]]; then + check_pass "Notarization API key configured" +else + check_warn "Notarization API key not in environment" +fi + +echo "" + +# 6. Check Sparkle configuration +echo "📌 Sparkle Configuration:" + +# Check public key +PUBLIC_KEY=$(grep 'SUPublicEDKey' "$PROJECT_ROOT/Project.swift" | sed 's/.*"SUPublicEDKey": "\(.*\)".*/\1/') +if [[ -n "$PUBLIC_KEY" ]]; then + check_pass "Sparkle public key configured" +else + check_fail "Sparkle public key not found in Project.swift" +fi + +# Check private key in keychain +export PATH="$HOME/.local/bin:$PATH" +if command -v generate_keys &> /dev/null && generate_keys -p &>/dev/null; then + check_pass "Sparkle private key found in Keychain" +else + check_fail "Sparkle private key not found in Keychain - run: generate_keys" +fi + +echo "" + +# 7. Check appcast files +echo "📌 Appcast Files:" + +if [[ -f "$PROJECT_ROOT/appcast.xml" ]]; then + if xmllint --noout "$PROJECT_ROOT/appcast.xml" 2>/dev/null; then + check_pass "appcast.xml is valid XML" + else + check_fail "appcast.xml has XML errors" + fi +else + check_warn "appcast.xml not found (OK if no stable releases yet)" +fi + +if [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + if xmllint --noout "$PROJECT_ROOT/appcast-prerelease.xml" 2>/dev/null; then + check_pass "appcast-prerelease.xml is valid XML" + else + check_fail "appcast-prerelease.xml has XML errors" + fi +else + check_warn "appcast-prerelease.xml not found (OK if no pre-releases yet)" +fi + +echo "" + +# 8. Check IS_PRERELEASE_BUILD Configuration +echo "📌 IS_PRERELEASE_BUILD System:" + +# Check if IS_PRERELEASE_BUILD is configured in Project.swift +if grep -q '"IS_PRERELEASE_BUILD".*"\$(IS_PRERELEASE_BUILD)"' "$PROJECT_ROOT/Project.swift"; then + check_pass "IS_PRERELEASE_BUILD flag configured in Project.swift" +else + check_fail "IS_PRERELEASE_BUILD flag missing from Project.swift Info.plist section" +fi + +# Check if UpdateChannel.swift has the flag detection logic +if grep -q "Bundle.main.object.*IS_PRERELEASE_BUILD" "$PROJECT_ROOT/VibeTunnel/Core/Models/UpdateChannel.swift"; then + check_pass "UpdateChannel has IS_PRERELEASE_BUILD detection logic" +else + check_fail "UpdateChannel.swift missing IS_PRERELEASE_BUILD flag detection" +fi + +# Check if release script sets the environment variable +if grep -q "export IS_PRERELEASE_BUILD=" "$PROJECT_ROOT/scripts/release.sh"; then + check_pass "Release script sets IS_PRERELEASE_BUILD environment variable" +else + check_fail "Release script missing IS_PRERELEASE_BUILD environment variable setup" +fi + +# Check if AppBehaviorSettingsManager uses defaultChannel +if grep -q "UpdateChannel.defaultChannel" "$PROJECT_ROOT/VibeTunnel/Core/Services/Settings/AppBehaviorSettingsManager.swift"; then + check_pass "AppBehaviorSettingsManager uses UpdateChannel.defaultChannel()" +else + check_fail "AppBehaviorSettingsManager not using UpdateChannel.defaultChannel() for auto-detection" +fi + +echo "" + +# 9. Summary +echo "📊 Pre-flight Summary:" +echo "====================" + +if [[ "$CHECKS_PASSED" == true ]]; then + echo -e "${GREEN}✅ All critical checks passed!${NC}" + echo "" + echo "Ready to release:" + echo " Version: $MARKETING_VERSION" + echo " Build: $BUILD_NUMBER" + echo "" + echo "Next steps:" + echo " - For beta: ./scripts/release.sh beta 1" + echo " - For stable: ./scripts/release.sh stable" + exit 0 +else + echo -e "${RED}❌ Some checks failed. Please fix the issues above.${NC}" + exit 1 +fi \ No newline at end of file diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 00000000..69ae0eba --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,364 @@ +#!/bin/bash + +# ============================================================================= +# VibeTunnel Automated Release Script +# ============================================================================= +# +# This script handles the complete end-to-end release process for VibeTunnel, +# including building, signing, notarization, DMG creation, GitHub releases, +# and appcast updates. It supports both stable and pre-release versions. +# +# USAGE: +# ./scripts/release.sh [number] +# +# ARGUMENTS: +# type Release type: stable, beta, alpha, rc +# number Pre-release number (required for beta/alpha/rc) +# +# FEATURES: +# - Complete build and release automation +# - Automatic IS_PRERELEASE_BUILD flag handling +# - Code signing and notarization +# - DMG creation with signing +# - GitHub release creation with assets +# - Appcast XML generation and updates +# - Git tag management and commit automation +# - Comprehensive error checking and validation +# +# ENVIRONMENT VARIABLES: +# APP_STORE_CONNECT_API_KEY_P8 App Store Connect API key (for notarization) +# APP_STORE_CONNECT_KEY_ID API Key ID +# APP_STORE_CONNECT_ISSUER_ID API Key Issuer ID +# +# DEPENDENCIES: +# - preflight-check.sh (validates release readiness) +# - generate-xcproj.sh (Tuist project generation) +# - build.sh (application building) +# - sign-and-notarize.sh (code signing and notarization) +# - create-dmg.sh (DMG creation) +# - generate-appcast.sh (appcast updates) +# - GitHub CLI (gh) for release creation +# - Sparkle tools (sign_update) for EdDSA signatures +# +# RELEASE PROCESS: +# 1. Pre-flight validation (git status, tools, certificates) +# 2. Xcode project generation and commit if needed +# 3. Application building with appropriate flags +# 4. Code signing and notarization +# 5. DMG creation and signing +# 6. GitHub release creation with assets +# 7. Appcast XML generation and updates +# 8. Git commits and pushes +# +# EXAMPLES: +# ./scripts/release.sh stable # Create stable release +# ./scripts/release.sh beta 1 # Create beta.1 release +# ./scripts/release.sh alpha 2 # Create alpha.2 release +# ./scripts/release.sh rc 1 # Create rc.1 release +# +# OUTPUT: +# - GitHub release at: https://github.com/amantus-ai/vibetunnel/releases +# - Signed DMG file in build/ directory +# - Updated appcast.xml and appcast-prerelease.xml files +# - Git commits and tags pushed to repository +# +# ============================================================================= + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +# Color codes +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +# Parse arguments +RELEASE_TYPE="${1:-}" +PRERELEASE_NUMBER="${2:-}" + +# Validate arguments +if [[ -z "$RELEASE_TYPE" ]]; then + echo -e "${RED}❌ Error: Release type required${NC}" + echo "" + echo "Usage:" + echo " $0 stable # Create stable release" + echo " $0 beta # Create beta.N release" + echo " $0 alpha # Create alpha.N release" + echo " $0 rc # Create rc.N release" + echo "" + echo "Examples:" + echo " $0 stable" + echo " $0 beta 1" + echo " $0 rc 3" + exit 1 +fi + +# For pre-releases, validate number +if [[ "$RELEASE_TYPE" != "stable" ]]; then + if [[ -z "$PRERELEASE_NUMBER" ]]; then + echo -e "${RED}❌ Error: Pre-release number required for $RELEASE_TYPE${NC}" + echo "Example: $0 $RELEASE_TYPE 1" + exit 1 + fi +fi + +echo -e "${BLUE}🚀 VibeTunnel Automated Release${NC}" +echo "==============================" +echo "" + +# Step 1: Run pre-flight check +echo -e "${BLUE}📋 Step 1/7: Running pre-flight check...${NC}" +if ! "$SCRIPT_DIR/preflight-check.sh"; then + echo "" + echo -e "${RED}❌ Pre-flight check failed. Please fix the issues above.${NC}" + exit 1 +fi + +echo "" +echo -e "${GREEN}✅ Pre-flight check passed!${NC}" +echo "" + +# Get version info +MARKETING_VERSION=$(grep 'MARKETING_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"MARKETING_VERSION": "\(.*\)".*/\1/') +BUILD_NUMBER=$(grep 'CURRENT_PROJECT_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"CURRENT_PROJECT_VERSION": "\(.*\)".*/\1/') + +# Determine release version +if [[ "$RELEASE_TYPE" == "stable" ]]; then + RELEASE_VERSION="$MARKETING_VERSION" + TAG_NAME="v$RELEASE_VERSION" +else + RELEASE_VERSION="$MARKETING_VERSION-$RELEASE_TYPE.$PRERELEASE_NUMBER" + TAG_NAME="v$RELEASE_VERSION" +fi + +echo "📦 Preparing release:" +echo " Type: $RELEASE_TYPE" +echo " Version: $RELEASE_VERSION" +echo " Build: $BUILD_NUMBER" +echo " Tag: $TAG_NAME" +echo "" + +# Step 2: Clean and generate project +echo -e "${BLUE}📋 Step 2/7: Generating Xcode project...${NC}" +rm -rf "$PROJECT_ROOT/build" +"$SCRIPT_DIR/generate-xcproj.sh" + +# Check if Xcode project was modified and commit if needed +if ! git diff --quiet "$PROJECT_ROOT/VibeTunnel.xcodeproj/project.pbxproj"; then + echo "📝 Committing Xcode project changes..." + git add "$PROJECT_ROOT/VibeTunnel.xcodeproj/project.pbxproj" + git commit -m "Update Xcode project for build $BUILD_NUMBER" + echo -e "${GREEN}✅ Xcode project changes committed${NC}" +fi + +# Step 3: Build the app +echo "" +echo -e "${BLUE}📋 Step 3/7: Building application...${NC}" + +# For pre-release builds, set the environment variable +if [[ "$RELEASE_TYPE" != "stable" ]]; then + echo "📝 Marking build as pre-release..." + export IS_PRERELEASE_BUILD=YES +else + export IS_PRERELEASE_BUILD=NO +fi + +"$SCRIPT_DIR/build.sh" --configuration Release + +# Verify build +APP_PATH="$PROJECT_ROOT/build/Build/Products/Release/VibeTunnel.app" +if [[ ! -d "$APP_PATH" ]]; then + echo -e "${RED}❌ Build failed - app not found${NC}" + exit 1 +fi + +# Verify build number +BUILT_VERSION=$(defaults read "$APP_PATH/Contents/Info.plist" CFBundleVersion) +if [[ "$BUILT_VERSION" != "$BUILD_NUMBER" ]]; then + echo -e "${RED}❌ Build number mismatch! Expected $BUILD_NUMBER but got $BUILT_VERSION${NC}" + exit 1 +fi + +echo -e "${GREEN}✅ Build complete${NC}" + +# Step 4: Sign and notarize +echo "" +echo -e "${BLUE}📋 Step 4/7: Signing and notarizing...${NC}" +"$SCRIPT_DIR/sign-and-notarize.sh" --sign-and-notarize + +# Step 5: Create DMG +echo "" +echo -e "${BLUE}📋 Step 5/7: Creating DMG...${NC}" +DMG_NAME="VibeTunnel-$RELEASE_VERSION.dmg" +DMG_PATH="$PROJECT_ROOT/build/$DMG_NAME" +"$SCRIPT_DIR/create-dmg.sh" "$APP_PATH" "$DMG_PATH" + +if [[ ! -f "$DMG_PATH" ]]; then + echo -e "${RED}❌ DMG creation failed${NC}" + exit 1 +fi + +echo -e "${GREEN}✅ DMG created: $DMG_NAME${NC}" + +# Step 6: Create GitHub release +echo "" +echo -e "${BLUE}📋 Step 6/7: Creating GitHub release...${NC}" + +# Check if tag already exists +if git rev-parse "$TAG_NAME" >/dev/null 2>&1; then + echo -e "${YELLOW}⚠️ Tag $TAG_NAME already exists!${NC}" + + # Check if a release exists for this tag + if gh release view "$TAG_NAME" >/dev/null 2>&1; then + echo "" + echo "A GitHub release already exists for this tag." + echo "What would you like to do?" + echo " 1) Delete the existing release and tag, then create new ones" + echo " 2) Cancel the release" + echo "" + read -p "Enter your choice (1 or 2): " choice + + case $choice in + 1) + echo "🗑️ Deleting existing release and tag..." + gh release delete "$TAG_NAME" --yes 2>/dev/null || true + git tag -d "$TAG_NAME" + git push origin :refs/tags/"$TAG_NAME" 2>/dev/null || true + echo -e "${GREEN}✅ Existing release and tag deleted${NC}" + ;; + 2) + echo -e "${RED}❌ Release cancelled${NC}" + exit 1 + ;; + *) + echo -e "${RED}❌ Invalid choice. Release cancelled${NC}" + exit 1 + ;; + esac + else + # Tag exists but no release - just delete the tag + echo "🗑️ Deleting existing tag..." + git tag -d "$TAG_NAME" + git push origin :refs/tags/"$TAG_NAME" 2>/dev/null || true + echo -e "${GREEN}✅ Existing tag deleted${NC}" + fi +fi + +# Create and push tag +echo "🏷️ Creating tag $TAG_NAME..." +git tag -a "$TAG_NAME" -m "Release $RELEASE_VERSION (build $BUILD_NUMBER)" +git push origin "$TAG_NAME" + +# Create release +echo "📤 Creating GitHub release..." + +# Generate release notes from changelog +echo "📝 Generating release notes from changelog..." +CHANGELOG_HTML="" +if [[ -x "$SCRIPT_DIR/changelog-to-html.sh" ]] && [[ -f "$PROJECT_ROOT/CHANGELOG.md" ]]; then + # Extract version for changelog (remove any pre-release suffixes for lookup) + CHANGELOG_VERSION="$RELEASE_VERSION" + if [[ "$CHANGELOG_VERSION" =~ ^([0-9]+\.[0-9]+\.[0-9]+) ]]; then + CHANGELOG_BASE="${BASH_REMATCH[1]}" + # Try full version first, then base version + CHANGELOG_HTML=$("$SCRIPT_DIR/changelog-to-html.sh" "$CHANGELOG_VERSION" "$PROJECT_ROOT/CHANGELOG.md" 2>/dev/null || \ + "$SCRIPT_DIR/changelog-to-html.sh" "$CHANGELOG_BASE" "$PROJECT_ROOT/CHANGELOG.md" 2>/dev/null || \ + echo "") + fi +fi + +# Fallback to basic release notes if changelog extraction fails +if [[ -z "$CHANGELOG_HTML" ]]; then + echo "⚠️ Could not extract changelog, using basic release notes" + RELEASE_NOTES="Release $RELEASE_VERSION (build $BUILD_NUMBER)" +else + echo "✅ Generated release notes from changelog" + RELEASE_NOTES="$CHANGELOG_HTML" +fi + +if [[ "$RELEASE_TYPE" == "stable" ]]; then + gh release create "$TAG_NAME" \ + --title "VibeTunnel $RELEASE_VERSION" \ + --notes "$RELEASE_NOTES" \ + "$DMG_PATH" +else + gh release create "$TAG_NAME" \ + --title "VibeTunnel $RELEASE_VERSION" \ + --notes "$RELEASE_NOTES" \ + --prerelease \ + "$DMG_PATH" +fi + +echo -e "${GREEN}✅ GitHub release created${NC}" + +# Step 7: Update appcast +echo "" +echo -e "${BLUE}📋 Step 7/7: Updating appcast...${NC}" + +# Generate appcast +echo "🔐 Generating appcast with EdDSA signatures..." +"$SCRIPT_DIR/generate-appcast.sh" + +# Verify the appcast was updated +if [[ "$RELEASE_TYPE" == "stable" ]]; then + if ! grep -q "$BUILD_NUMBER" "$PROJECT_ROOT/appcast.xml"; then + echo -e "${YELLOW}⚠️ Appcast may not have been updated. Please check manually.${NC}" + fi +else + if ! grep -q "$BUILD_NUMBER" "$PROJECT_ROOT/appcast-prerelease.xml"; then + echo -e "${YELLOW}⚠️ Pre-release appcast may not have been updated. Please check manually.${NC}" + fi +fi + +echo -e "${GREEN}✅ Appcast updated${NC}" + +# Commit and push appcast files +echo "" +echo "📤 Committing and pushing appcast..." +git add "$PROJECT_ROOT/appcast.xml" "$PROJECT_ROOT/appcast-prerelease.xml" 2>/dev/null || true +if ! git diff --cached --quiet; then + git commit -m "Update appcast for $RELEASE_VERSION" + git push origin main + echo -e "${GREEN}✅ Appcast changes pushed${NC}" +else + echo "ℹ️ No appcast changes to commit" +fi + +# Optional: Verify appcast +echo "" +echo "🔍 Verifying appcast files..." +if "$SCRIPT_DIR/verify-appcast.sh" | grep -q "All appcast checks passed"; then + echo -e "${GREEN}✅ Appcast verification passed${NC}" +else + echo -e "${YELLOW}⚠️ Some appcast issues detected. Please review the output above.${NC}" +fi + +echo "" +echo -e "${GREEN}🎉 Release Complete!${NC}" +echo "==================" +echo "" +echo -e "${GREEN}✅ Successfully released VibeTunnel $RELEASE_VERSION${NC}" +echo "" +echo "Release details:" +echo " - Version: $RELEASE_VERSION" +echo " - Build: $BUILD_NUMBER" +echo " - Tag: $TAG_NAME" +echo " - DMG: $DMG_NAME" +echo " - GitHub: https://github.com/amantus-ai/vibetunnel/releases/tag/$TAG_NAME" +echo "" + +if [[ "$RELEASE_TYPE" != "stable" ]]; then + echo "📝 Note: This is a pre-release. Users with 'Include Pre-releases' enabled will receive this update." +else + echo "📝 Note: This is a stable release. All users will receive this update." +fi + +echo "" +echo "💡 Next steps:" +echo " - Test the update from an older version" +echo " - Monitor Console.app for any update errors" +echo " - Update release notes on GitHub if needed" \ No newline at end of file diff --git a/scripts/sign-and-notarize.sh b/scripts/sign-and-notarize.sh new file mode 100755 index 00000000..286edbb1 --- /dev/null +++ b/scripts/sign-and-notarize.sh @@ -0,0 +1,350 @@ +#!/bin/bash +# sign-and-notarize.sh - Comprehensive code signing and notarization script for VibeTunnel +# +# This script handles the full process of: +# 1. Code signing with hardened runtime +# 2. Notarization with Apple +# 3. Stapling the notarization ticket +# 4. Creating distributable ZIP archives + +set -euo pipefail + +# Get script directory and ensure we're in the right location +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" +APP_DIR="$(cd "$SCRIPT_DIR/.." &> /dev/null && pwd)" +cd "$APP_DIR" || { echo "Error: Failed to change directory to $APP_DIR"; exit 1; } + +# Initialize variables with defaults +BUNDLE_DIR="build/Build/Products/Release/VibeTunnel.app" +APP_BUNDLE_PATH="$APP_DIR/$BUNDLE_DIR" +ZIP_PATH="$APP_DIR/build/VibeTunnel-notarize.zip" +FINAL_ZIP_PATH="$APP_DIR/build/VibeTunnel-notarized.zip" +MAX_RETRIES=3 +RETRY_DELAY=30 +TIMEOUT_MINUTES=30 + +# Operation flags - what parts of the process to run +DO_SIGNING=true +DO_NOTARIZATION=false +CREATE_ZIP=true +SKIP_STAPLE=false +VERBOSE=false + +# Log helper function with timestamp +log() { + echo "[$(date "+%Y-%m-%d %H:%M:%S")] $1" +} + +# Error logging +error() { + log "❌ ERROR: $1" + return 1 +} + +# Success logging +success() { + log "✅ $1" +} + +# Print usage information +print_usage() { + echo "Sign and Notarize Script for VibeTunnel Mac App" + echo "" + echo "Usage: $0 [options]" + echo "" + echo "Authentication Options (required for notarization):" + echo " --api-key-p8 KEY App Store Connect API key content (.p8)" + echo " --api-key-id ID App Store Connect API Key ID" + echo " --api-key-issuer ID App Store Connect API Key Issuer ID" + echo "" + echo "Process Control Options:" + echo " --sign-only Only perform code signing, skip notarization" + echo " --notarize-only Skip signing and only perform notarization" + echo " --sign-and-notarize Perform both signing and notarization (default if credentials provided)" + echo "" + echo "General Options:" + echo " --app-path PATH Path to the app bundle (default: $BUNDLE_DIR)" + echo " --identity ID Developer ID certificate to use for signing" + echo " --skip-staple Skip stapling the notarization ticket to the app" + echo " --no-zip Skip creating distributable ZIP archive" + echo " --timeout MINUTES Notarization timeout in minutes (default: 30)" + echo " --verbose Enable verbose output" + echo " --help Show this help message" +} + +# Function to read credentials from environment and arguments +read_credentials() { + # Initialize with existing environment variables + local api_key_p8="${APP_STORE_CONNECT_API_KEY_P8:-}" + local api_key_id="${APP_STORE_CONNECT_KEY_ID:-}" + local api_key_issuer="${APP_STORE_CONNECT_ISSUER_ID:-}" + local sign_identity="${SIGN_IDENTITY:-Developer ID Application}" + + # Save original arguments for explicit flag detection + local original_args=("$@") + + # Parse command line arguments + while [[ $# -gt 0 ]]; do + case "$1" in + # Authentication options + --api-key-p8) + api_key_p8="$2" + shift 2 + ;; + --api-key-id) + api_key_id="$2" + shift 2 + ;; + --api-key-issuer) + api_key_issuer="$2" + shift 2 + ;; + --identity) + sign_identity="$2" + shift 2 + ;; + + # Process control options + --sign-only) + DO_SIGNING=true + DO_NOTARIZATION=false + shift + ;; + --notarize-only) + DO_SIGNING=false + DO_NOTARIZATION=true + shift + ;; + --sign-and-notarize) + DO_SIGNING=true + DO_NOTARIZATION=true + shift + ;; + + # General options + --app-path) + APP_BUNDLE_PATH="$2" + BUNDLE_DIR="$(basename "$APP_BUNDLE_PATH")" + shift 2 + ;; + --skip-staple) + SKIP_STAPLE=true + shift + ;; + --no-zip) + CREATE_ZIP=false + shift + ;; + --timeout) + TIMEOUT_MINUTES="$2" + shift 2 + ;; + --verbose) + VERBOSE=true + shift + ;; + --help) + print_usage + exit 0 + ;; + *) + shift + ;; + esac + done + + # Export as environment variables + export APP_STORE_CONNECT_API_KEY_P8="$api_key_p8" + export APP_STORE_CONNECT_KEY_ID="$api_key_id" + export APP_STORE_CONNECT_ISSUER_ID="$api_key_issuer" + export SIGN_IDENTITY="$sign_identity" + + # If notarization credentials are available and no explicit flags were set, enable notarization + if [ -n "$api_key_p8" ] && [ -n "$api_key_id" ] && [ -n "$api_key_issuer" ]; then + # Only auto-enable notarization if no explicit process control flag was provided + local explicit_flag_provided=false + for arg in "${original_args[@]}"; do + case "$arg" in + --sign-only|--notarize-only|--sign-and-notarize) + explicit_flag_provided=true + break + ;; + esac + done + + if [ "$explicit_flag_provided" = false ] && [ "$DO_NOTARIZATION" = false ] && [ "$DO_SIGNING" = true ]; then + DO_NOTARIZATION=true + log "Notarization credentials detected. Will perform both signing and notarization." + fi + fi +} + +# Retry function for operations that might fail +retry_operation() { + local cmd="$1" + local desc="$2" + local attempt=1 + local result + + while [ $attempt -le $MAX_RETRIES ]; do + log "Attempt $attempt/$MAX_RETRIES: $desc" + if result=$(eval "$cmd" 2>&1); then + echo "$result" + return 0 + else + local exit_code=$? + log "Attempt $attempt failed (exit code: $exit_code)" + if [ "$VERBOSE" = "true" ]; then + log "Command output: $result" + fi + + if [ $attempt -lt $MAX_RETRIES ]; then + log "Retrying in $RETRY_DELAY seconds..." + sleep $RETRY_DELAY + fi + fi + attempt=$((attempt + 1)) + done + + error "Failed after $MAX_RETRIES attempts: $desc" + echo "$result" + return 1 +} + +# Function to perform code signing +perform_signing() { + log "Starting code signing process for VibeTunnel..." + + # Check if the app bundle exists + if [ ! -d "$APP_BUNDLE_PATH" ]; then + error "App bundle not found at $APP_BUNDLE_PATH" + log "Please build the app first by running ./scripts/build.sh" + exit 1 + fi + + log "Found app bundle at $APP_BUNDLE_PATH" + + # Call the codesign script + if ! "$SCRIPT_DIR/codesign-app.sh" "$APP_BUNDLE_PATH" "$SIGN_IDENTITY"; then + error "Code signing failed" + exit 1 + fi + + success "Code signing completed successfully!" +} + +# Function to perform app notarization +perform_notarization() { + log "Starting notarization process for VibeTunnel..." + + # Check for authentication requirements + MISSING_VARS=() + [ -z "${APP_STORE_CONNECT_API_KEY_P8:-}" ] && MISSING_VARS+=("APP_STORE_CONNECT_API_KEY_P8") + [ -z "${APP_STORE_CONNECT_KEY_ID:-}" ] && MISSING_VARS+=("APP_STORE_CONNECT_KEY_ID") + [ -z "${APP_STORE_CONNECT_ISSUER_ID:-}" ] && MISSING_VARS+=("APP_STORE_CONNECT_ISSUER_ID") + + if [ ${#MISSING_VARS[@]} -gt 0 ]; then + error "Missing required variables for notarization: ${MISSING_VARS[*]}" + log "Please provide --api-key-p8, --api-key-id, and --api-key-issuer options" + log "or set the corresponding environment variables." + exit 1 + fi + + # Ensure app is signed if needed + if [ "$DO_SIGNING" = true ] || ! codesign --verify --verbose=1 "$APP_BUNDLE_PATH" &>/dev/null; then + log "Signing needs to be performed before notarization..." + perform_signing + else + log "App already properly signed, skipping signing step" + fi + + # Call the notarization script + if ! "$SCRIPT_DIR/notarize-app.sh" "$APP_BUNDLE_PATH"; then + error "Notarization failed" + exit 1 + fi + + success "Notarization completed successfully!" + + # Create distributable ZIP archive if needed + if [ "$CREATE_ZIP" = true ]; then + log "Creating distributable ZIP archive..." + rm -f "$FINAL_ZIP_PATH" # Remove existing zip if any + mkdir -p "$(dirname "$FINAL_ZIP_PATH")" + if ! ditto -c -k --keepParent "$APP_BUNDLE_PATH" "$FINAL_ZIP_PATH"; then + error "Failed to create ZIP archive" + else + success "Distributable ZIP archive created: $FINAL_ZIP_PATH" + # Calculate file size and hash for verification + ZIP_SIZE=$(du -h "$FINAL_ZIP_PATH" | cut -f1) + ZIP_SHA=$(shasum -a 256 "$FINAL_ZIP_PATH" | cut -d' ' -f1) + log "ZIP archive size: $ZIP_SIZE" + log "ZIP SHA-256 hash: $ZIP_SHA" + fi + fi +} + +# Main execution starts here +log "Starting sign and notarize script for VibeTunnel..." + +# Read credentials from all possible sources +read_credentials "$@" + +# Check if the app bundle exists +if [ ! -d "$APP_BUNDLE_PATH" ]; then + error "App bundle not found at $APP_BUNDLE_PATH" + log "Please build the app first by running ./scripts/build.sh" + exit 1 +fi + +log "Found app bundle at $APP_BUNDLE_PATH" + +# Check if we should do code signing +if [ "$DO_SIGNING" = true ]; then + perform_signing +else + log "Skipping code signing as requested" +fi + +# Check if we should do notarization +if [ "$DO_NOTARIZATION" = true ]; then + perform_notarization +else + log "Skipping notarization as requested" + + # Create a simple ZIP file if signing only and zip creation is requested + if [ "$DO_SIGNING" = true ] && [ "$CREATE_ZIP" = true ]; then + log "Creating distributable ZIP archive after signing..." + mkdir -p "$(dirname "$FINAL_ZIP_PATH")" + if ! ditto -c -k --keepParent "$APP_BUNDLE_PATH" "$FINAL_ZIP_PATH"; then + error "Failed to create ZIP archive" + else + success "Distributable ZIP archive created: $FINAL_ZIP_PATH" + ZIP_SIZE=$(du -h "$FINAL_ZIP_PATH" | cut -f1) + ZIP_SHA=$(shasum -a 256 "$FINAL_ZIP_PATH" | cut -d' ' -f1) + log "ZIP archive size: $ZIP_SIZE" + log "ZIP SHA-256 hash: $ZIP_SHA" + fi + fi +fi + +# Print final status summary +log "" +log "Operation summary:" +log "✅ App bundle: $APP_BUNDLE_PATH" +if [ "$DO_SIGNING" = true ]; then + log "✅ Code signing: Completed" +fi +if [ "$DO_NOTARIZATION" = true ]; then + log "✅ Notarization: Completed" + if [ "$SKIP_STAPLE" = false ]; then + log "✅ Stapling: Completed (users can run without security warnings)" + else + log "⚠️ Stapling: Skipped" + fi +fi +if [ "$CREATE_ZIP" = true ] && [ -f "$FINAL_ZIP_PATH" ]; then + log "✅ Distributable ZIP archive: $FINAL_ZIP_PATH" +fi + +success "Script completed successfully!" \ No newline at end of file diff --git a/scripts/verify-app.sh b/scripts/verify-app.sh new file mode 100755 index 00000000..f51a905f --- /dev/null +++ b/scripts/verify-app.sh @@ -0,0 +1,298 @@ +#!/bin/bash + +# App Verification Script for VibeTunnel +# Comprehensive verification of built app, DMG, entitlements, and notarization +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +# Color codes for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Usage +if [[ $# -lt 1 ]]; then + echo "Usage: $0 " + echo "" + echo "Verifies app bundle or DMG for:" + echo " - Code signing" + echo " - Notarization" + echo " - Entitlements" + echo " - Sparkle XPC services" + echo " - Build numbers" + exit 1 +fi + +TARGET="$1" +TEMP_MOUNT="" +APP_PATH="" + +# Function to cleanup +cleanup() { + if [[ -n "$TEMP_MOUNT" ]] && [[ -d "$TEMP_MOUNT" ]]; then + echo "🧹 Cleaning up..." + hdiutil detach "$TEMP_MOUNT" -quiet 2>/dev/null || true + fi +} +trap cleanup EXIT + +echo "🔍 VibeTunnel App Verification" +echo "==============================" +echo "" + +# Handle DMG or App bundle +if [[ "$TARGET" == *.dmg ]]; then + echo "📀 Mounting DMG: $TARGET" + TEMP_MOUNT=$(hdiutil attach "$TARGET" -quiet -nobrowse | grep -E '^\s*/Volumes/' | tail -1 | awk '{print $NF}') + APP_PATH="$TEMP_MOUNT/VibeTunnel.app" + + if [[ ! -d "$APP_PATH" ]]; then + echo -e "${RED}❌ VibeTunnel.app not found in DMG${NC}" + exit 1 + fi +else + APP_PATH="$TARGET" +fi + +if [[ ! -d "$APP_PATH" ]]; then + echo -e "${RED}❌ App bundle not found at: $APP_PATH${NC}" + exit 1 +fi + +echo "📱 Checking app: $APP_PATH" +echo "" + +# 1. Basic Info +echo "📌 Basic Information:" +BUNDLE_ID=$(defaults read "$APP_PATH/Contents/Info.plist" CFBundleIdentifier 2>/dev/null || echo "unknown") +VERSION=$(defaults read "$APP_PATH/Contents/Info.plist" CFBundleShortVersionString 2>/dev/null || echo "unknown") +BUILD=$(defaults read "$APP_PATH/Contents/Info.plist" CFBundleVersion 2>/dev/null || echo "unknown") + +echo " Bundle ID: $BUNDLE_ID" +echo " Version: $VERSION" +echo " Build: $BUILD" +echo "" + +# 2. Code Signing +echo "📌 Code Signing:" +if codesign -dv "$APP_PATH" 2>&1 | grep -q "Signature=adhoc"; then + echo -e "${YELLOW} ⚠️ App is ad-hoc signed (development)${NC}" +elif codesign -dv "$APP_PATH" 2>&1 | grep -q "Authority=Developer ID Application"; then + echo -e "${GREEN} ✅ App is signed with Developer ID${NC}" + SIGNING_ID=$(codesign -dv "$APP_PATH" 2>&1 | grep "Authority=Developer ID Application" | head -1 | cut -d: -f2- | xargs) + echo " Certificate: $SIGNING_ID" +else + echo -e "${RED} ❌ App signing status unknown${NC}" +fi + +# Verify signature +if codesign --verify --deep --strict "$APP_PATH" 2>/dev/null; then + echo -e "${GREEN} ✅ Code signature is valid${NC}" +else + echo -e "${RED} ❌ Code signature verification failed${NC}" + codesign --verify --deep --strict "$APP_PATH" 2>&1 | grep -v "^$" | sed 's/^/ /' +fi +echo "" + +# 3. Notarization +echo "📌 Notarization Status:" +if spctl --assess --type execute "$APP_PATH" 2>&1 | grep -q "accepted"; then + echo -e "${GREEN} ✅ App is notarized and accepted by Gatekeeper${NC}" +else + SPCTL_OUTPUT=$(spctl --assess --type execute "$APP_PATH" 2>&1) + if echo "$SPCTL_OUTPUT" | grep -q "rejected"; then + echo -e "${RED} ❌ App is rejected by Gatekeeper${NC}" + echo " $SPCTL_OUTPUT" + else + echo -e "${YELLOW} ⚠️ Notarization status unclear${NC}" + echo " $SPCTL_OUTPUT" + fi +fi + +# Check notarization ticket +if codesign -dv "$APP_PATH" 2>&1 | grep -q "Notarization Ticket="; then + echo -e "${GREEN} ✅ Notarization ticket is stapled${NC}" +else + echo -e "${YELLOW} ⚠️ No notarization ticket found (may still be notarized)${NC}" +fi +echo "" + +# 4. Entitlements +echo "📌 Entitlements:" +ENTITLEMENTS=$(codesign -d --entitlements :- "$APP_PATH" 2>/dev/null | plutil -p - 2>/dev/null || echo "Failed to extract") + +# Check specific entitlements +if echo "$ENTITLEMENTS" | grep -q '"com.apple.security.app-sandbox" => 1'; then + echo -e "${GREEN} ✅ App sandbox is ENABLED${NC}" +else + echo -e "${YELLOW} ⚠️ App sandbox is DISABLED${NC}" +fi + +if echo "$ENTITLEMENTS" | grep -q '"com.apple.security.network.client" => 1'; then + echo -e "${GREEN} ✅ Network client access enabled${NC}" +else + echo -e "${RED} ❌ Network client access not enabled${NC}" +fi + +if echo "$ENTITLEMENTS" | grep -q '"com.apple.security.files.downloads.read-write" => 1'; then + echo -e "${GREEN} ✅ Downloads folder access enabled${NC}" +else + echo -e "${YELLOW} ⚠️ Downloads folder access not enabled${NC}" +fi + +# Show all entitlements +echo " All entitlements:" +echo "$ENTITLEMENTS" | grep -E "=>" | sed 's/^/ /' || echo " None found" +echo "" + +# 5. Sparkle Framework and XPC Services +echo "📌 Sparkle Framework:" +SPARKLE_PATH="$APP_PATH/Contents/Frameworks/Sparkle.framework" +if [[ -d "$SPARKLE_PATH" ]]; then + echo -e "${GREEN} ✅ Sparkle framework found${NC}" + + # Check XPC services + echo " XPC Services:" + for XPC in "$SPARKLE_PATH/Versions/B/XPCServices"/*.xpc; do + if [[ -d "$XPC" ]]; then + XPC_NAME=$(basename "$XPC") + echo " Checking $XPC_NAME..." + + # Check if signed + if codesign --verify "$XPC" 2>/dev/null; then + echo -e "${GREEN} ✅ $XPC_NAME is signed${NC}" + else + echo -e "${RED} ❌ $XPC_NAME signature invalid${NC}" + fi + + # Check entitlements + XPC_ENTITLEMENTS=$(codesign -d --entitlements :- "$XPC" 2>/dev/null | plutil -p - 2>/dev/null || echo "") + if echo "$XPC_ENTITLEMENTS" | grep -q '"com.apple.security.network.client" => 1'; then + echo -e "${GREEN} ✅ Network access enabled for $XPC_NAME${NC}" + else + echo -e "${RED} ❌ Network access NOT enabled for $XPC_NAME${NC}" + fi + fi + done +else + echo -e "${RED} ❌ Sparkle framework not found${NC}" +fi +echo "" + +# 6. Build Number Validation Against Appcast +echo "📌 Appcast Validation:" +if [[ -f "$PROJECT_ROOT/appcast.xml" ]] || [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + EXISTING_BUILDS="" + + if [[ -f "$PROJECT_ROOT/appcast.xml" ]]; then + EXISTING_BUILDS+=$(grep -E '[0-9]+' "$PROJECT_ROOT/appcast.xml" 2>/dev/null | sed 's/.*\([0-9]*\)<\/sparkle:version>.*/\1/' | tr '\n' ' ') + fi + + if [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + EXISTING_BUILDS+=$(grep -E '[0-9]+' "$PROJECT_ROOT/appcast-prerelease.xml" 2>/dev/null | sed 's/.*\([0-9]*\)<\/sparkle:version>.*/\1/' | tr '\n' ' ') + fi + + # Check for duplicate + BUILD_FOUND=false + for EXISTING in $EXISTING_BUILDS; do + if [[ "$BUILD" == "$EXISTING" ]]; then + BUILD_FOUND=true + break + fi + done + + if [[ "$BUILD_FOUND" == "true" ]]; then + echo -e "${YELLOW} ⚠️ Build $BUILD already exists in appcast${NC}" + else + echo -e "${GREEN} ✅ Build $BUILD is unique${NC}" + fi + + # Find highest build + HIGHEST=0 + for EXISTING in $EXISTING_BUILDS; do + if [[ "$EXISTING" -gt "$HIGHEST" ]]; then + HIGHEST=$EXISTING + fi + done + + if [[ "$BUILD" -gt "$HIGHEST" ]]; then + echo -e "${GREEN} ✅ Build $BUILD is higher than existing ($HIGHEST)${NC}" + else + echo -e "${RED} ❌ Build $BUILD is not higher than existing ($HIGHEST)${NC}" + fi +else + echo " No appcast files found for validation" +fi +echo "" + +# 7. Sparkle Public Key +echo "📌 Sparkle Configuration:" +PUBLIC_KEY=$(defaults read "$APP_PATH/Contents/Info.plist" SUPublicEDKey 2>/dev/null || echo "") +if [[ -n "$PUBLIC_KEY" ]]; then + echo -e "${GREEN} ✅ Sparkle public key configured${NC}" + echo " Key: ${PUBLIC_KEY:0:20}..." +else + echo -e "${RED} ❌ No Sparkle public key found${NC}" +fi + +FEED_URL=$(defaults read "$APP_PATH/Contents/Info.plist" SUFeedURL 2>/dev/null || echo "") +if [[ -n "$FEED_URL" ]]; then + echo " Feed URL: $FEED_URL" +fi +echo "" + +# 8. Summary +echo "📊 Verification Summary:" +echo "========================" + +ISSUES=0 + +# Check critical items +if ! codesign --verify --deep --strict "$APP_PATH" 2>/dev/null; then + echo -e "${RED}❌ Code signature invalid${NC}" + ((ISSUES++)) +fi + +if ! spctl --assess --type execute "$APP_PATH" 2>&1 | grep -q "accepted"; then + echo -e "${RED}❌ Not accepted by Gatekeeper${NC}" + ((ISSUES++)) +fi + +if ! echo "$ENTITLEMENTS" | grep -q '"com.apple.security.network.client" => 1'; then + echo -e "${RED}❌ Missing network entitlement${NC}" + ((ISSUES++)) +fi + +# Check XPC services have network access +if [[ -d "$SPARKLE_PATH/Versions/B/XPCServices/Downloader.xpc" ]]; then + XPC_NET=$(codesign -d --entitlements :- "$SPARKLE_PATH/Versions/B/XPCServices/Downloader.xpc" 2>/dev/null | plutil -p - 2>/dev/null || echo "") + if ! echo "$XPC_NET" | grep -q '"com.apple.security.network.client" => 1'; then + echo -e "${RED}❌ Sparkle Downloader.xpc missing network entitlement${NC}" + ((ISSUES++)) + fi +fi + +if [[ $ISSUES -eq 0 ]]; then + echo -e "${GREEN}✅ All critical checks passed!${NC}" + echo "" + echo "This app is ready for distribution." +else + echo -e "${RED}❌ Found $ISSUES critical issues${NC}" + echo "" + echo "Please fix these issues before releasing." +fi + +# Additional info +echo "" +echo "📝 Additional Commands:" +echo " View all entitlements:" +echo " codesign -d --entitlements :- \"$APP_PATH\"" +echo "" +echo " Check notarization log:" +echo " xcrun notarytool log --apple-id " +echo "" +echo " Verify with spctl:" +echo " spctl -a -vvv \"$APP_PATH\"" \ No newline at end of file diff --git a/scripts/verify-appcast.sh b/scripts/verify-appcast.sh new file mode 100755 index 00000000..77b80c85 --- /dev/null +++ b/scripts/verify-appcast.sh @@ -0,0 +1,198 @@ +#!/bin/bash + +# Appcast Verification Script for VibeTunnel +# Validates appcast XML files for common issues +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +# Color codes +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' + +echo "🔍 VibeTunnel Appcast Verification" +echo "=================================" +echo "" + +ISSUES=0 + +# Function to validate an appcast file +validate_appcast() { + local APPCAST_FILE="$1" + local APPCAST_NAME="$2" + + if [[ ! -f "$APPCAST_FILE" ]]; then + echo -e "${YELLOW}⚠️ $APPCAST_NAME not found${NC}" + return + fi + + echo "📌 Checking $APPCAST_NAME:" + + # Check if valid XML + if xmllint --noout "$APPCAST_FILE" 2>/dev/null; then + echo -e "${GREEN} ✅ Valid XML syntax${NC}" + else + echo -e "${RED} ❌ Invalid XML syntax${NC}" + xmllint --noout "$APPCAST_FILE" 2>&1 | sed 's/^/ /' + ((ISSUES++)) + return + fi + + # Count items + ITEM_COUNT=$(grep -c "" "$APPCAST_FILE" 2>/dev/null || true) + ITEM_COUNT=${ITEM_COUNT:-0} + echo " Found $ITEM_COUNT release(s)" + + if [[ $ITEM_COUNT -eq 0 ]]; then + echo -e "${YELLOW} ⚠️ No releases found in appcast${NC}" + return + fi + + # Extract build numbers and versions + BUILDS=($(grep -o '[0-9]*' "$APPCAST_FILE" | sed 's/<[^>]*>//g')) + VERSIONS=($(grep -o '[^<]*' "$APPCAST_FILE" | sed 's/<[^>]*>//g')) + URLS=($(grep -o 'url="[^"]*"' "$APPCAST_FILE" | sed 's/url="//;s/"//')) + SIGNATURES=($(grep -o 'sparkle:edSignature="[^"]*"' "$APPCAST_FILE" | sed 's/sparkle:edSignature="//;s/"//')) + + echo "" + for i in "${!BUILDS[@]}"; do + echo " Release #$((i+1)):" + echo " Version: ${VERSIONS[$i]:-}" + echo " Build: ${BUILDS[$i]:-}" + + # Validate build number + if [[ -z "${BUILDS[$i]:-}" ]]; then + echo -e "${RED} ❌ Missing build number${NC}" + ((ISSUES++)) + elif ! [[ "${BUILDS[$i]}" =~ ^[0-9]+$ ]]; then + echo -e "${RED} ❌ Invalid build number: ${BUILDS[$i]}${NC}" + ((ISSUES++)) + else + echo -e "${GREEN} ✅ Valid build number${NC}" + fi + + # Validate URL + if [[ -z "${URLS[$i]:-}" ]]; then + echo -e "${RED} ❌ Missing download URL${NC}" + ((ISSUES++)) + elif [[ "${URLS[$i]}" =~ ^https://github.com/amantus-ai/vibetunnel/releases/download/ ]]; then + echo -e "${GREEN} ✅ Valid GitHub release URL${NC}" + + # Check if release exists on GitHub + RELEASE_TAG=$(echo "${URLS[$i]}" | sed -n 's|.*/download/\([^/]*\)/.*|\1|p') + if gh release view "$RELEASE_TAG" &>/dev/null; then + echo -e "${GREEN} ✅ GitHub release exists${NC}" + else + echo -e "${RED} ❌ GitHub release not found: $RELEASE_TAG${NC}" + ((ISSUES++)) + fi + else + echo -e "${YELLOW} ⚠️ Non-GitHub URL: ${URLS[$i]}${NC}" + fi + + # Validate signature + if [[ -z "${SIGNATURES[$i]:-}" ]]; then + echo -e "${RED} ❌ Missing EdDSA signature${NC}" + ((ISSUES++)) + else + echo -e "${GREEN} ✅ EdDSA signature present${NC}" + fi + echo "" + done + + # Check for duplicate build numbers + if [[ ${#BUILDS[@]} -gt 0 ]]; then + echo " Build Number Analysis:" + UNIQUE_BUILDS=$(printf '%s\n' "${BUILDS[@]}" | sort -u | wc -l) + TOTAL_BUILDS=${#BUILDS[@]} + + if [[ $UNIQUE_BUILDS -ne $TOTAL_BUILDS ]]; then + echo -e "${RED} ❌ Duplicate build numbers found!${NC}" + printf '%s\n' "${BUILDS[@]}" | sort | uniq -d | while read -r DUP; do + echo " Duplicate: $DUP" + done + ((ISSUES++)) + else + echo -e "${GREEN} ✅ All build numbers are unique${NC}" + fi + + # Check build number ordering + SORTED_BUILDS=($(printf '%s\n' "${BUILDS[@]}" | sort -nr)) + if [[ "${SORTED_BUILDS[*]}" == "${BUILDS[*]}" ]]; then + echo -e "${GREEN} ✅ Build numbers are in descending order (newest first)${NC}" + else + echo -e "${YELLOW} ⚠️ Build numbers are not in descending order${NC}" + echo " Expected order: ${SORTED_BUILDS[*]}" + echo " Current order: ${BUILDS[*]}" + fi + fi + + echo "" +} + +# Validate both appcast files +validate_appcast "$PROJECT_ROOT/appcast.xml" "Stable appcast" +echo "" +validate_appcast "$PROJECT_ROOT/appcast-prerelease.xml" "Pre-release appcast" + +# Cross-validation between appcasts +echo "" +echo "📌 Cross-Validation:" + +if [[ -f "$PROJECT_ROOT/appcast.xml" ]] && [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + # Get all build numbers from both files + ALL_BUILDS=() + if [[ -f "$PROJECT_ROOT/appcast.xml" ]]; then + while IFS= read -r build; do + ALL_BUILDS+=("$build") + done < <(grep -o '[0-9]*' "$PROJECT_ROOT/appcast.xml" | sed 's/<[^>]*>//g') + fi + if [[ -f "$PROJECT_ROOT/appcast-prerelease.xml" ]]; then + while IFS= read -r build; do + ALL_BUILDS+=("$build") + done < <(grep -o '[0-9]*' "$PROJECT_ROOT/appcast-prerelease.xml" | sed 's/<[^>]*>//g') + fi + + # Check for duplicates across files + if [[ ${#ALL_BUILDS[@]} -gt 0 ]]; then + UNIQUE_ALL=$(printf '%s\n' "${ALL_BUILDS[@]}" | sort -u | wc -l) + TOTAL_ALL=${#ALL_BUILDS[@]} + + if [[ $UNIQUE_ALL -ne $TOTAL_ALL ]]; then + echo -e "${RED} ❌ Build numbers are duplicated between appcast files!${NC}" + printf '%s\n' "${ALL_BUILDS[@]}" | sort | uniq -d | while read -r DUP; do + echo " Duplicate build: $DUP" + done + ((ISSUES++)) + else + echo -e "${GREEN} ✅ No build number conflicts between appcast files${NC}" + fi + fi +fi + +# Summary +echo "" +echo "📊 Appcast Verification Summary:" +echo "================================" + +if [[ $ISSUES -eq 0 ]]; then + echo -e "${GREEN}✅ All appcast checks passed!${NC}" + echo "" + echo "Your appcast files are properly formatted." +else + echo -e "${RED}❌ Found $ISSUES issue(s)${NC}" + echo "" + echo "Please fix these issues to ensure proper updates." +fi + +# Suggestions +echo "" +echo "💡 Tips:" +echo " - Build numbers must be unique across ALL releases" +echo " - Build numbers should increase monotonically" +echo " - Newest releases should appear first in appcast" +echo " - All releases need EdDSA signatures" +echo " - GitHub releases must exist before appcast update" \ No newline at end of file diff --git a/scripts/version.sh b/scripts/version.sh new file mode 100755 index 00000000..1ce3872d --- /dev/null +++ b/scripts/version.sh @@ -0,0 +1,295 @@ +#!/bin/bash + +# Version Management Script for VibeTunnel +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" + +# Usage function +usage() { + echo "Usage: $0 [OPTIONS] [VERSION]" + echo "" + echo "Manage VibeTunnel version numbers and prepare releases" + echo "" + echo "OPTIONS:" + echo " --major Bump major version (e.g., 0.1 -> 1.0)" + echo " --minor Bump minor version (e.g., 0.1 -> 0.2)" + echo " --patch Bump patch version (e.g., 0.1.0 -> 0.1.1)" + echo " --prerelease TYPE Create pre-release version (TYPE: alpha, beta, rc)" + echo " --build Bump build number only" + echo " --set VERSION Set specific version (e.g., 1.0.0)" + echo " --current Show current version" + echo " --help Show this help message" + echo "" + echo "EXAMPLES:" + echo " $0 --current # Show current version" + echo " $0 --patch # 0.1 -> 0.1.1" + echo " $0 --minor # 0.1 -> 0.2" + echo " $0 --major # 0.1 -> 1.0" + echo " $0 --prerelease beta # 0.1 -> 0.1-beta.1" + echo " $0 --build # Increment build number" + echo " $0 --set 1.0.0 # Set to specific version" + echo "" + echo "WORKFLOW:" + echo " 1. Use this script to bump version" + echo " 2. Commit the version changes" + echo " 3. Use ./scripts/release-auto.sh to create the release" + echo "" +} + +# Get current version from Project.swift +get_current_version() { + grep 'MARKETING_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"MARKETING_VERSION": "\(.*\)".*/\1/' +} + +# Get current build number from Project.swift +get_current_build() { + grep 'CURRENT_PROJECT_VERSION' "$PROJECT_ROOT/Project.swift" | sed 's/.*"CURRENT_PROJECT_VERSION": "\(.*\)".*/\1/' +} + +# Update version in Project.swift +update_project_version() { + local new_version="$1" + local new_build="$2" + + # Create backup + cp "$PROJECT_ROOT/Project.swift" "$PROJECT_ROOT/Project.swift.bak" + + # Update marketing version + sed -i '' "s/\"MARKETING_VERSION\": \".*\"/\"MARKETING_VERSION\": \"$new_version\"/" "$PROJECT_ROOT/Project.swift" + + # Update build number + sed -i '' "s/\"CURRENT_PROJECT_VERSION\": \".*\"/\"CURRENT_PROJECT_VERSION\": \"$new_build\"/" "$PROJECT_ROOT/Project.swift" + + echo "✅ Updated Project.swift:" + echo " Version: $new_version" + echo " Build: $new_build" +} + +# Parse semantic version +parse_version() { + local version="$1" + # For VibeTunnel, handle both X.Y and X.Y.Z formats + if echo "$version" | grep -qE '^[0-9]+\.[0-9]+(\.[0-9]+)?$'; then + echo "$version" + else + echo "❌ Invalid version format: $version" + echo "Expected format: X.Y or X.Y.Z (e.g., 0.1 or 0.1.0)" + exit 1 + fi +} + +# Increment version component +increment_version() { + local version="$1" + local component="$2" # major, minor, patch + + # Handle X.Y format by converting to X.Y.0 + if [[ "$version" =~ ^[0-9]+\.[0-9]+$ ]]; then + version="${version}.0" + fi + + local major minor patch + IFS='.' read -r major minor patch <<< "$version" + + case "$component" in + major) + major=$((major + 1)) + minor=0 + patch=0 + ;; + minor) + minor=$((minor + 1)) + patch=0 + ;; + patch) + patch=$((patch + 1)) + ;; + *) + echo "❌ Invalid component: $component" + exit 1 + ;; + esac + + # Return X.Y format for major/minor versions if patch is 0 + if [[ "$patch" == "0" ]] && [[ "$component" != "patch" ]]; then + echo "$major.$minor" + else + echo "$major.$minor.$patch" + fi +} + +# Create pre-release version +create_prerelease_version() { + local base_version="$1" + local prerelease_type="$2" + + # Validate pre-release type + case "$prerelease_type" in + alpha|beta|rc) + ;; + *) + echo "❌ Invalid pre-release type: $prerelease_type" + echo "Valid types: alpha, beta, rc" + exit 1 + ;; + esac + + # Check if base version already has pre-release suffix + if [[ "$base_version" =~ -[a-z]+\.[0-9]+$ ]]; then + # Extract the pre-release number and increment it + local base_part="${base_version%-*}" + local prerelease_part="${base_version##*-}" + local current_type="${prerelease_part%.*}" + local current_number="${prerelease_part##*.}" + + if [[ "$current_type" == "$prerelease_type" ]]; then + # Same type, increment number + local new_number=$((current_number + 1)) + echo "$base_part-$prerelease_type.$new_number" + else + # Different type, start at 1 + echo "$base_part-$prerelease_type.1" + fi + else + # No pre-release suffix, add one + echo "$base_version-$prerelease_type.1" + fi +} + +# Main script logic +main() { + local action="" + local prerelease_type="" + local new_version="" + + # Parse arguments + while [[ $# -gt 0 ]]; do + case $1 in + --major|--minor|--patch|--build) + action="${1#--}" + shift + ;; + --prerelease) + action="prerelease" + if [[ $# -lt 2 ]]; then + echo "❌ --prerelease requires TYPE argument" + usage + exit 1 + fi + prerelease_type="$2" + shift 2 + ;; + --set) + action="set" + if [[ $# -lt 2 ]]; then + echo "❌ --set requires VERSION argument" + usage + exit 1 + fi + new_version="$2" + shift 2 + ;; + --current) + action="current" + shift + ;; + --help) + usage + exit 0 + ;; + *) + echo "❌ Unknown option: $1" + usage + exit 1 + ;; + esac + done + + # Get current version info + local current_version + local current_build + current_version=$(get_current_version) + current_build=$(get_current_build) + + echo "🏷️ VibeTunnel Version Management" + echo "📦 Current version: $current_version" + echo "🔢 Current build: $current_build" + echo "" + + # Handle actions + case "$action" in + current) + echo "✅ Current version: $current_version (build $current_build)" + exit 0 + ;; + major|minor|patch) + # Parse current version (remove any pre-release suffix) + local base_version + base_version=$(parse_version "$current_version") + new_version=$(increment_version "$base_version" "$action") + local new_build=$((current_build + 1)) + ;; + prerelease) + new_version=$(create_prerelease_version "$current_version" "$prerelease_type") + local new_build=$((current_build + 1)) + ;; + build) + new_version="$current_version" + local new_build=$((current_build + 1)) + ;; + set) + # Validate the provided version + parse_version "$new_version" > /dev/null + local new_build=$((current_build + 1)) + ;; + "") + echo "❌ No action specified" + usage + exit 1 + ;; + *) + echo "❌ Unknown action: $action" + usage + exit 1 + ;; + esac + + # Confirm the change + echo "📝 Proposed changes:" + echo " Version: $current_version -> $new_version" + echo " Build: $current_build -> $new_build" + echo "" + read -p "Continue? (y/N): " -n 1 -r + echo + + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "❌ Aborted" + exit 1 + fi + + # Apply the changes + update_project_version "$new_version" "$new_build" + + echo "" + echo "✅ Version updated successfully!" + echo "" + echo "📋 Next steps:" + echo " 1. Review the changes: git diff Project.swift" + echo " 2. Commit the version bump: git add Project.swift && git commit -m \"Bump version to $new_version\"" + echo " 3. Create the release: ./scripts/release-auto.sh stable" + if [[ "$new_version" =~ -[a-z]+\.[0-9]+$ ]]; then + echo " 3. Create the pre-release: ./scripts/release-auto.sh ${prerelease_type} ${new_version##*.}" + fi + echo "" +} + +# Validate Project.swift exists +if [[ ! -f "$PROJECT_ROOT/Project.swift" ]]; then + echo "❌ Project.swift not found in $PROJECT_ROOT" + exit 1 +fi + +# Run main function +main "$@" \ No newline at end of file
  • a(6pV?qSiPvfBrCwfKhMoM&#=*M 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

    c8>JU-=)9N8x;b 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®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