Showing preview only (6,063K chars total). Download the full file or copy to clipboard to get everything.
Repository: jaywcjlove/swiftui-example
Branch: main
Commit: 28f92b904791
Files: 2852
Total size: 4.8 MB
Directory structure:
gitextract_gzhkv01i/
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ └── ci.yml
├── .gitignore
├── .idoc/
│ └── .filesStat.json
├── LICENSE
├── README.md
├── example/
│ ├── accessibility/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── star.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo6/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── advanced-state/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── alerts-and-menus/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Credits.rtf
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── SettingsView.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── animation/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── appendix-a/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── niagara-falls.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo14/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo15/
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── cheat-sheet.md
│ ├── composing-views/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── kenny.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo7/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── containers/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── PostNoSelectionPlaceholder.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── cross-platform/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo WatchKit App/
│ │ │ │ │ └── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Demo WatchKit Extension/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── Complication.complicationset/
│ │ │ │ │ │ │ ├── Circular.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ │ ├── Extra Large.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Graphic Bezel.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Graphic Circular.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Graphic Corner.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Graphic Extra Large.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Graphic Large Rectangular.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ ├── Modular.imageset/
│ │ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ │ └── Utilitarian.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ComplicationController.swift
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── NotificationController.swift
│ │ │ │ │ ├── NotificationView.swift
│ │ │ │ │ ├── Preview Content/
│ │ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── PushNotificationPayload.apns
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── Demo WatchKit App (Complication).xcscheme
│ │ │ │ ├── Demo WatchKit App (Notification).xcscheme
│ │ │ │ └── Demo WatchKit App.xcscheme
│ │ │ └── README.md
│ │ └── demo4/
│ │ ├── Demo/
│ │ │ ├── Demo WatchKit App/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Info.plist
│ │ │ ├── Demo WatchKit Extension/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── Complication.complicationset/
│ │ │ │ │ │ ├── Circular.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ ├── Extra Large.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Graphic Bezel.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Graphic Circular.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Graphic Corner.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Graphic Extra Large.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Graphic Large Rectangular.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Modular.imageset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Utilitarian.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ComplicationController.swift
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ ├── NotificationController.swift
│ │ │ │ ├── NotificationView.swift
│ │ │ │ ├── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── PushNotificationPayload.apns
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── data/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── TextFile.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Main.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── Model.xcdatamodeld/
│ │ │ │ │ │ └── Model.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.xcdatamodeld/
│ │ │ │ │ │ ├── .xccurrentversion
│ │ │ │ │ │ └── Shared.xcdatamodel/
│ │ │ │ │ │ └── contents
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Persistence.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── DemoApp.swift
│ │ │ │ └── TextFile.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── drawing/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo4/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── forms/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo6/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── images-shapes-media/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── dog.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ └── macOS/
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo14/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── rome.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── logo.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── singapore.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── introduction/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ └── Demo.xcscheme
│ │ │ └── README.md
│ │ └── demo2/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── lists/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── paul-hudson.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── presenting-views/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo6/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── quick-start/
│ │ ├── answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md
│ │ ├── dedication.md
│ │ ├── dont-panic.md
│ │ ├── frequently-asked-questions-about-swiftui.md
│ │ ├── how-to-follow-this-quick-start-guide.md
│ │ ├── migrating-from-uikit-to-swiftui.md
│ │ ├── swiftui-vs-interface-builder-and-storyboards.md
│ │ ├── what-is-swiftui.md
│ │ └── whats-in-the-basic-template.md
│ ├── responding-to-events/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ ├── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ └── Demo.xcscheme
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── DemoApp.swift
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── Demo2/
│ │ │ ├── Demo2/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo2App.swift
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo2.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── stacks-grids-scrollviews/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo14/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo15/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── singapore.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ └── macOS/
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── niagara-falls.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.entitlements
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── taps-and-gestures/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── ireland.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── singapore.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── tooling/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── MySamplePackage/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .swiftpm/
│ │ │ │ │ └── xcode/
│ │ │ │ │ └── package.xcworkspace/
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Package.swift
│ │ │ │ ├── README.md
│ │ │ │ ├── Sources/
│ │ │ │ │ └── MySamplePackage/
│ │ │ │ │ └── MySamplePackage.swift
│ │ │ │ └── Tests/
│ │ │ │ └── MySamplePackageTests/
│ │ │ │ └── MySamplePackageTests.swift
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── DemoApp.swift
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── transforming-views/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo14/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo15/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── laser-show.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo16/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── dog.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo17/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo18/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── cat.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo19/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo20/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo21/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo22/
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ ├── Demo.entitlements
│ │ │ │ ├── DemoApp.swift
│ │ │ │ ├── Info.plist
│ │ │ │ └── Preview Content/
│ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ └── Contents.json
│ │ │ └── Demo.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ └── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.md
│ ├── user-interface-controls/
│ │ ├── demo1/
│ │ │ └── README.md
│ │ ├── demo10/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo11/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo12/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo13/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo14/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo15/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo16/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo17/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo18/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo19/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── sunset.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo20/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo21/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo22/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo23/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo24/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo25/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo26/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ └── macOS/
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo27/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ └── macOS/
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo28/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ └── macOS/
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── Contents.json
│ │ │ │ │ │ └── logo.imageset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo4/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo5/
│ │ │ └── README.md
│ │ ├── demo6/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo7/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ ├── demo8/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo.xcodeproj/
│ │ │ │ │ ├── project.pbxproj
│ │ │ │ │ └── project.xcworkspace/
│ │ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ │ └── xcshareddata/
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ └── DemoApp.swift
│ │ │ │ ├── iOS/
│ │ │ │ │ └── Info.plist
│ │ │ │ └── macOS/
│ │ │ │ ├── Info.plist
│ │ │ │ └── macOS.entitlements
│ │ │ └── README.md
│ │ └── demo9/
│ │ ├── Demo/
│ │ │ ├── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ ├── Shared/
│ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── ContentView.swift
│ │ │ │ └── DemoApp.swift
│ │ │ ├── iOS/
│ │ │ │ └── Info.plist
│ │ │ └── macOS/
│ │ │ ├── Info.plist
│ │ │ └── macOS.entitlements
│ │ └── README.md
│ ├── view-layout/
│ │ ├── demo1/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo2/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ ├── ContentView.swift
│ │ │ │ │ ├── Demo.entitlements
│ │ │ │ │ ├── DemoApp.swift
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── Preview Content/
│ │ │ │ │ └── Preview Assets.xcassets/
│ │ │ │ │ └── Contents.json
│ │ │ │ └── Demo.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── README.md
│ │ ├── demo3/
│ │ │ ├── Demo/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Assets.xcassets/
│ │ │ │ │ │ ├── AccentColor.colorset/
│ │ │ │ │ │ │ └── Contents.json
│ │ │ │ │ │ ├── AppIcon.appicons
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
*.md linguist-detectable=true
================================================
FILE: .github/FUNDING.yml
================================================
github: [jaywcjlove]
ko_fi: jaywcjlove
buy_me_a_coffee: jaywcjlove
custom: ["https://www.paypal.me/kennyiseeyou", "https://jaywcjlove.github.io/#/sponsor"]
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm install
- run: npm run build
- name: Generate Contributors Images
uses: jaywcjlove/github-action-contributors@main
with:
filter-author: (renovate\[bot\]|renovate-bot|dependabot\[bot\])
output: dist/CONTRIBUTORS.svg
avatarSize: 42
- name: Create Tag
id: create_tag
uses: jaywcjlove/create-tag-action@main
with:
package-path: ./package.json
- name: Deploy Website
uses: peaceiris/actions-gh-pages@v4
with:
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: ${{ github.event.head_commit.message }}
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
- name: Generate Changelog
id: changelog
uses: jaywcjlove/changelog-generator@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
filter-author: (jaywcjlove|小弟调调™|dependabot\[bot\]|Renovate Bot)
filter: (^[\s]+?[R|r]elease)|(^[R|r]elease)
- name: Create Release
uses: ncipollo/release-action@v1
if: steps.create_tag.outputs.successful
with:
allowUpdates: true
token: ${{ secrets.GITHUB_TOKEN }}
name: ${{ steps.create_tag.outputs.version }}
tag: ${{ steps.create_tag.outputs.version }}
body: |
[](https://jaywcjlove.github.io/#/sponsor)
Documentation ${{ steps.changelog.outputs.tag }}: https://raw.githack.com/jaywcjlove/swiftui-example/${{ steps.changelog.outputs.gh-pages-short-hash }}/index.html
Comparing Changes: ${{ steps.changelog.outputs.compareurl }}
${{ steps.changelog.outputs.changelog }}
================================================
FILE: .gitignore
================================================
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
.DS_Store
package-lock.json
node_modules
dist
## User settings
xcuserdata/
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
## Obj-C/Swift specific
*.hmap
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
## Playgrounds
timeline.xctimeline
playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# *.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm
.build/
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build/
# Accio dependency management
Dependencies/
.accio/
# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
================================================
FILE: .idoc/.filesStat.json
================================================
{
"example/quick-start/answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md": {
"atime": "2021-11-04T08:03:23.058Z",
"mtime": "2021-11-04T08:03:20.622Z",
"ctime": "2021-11-04T08:03:20.622Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/quick-start/dedication.md": {
"atime": "2021-11-04T08:04:51.867Z",
"mtime": "2021-11-04T08:04:50.597Z",
"ctime": "2021-11-04T08:04:50.597Z",
"birthtime": "2021-11-04T07:51:51.534Z"
},
"example/quick-start/dont-panic.md": {
"atime": "2021-11-04T07:55:01.016Z",
"mtime": "2021-11-04T07:54:59.662Z",
"ctime": "2021-11-04T07:54:59.663Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/quick-start/frequently-asked-questions-about-swiftui.md": {
"atime": "2021-11-04T08:02:41.101Z",
"mtime": "2021-11-04T08:02:40.635Z",
"ctime": "2021-11-04T08:02:40.635Z",
"birthtime": "2021-11-04T07:51:51.534Z"
},
"example/quick-start/how-to-follow-this-quick-start-guide.md": {
"atime": "2021-11-04T08:03:47.010Z",
"mtime": "2021-11-04T08:03:46.423Z",
"ctime": "2021-11-04T08:03:46.424Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/quick-start/migrating-from-uikit-to-swiftui.md": {
"atime": "2021-11-04T08:04:05.720Z",
"mtime": "2021-11-04T08:04:05.123Z",
"ctime": "2021-11-04T08:04:05.124Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/quick-start/swiftui-vs-interface-builder-and-storyboards.md": {
"atime": "2021-11-27T12:20:56.962Z",
"mtime": "2021-11-27T12:20:55.705Z",
"ctime": "2021-11-27T12:20:55.705Z",
"birthtime": "2021-11-27T12:20:55.705Z"
},
"example/quick-start/what-is-swiftui.md": {
"atime": "2021-11-04T08:05:45.887Z",
"mtime": "2021-11-04T08:05:44.512Z",
"ctime": "2021-11-04T08:05:44.512Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/quick-start/whats-in-the-basic-template.md": {
"atime": "2021-11-04T08:04:33.539Z",
"mtime": "2021-11-04T08:04:32.947Z",
"ctime": "2021-11-04T08:04:32.948Z",
"birthtime": "2021-11-04T07:51:51.533Z"
},
"example/alerts-and-menus/demo1/README.md": {
"atime": "2021-10-17T18:21:01.895Z",
"mtime": "2021-10-17T18:21:01.390Z",
"ctime": "2021-10-17T18:21:01.390Z",
"birthtime": "2021-03-24T02:58:47.691Z"
},
"example/appendix-a/demo1/README.md": {
"atime": "2021-10-17T18:11:09.348Z",
"mtime": "2021-10-17T18:11:08.937Z",
"ctime": "2021-10-17T18:11:08.937Z",
"birthtime": "2021-03-23T07:54:09.222Z"
},
"example/appendix-a/demo15/README.md": {
"atime": "2021-10-17T18:11:40.808Z",
"mtime": "2021-10-17T18:11:40.377Z",
"ctime": "2021-10-17T18:11:40.377Z",
"birthtime": "2021-03-23T07:56:10.062Z"
},
"example/appendix-a/demo2/README.md": {
"atime": "2021-10-17T18:11:44.546Z",
"mtime": "2021-10-17T18:11:44.054Z",
"ctime": "2021-10-17T18:11:44.054Z",
"birthtime": "2021-03-23T07:54:16.339Z"
},
"example/appendix-a/demo3/README.md": {
"atime": "2021-10-17T18:11:48.906Z",
"mtime": "2021-10-17T18:11:48.411Z",
"ctime": "2021-10-17T18:11:48.411Z",
"birthtime": "2021-03-23T07:54:19.076Z"
},
"example/appendix-a/demo5/README.md": {
"atime": "2021-10-17T18:12:04.095Z",
"mtime": "2021-10-17T18:12:03.654Z",
"ctime": "2021-10-17T18:12:03.654Z",
"birthtime": "2021-03-23T07:54:48.580Z"
},
"example/appendix-a/demo6/README.md": {
"atime": "2021-10-17T18:11:56.081Z",
"mtime": "2021-10-17T18:11:55.656Z",
"ctime": "2021-10-17T18:11:55.656Z",
"birthtime": "2021-03-23T07:54:56.752Z"
},
"example/appendix-a/demo8/README.md": {
"atime": "2021-10-17T18:12:11.709Z",
"mtime": "2021-10-17T18:12:11.306Z",
"ctime": "2021-10-17T18:12:11.306Z",
"birthtime": "2021-03-23T07:55:12.028Z"
},
"example/accessibility/demo1/README.md": {
"atime": "2021-10-17T18:08:23.633Z",
"mtime": "2021-10-17T18:08:23.229Z",
"ctime": "2021-10-17T18:08:23.229Z",
"birthtime": "2021-03-23T03:38:40.607Z"
},
"example/cross-platform/demo1/README.md": {
"atime": "2021-10-20T09:03:57.602Z",
"mtime": "2021-10-20T09:03:56.351Z",
"ctime": "2021-10-20T09:03:56.351Z",
"birthtime": "2021-03-20T18:25:54.576Z"
},
"example/data/demo1/README.md": {
"atime": "2021-10-17T18:14:29.941Z",
"mtime": "2021-10-17T18:14:29.268Z",
"ctime": "2021-10-17T18:14:29.268Z",
"birthtime": "2021-03-20T18:49:07.081Z"
},
"example/forms/demo1/README.md": {
"atime": "2021-10-17T18:14:55.235Z",
"mtime": "2021-10-17T18:14:54.782Z",
"ctime": "2021-10-17T18:14:54.782Z",
"birthtime": "2021-03-19T19:09:09.288Z"
},
"example/containers/demo1/README.md": {
"atime": "2021-10-17T18:13:50.624Z",
"mtime": "2021-10-17T18:13:50.171Z",
"ctime": "2021-10-17T18:13:50.171Z",
"birthtime": "2021-03-19T19:34:28.284Z"
},
"example/user-interface-controls/demo1/README.md": {
"atime": "2021-10-17T18:17:41.719Z",
"mtime": "2021-10-17T18:17:40.703Z",
"ctime": "2021-10-17T18:17:40.703Z",
"birthtime": "2021-03-18T17:00:24.052Z"
},
"example/user-interface-controls/demo5/README.md": {
"atime": "2021-10-17T18:18:42.062Z",
"mtime": "2021-10-17T18:18:41.666Z",
"ctime": "2021-10-17T18:18:41.666Z",
"birthtime": "2021-03-19T01:41:50.151Z"
},
"example/lists/demo1/README.md": {
"atime": "2021-10-17T18:07:19.635Z",
"mtime": "2021-10-17T18:07:19.213Z",
"ctime": "2021-10-17T18:07:19.213Z",
"birthtime": "2021-03-19T08:22:46.094Z"
},
"example/images-shapes-media/demo9/README.md": {
"atime": "2021-10-17T18:06:20.866Z",
"mtime": "2021-10-17T18:06:20.448Z",
"ctime": "2021-10-17T18:06:20.448Z",
"birthtime": "2021-03-17T05:54:49.442Z"
},
"example/alerts-and-menus/demo10/README.md": {
"atime": "2021-10-17T18:09:22.793Z",
"mtime": "2021-10-17T18:09:22.106Z",
"ctime": "2021-10-17T18:09:22.106Z",
"birthtime": "2021-03-25T17:38:57.218Z"
},
"example/alerts-and-menus/demo2/README.md": {
"atime": "2021-10-17T18:09:42.853Z",
"mtime": "2021-10-17T18:09:42.435Z",
"ctime": "2021-10-17T18:09:42.435Z",
"birthtime": "2021-03-24T02:58:56.798Z"
},
"example/alerts-and-menus/demo3/README.md": {
"atime": "2021-10-17T18:09:53.441Z",
"mtime": "2021-10-17T18:09:53.033Z",
"ctime": "2021-10-17T18:09:53.033Z",
"birthtime": "2021-03-24T02:59:07.309Z"
},
"example/alerts-and-menus/demo4/README.md": {
"atime": "2021-10-17T18:09:58.646Z",
"mtime": "2021-10-17T18:09:58.234Z",
"ctime": "2021-10-17T18:09:58.234Z",
"birthtime": "2021-03-24T03:04:35.511Z"
},
"example/alerts-and-menus/demo7/README.md": {
"atime": "2021-10-17T18:10:14.827Z",
"mtime": "2021-10-17T18:10:14.362Z",
"ctime": "2021-10-17T18:10:14.362Z",
"birthtime": "2021-03-24T03:05:11.481Z"
},
"example/alerts-and-menus/demo6/README.md": {
"atime": "2021-10-17T18:21:12.884Z",
"mtime": "2021-10-17T18:21:12.477Z",
"ctime": "2021-10-17T18:21:12.477Z",
"birthtime": "2021-03-24T03:05:03.307Z"
},
"example/alerts-and-menus/demo5/README.md": {
"atime": "2021-10-17T18:10:03.317Z",
"mtime": "2021-10-17T18:10:02.906Z",
"ctime": "2021-10-17T18:10:02.906Z",
"birthtime": "2021-03-24T03:04:46.135Z"
},
"example/alerts-and-menus/demo11/README.md": {
"atime": "2021-10-17T18:09:47.731Z",
"mtime": "2021-10-17T18:09:47.318Z",
"ctime": "2021-10-17T18:09:47.318Z",
"birthtime": "2021-03-26T18:06:45.725Z"
},
"example/alerts-and-menus/demo9/README.md": {
"atime": "2021-10-17T18:10:10.678Z",
"mtime": "2021-10-17T18:10:10.275Z",
"ctime": "2021-10-17T18:10:10.275Z",
"birthtime": "2021-03-24T03:05:32.120Z"
},
"example/alerts-and-menus/demo8/README.md": {
"atime": "2021-10-17T18:10:06.350Z",
"mtime": "2021-10-17T18:10:05.881Z",
"ctime": "2021-10-17T18:10:05.881Z",
"birthtime": "2021-03-24T03:05:19.346Z"
},
"example/appendix-a/demo10/README.md": {
"atime": "2021-10-17T18:11:14.139Z",
"mtime": "2021-10-17T18:11:13.713Z",
"ctime": "2021-10-17T18:11:13.713Z",
"birthtime": "2021-03-23T07:55:32.569Z"
},
"example/appendix-a/demo14/README.md": {
"atime": "2021-10-17T18:11:36.712Z",
"mtime": "2021-10-17T18:11:36.239Z",
"ctime": "2021-10-17T18:11:36.239Z",
"birthtime": "2021-03-23T07:56:01.681Z"
},
"example/appendix-a/demo11/README.md": {
"atime": "2021-10-17T18:11:18.986Z",
"mtime": "2021-10-17T18:11:18.582Z",
"ctime": "2021-10-17T18:11:18.582Z",
"birthtime": "2021-03-23T07:55:41.530Z"
},
"example/appendix-a/demo4/README.md": {
"atime": "2021-10-17T18:11:52.244Z",
"mtime": "2021-10-17T18:11:51.834Z",
"ctime": "2021-10-17T18:11:51.834Z",
"birthtime": "2021-03-23T07:54:36.267Z"
},
"example/animation/demo10/README.md": {
"atime": "2021-10-17T18:10:23.776Z",
"mtime": "2021-10-17T18:10:23.370Z",
"ctime": "2021-10-17T18:10:23.370Z",
"birthtime": "2021-03-16T11:01:05.985Z"
},
"example/animation/demo1/README.md": {
"atime": "2021-10-17T18:10:18.298Z",
"mtime": "2021-10-17T18:10:17.894Z",
"ctime": "2021-10-17T18:10:17.894Z",
"birthtime": "2021-03-16T08:52:06.171Z"
},
"example/animation/demo11/README.md": {
"atime": "2021-10-17T18:10:28.416Z",
"mtime": "2021-10-17T18:10:28.016Z",
"ctime": "2021-10-17T18:10:28.016Z",
"birthtime": "2021-03-16T11:04:39.446Z"
},
"example/appendix-a/demo9/README.md": {
"atime": "2021-10-17T18:12:14.960Z",
"mtime": "2021-10-17T18:12:14.526Z",
"ctime": "2021-10-17T18:12:14.526Z",
"birthtime": "2021-03-23T07:55:20.981Z"
},
"example/animation/demo12/README.md": {
"atime": "2021-10-17T18:13:04.097Z",
"mtime": "2021-10-17T18:13:02.855Z",
"ctime": "2021-10-17T18:13:02.855Z",
"birthtime": "2021-03-16T11:13:19.197Z"
},
"example/animation/demo2/README.md": {
"atime": "2021-10-17T18:10:35.203Z",
"mtime": "2021-10-17T18:10:34.779Z",
"ctime": "2021-10-17T18:10:34.779Z",
"birthtime": "2021-03-16T09:40:08.147Z"
},
"example/appendix-a/demo13/README.md": {
"atime": "2021-10-17T18:11:30.254Z",
"mtime": "2021-10-17T18:11:29.796Z",
"ctime": "2021-10-17T18:11:29.796Z",
"birthtime": "2021-03-23T07:55:54.819Z"
},
"example/animation/demo3/README.md": {
"atime": "2021-10-17T18:10:38.458Z",
"mtime": "2021-10-17T18:10:37.424Z",
"ctime": "2021-10-17T18:10:37.424Z",
"birthtime": "2021-03-16T10:10:49.712Z"
},
"example/animation/demo13/README.md": {
"atime": "2021-10-17T18:10:31.657Z",
"mtime": "2021-10-17T18:10:31.251Z",
"ctime": "2021-10-17T18:10:31.251Z",
"birthtime": "2021-03-16T14:13:16.574Z"
},
"example/animation/demo5/README.md": {
"atime": "2021-10-17T18:10:52.942Z",
"mtime": "2021-10-17T18:10:52.514Z",
"ctime": "2021-10-17T18:10:52.514Z",
"birthtime": "2021-03-16T10:27:06.443Z"
},
"example/animation/demo7/README.md": {
"atime": "2021-10-17T18:10:59.036Z",
"mtime": "2021-10-17T18:10:58.586Z",
"ctime": "2021-10-17T18:10:58.586Z",
"birthtime": "2021-03-16T10:37:27.553Z"
},
"example/animation/demo6/README.md": {
"atime": "2021-10-17T18:10:55.758Z",
"mtime": "2021-10-17T18:10:55.355Z",
"ctime": "2021-10-17T18:10:55.355Z",
"birthtime": "2021-03-16T10:31:56.922Z"
},
"example/animation/demo8/README.md": {
"atime": "2021-10-17T18:11:01.923Z",
"mtime": "2021-10-17T18:11:01.434Z",
"ctime": "2021-10-17T18:11:01.434Z",
"birthtime": "2021-03-16T10:42:07.670Z"
},
"example/animation/demo9/README.md": {
"atime": "2021-10-17T18:11:05.094Z",
"mtime": "2021-10-17T18:11:04.609Z",
"ctime": "2021-10-17T18:11:04.609Z",
"birthtime": "2021-03-16T10:54:05.405Z"
},
"example/appendix-a/demo12/README.md": {
"atime": "2021-10-17T18:11:25.591Z",
"mtime": "2021-10-17T18:11:25.112Z",
"ctime": "2021-10-17T18:11:25.112Z",
"birthtime": "2021-03-23T07:55:47.708Z"
},
"example/advanced-state/demo2/README.md": {
"atime": "2021-10-17T18:08:46.127Z",
"mtime": "2021-10-17T18:08:45.634Z",
"ctime": "2021-10-17T18:08:45.634Z",
"birthtime": "2021-03-15T17:53:01.032Z"
},
"example/advanced-state/demo1/README.md": {
"atime": "2021-10-17T18:09:28.495Z",
"mtime": "2021-10-17T18:09:28.072Z",
"ctime": "2021-10-17T18:09:28.072Z",
"birthtime": "2021-03-15T17:34:00.024Z"
},
"example/appendix-a/demo7/README.md": {
"atime": "2021-10-17T18:12:00.253Z",
"mtime": "2021-10-17T18:11:59.815Z",
"ctime": "2021-10-17T18:11:59.815Z",
"birthtime": "2021-03-23T07:55:04.486Z"
},
"example/advanced-state/demo5/README.md": {
"atime": "2021-10-17T18:09:05.158Z",
"mtime": "2021-10-17T18:09:03.919Z",
"ctime": "2021-10-17T18:09:03.919Z",
"birthtime": "2021-03-15T18:46:27.561Z"
},
"example/advanced-state/demo7/README.md": {
"atime": "2021-10-17T18:09:16.555Z",
"mtime": "2021-10-17T18:09:15.673Z",
"ctime": "2021-10-17T18:09:15.673Z",
"birthtime": "2021-03-15T18:55:32.303Z"
},
"example/advanced-state/demo6/README.md": {
"atime": "2021-10-17T18:09:13.432Z",
"mtime": "2021-10-17T18:09:12.358Z",
"ctime": "2021-10-17T18:09:12.358Z",
"birthtime": "2021-03-15T18:52:20.686Z"
},
"example/animation/demo4/README.md": {
"atime": "2021-10-17T18:10:42.726Z",
"mtime": "2021-10-17T18:10:42.325Z",
"ctime": "2021-10-17T18:10:42.325Z",
"birthtime": "2021-03-16T10:17:26.307Z"
},
"example/composing-views/demo1/README.md": {
"atime": "2021-10-17T18:12:27.504Z",
"mtime": "2021-10-17T18:12:26.735Z",
"ctime": "2021-10-17T18:12:26.735Z",
"birthtime": "2021-03-24T07:26:24.475Z"
},
"example/advanced-state/demo9/README.md": {
"atime": "2021-10-17T18:09:35.593Z",
"mtime": "2021-10-17T18:09:35.187Z",
"ctime": "2021-10-17T18:09:35.187Z",
"birthtime": "2021-03-15T19:11:55.947Z"
},
"example/composing-views/demo2/README.md": {
"atime": "2021-10-17T18:12:39.073Z",
"mtime": "2021-10-17T18:12:38.669Z",
"ctime": "2021-10-17T18:12:38.669Z",
"birthtime": "2021-03-24T07:26:30.537Z"
},
"example/composing-views/demo4/README.md": {
"atime": "2021-10-17T18:13:39.482Z",
"mtime": "2021-10-17T18:13:39.058Z",
"ctime": "2021-10-17T18:13:39.058Z",
"birthtime": "2021-03-24T07:26:46.238Z"
},
"example/advanced-state/demo3/README.md": {
"atime": "2021-10-17T18:09:02.083Z",
"mtime": "2021-10-17T18:09:01.323Z",
"ctime": "2021-10-17T18:09:01.323Z",
"birthtime": "2021-03-15T18:19:43.407Z"
},
"example/advanced-state/demo4/README.md": {
"atime": "2021-10-17T18:09:09.933Z",
"mtime": "2021-10-17T18:09:08.604Z",
"ctime": "2021-10-17T18:09:08.604Z",
"birthtime": "2021-03-15T18:30:06.997Z"
},
"example/composing-views/demo6/README.md": {
"atime": "2021-10-17T18:13:44.669Z",
"mtime": "2021-10-17T18:13:44.264Z",
"ctime": "2021-10-17T18:13:44.264Z",
"birthtime": "2021-03-24T07:27:11.552Z"
},
"example/composing-views/demo3/README.md": {
"atime": "2021-10-17T18:13:34.333Z",
"mtime": "2021-10-17T18:13:33.921Z",
"ctime": "2021-10-17T18:13:33.921Z",
"birthtime": "2021-03-24T07:26:38.836Z"
},
"example/composing-views/demo7/README.md": {
"atime": "2021-10-17T18:13:48.327Z",
"mtime": "2021-10-17T18:13:47.450Z",
"ctime": "2021-10-17T18:13:47.450Z",
"birthtime": "2021-03-24T07:27:20.152Z"
},
"example/advanced-state/demo8/README.md": {
"atime": "2021-10-17T18:09:19.068Z",
"mtime": "2021-10-17T18:09:18.338Z",
"ctime": "2021-10-17T18:09:18.338Z",
"birthtime": "2021-03-15T19:05:07.484Z"
},
"example/composing-views/demo5/README.md": {
"atime": "2021-10-17T18:13:41.939Z",
"mtime": "2021-10-17T18:13:41.522Z",
"ctime": "2021-10-17T18:13:41.522Z",
"birthtime": "2021-03-24T07:26:57.697Z"
},
"example/accessibility/demo5/README.md": {
"atime": "2021-10-17T18:08:32.116Z",
"mtime": "2021-10-17T18:08:30.876Z",
"ctime": "2021-10-17T18:08:30.876Z",
"birthtime": "2021-03-23T03:38:54.921Z"
},
"example/accessibility/demo2/README.md": {
"atime": "2021-10-17T18:08:41.092Z",
"mtime": "2021-10-17T18:08:40.689Z",
"ctime": "2021-10-17T18:08:40.689Z",
"birthtime": "2021-03-23T03:38:47.051Z"
},
"example/accessibility/demo3/README.md": {
"atime": "2021-10-17T18:08:28.002Z",
"mtime": "2021-10-17T18:08:27.495Z",
"ctime": "2021-10-17T18:08:27.495Z",
"birthtime": "2021-03-23T03:38:49.550Z"
},
"example/accessibility/demo6/README.md": {
"atime": "2021-10-17T18:08:58.063Z",
"mtime": "2021-10-17T18:08:56.864Z",
"ctime": "2021-10-17T18:08:56.864Z",
"birthtime": "2021-03-23T03:38:57.311Z"
},
"example/cross-platform/demo2/README.md": {
"atime": "2021-10-20T10:58:49.065Z",
"mtime": "2021-10-20T10:58:48.659Z",
"ctime": "2021-10-20T10:58:48.659Z",
"birthtime": "2021-03-20T18:26:00.779Z"
},
"example/data/demo10/README.md": {
"atime": "2021-10-17T18:14:32.110Z",
"mtime": "2021-10-17T18:14:31.493Z",
"ctime": "2021-10-17T18:14:31.493Z",
"birthtime": "2021-03-20T18:50:13.254Z"
},
"example/data/demo11/README.md": {
"atime": "2021-10-17T18:14:34.441Z",
"mtime": "2021-10-17T18:14:33.756Z",
"ctime": "2021-10-17T18:14:33.756Z",
"birthtime": "2021-03-20T18:50:20.938Z"
},
"example/cross-platform/demo3/README.md": {
"atime": "2021-10-20T10:58:44.871Z",
"mtime": "2021-10-20T10:58:43.595Z",
"ctime": "2021-10-20T10:58:43.595Z",
"birthtime": "2021-03-20T18:26:03.527Z"
},
"example/cross-platform/demo4/README.md": {
"atime": "2021-10-20T11:53:57.081Z",
"mtime": "2021-10-20T11:53:55.432Z",
"ctime": "2021-10-20T11:53:55.432Z",
"birthtime": "2021-03-20T18:26:06.161Z"
},
"example/data/demo2/README.md": {
"atime": "2021-10-17T18:14:36.464Z",
"mtime": "2021-10-17T18:14:36.001Z",
"ctime": "2021-10-17T18:14:36.001Z",
"birthtime": "2021-03-20T18:49:12.708Z"
},
"example/accessibility/demo4/README.md": {
"atime": "2021-10-17T18:08:38.089Z",
"mtime": "2021-10-17T18:08:37.618Z",
"ctime": "2021-10-17T18:08:37.618Z",
"birthtime": "2021-03-23T03:38:52.048Z"
},
"example/data/demo3/README.md": {
"atime": "2021-10-17T18:14:38.948Z",
"mtime": "2021-10-17T18:14:38.132Z",
"ctime": "2021-10-17T18:14:38.132Z",
"birthtime": "2021-03-20T18:49:21.503Z"
},
"example/data/demo12/README.md": {
"atime": "2021-10-20T16:11:43.990Z",
"mtime": "2021-10-20T16:11:12.601Z",
"ctime": "2021-10-20T16:11:12.601Z",
"birthtime": "2021-10-20T16:01:08.839Z"
},
"example/data/demo6/README.md": {
"atime": "2021-10-17T18:14:45.136Z",
"mtime": "2021-10-17T18:14:44.772Z",
"ctime": "2021-10-17T18:14:44.772Z",
"birthtime": "2021-03-20T18:49:51.821Z"
},
"example/data/demo4/README.md": {
"atime": "2021-10-17T18:14:41.129Z",
"mtime": "2021-10-17T18:14:40.617Z",
"ctime": "2021-10-17T18:14:40.617Z",
"birthtime": "2021-03-20T18:49:36.027Z"
},
"example/data/demo7/README.md": {
"atime": "2021-10-17T18:14:47.645Z",
"mtime": "2021-10-17T18:14:47.018Z",
"ctime": "2021-10-17T18:14:47.018Z",
"birthtime": "2021-03-20T18:49:59.453Z"
},
"example/drawing/demo1/README.md": {
"atime": "2021-10-17T18:19:47.875Z",
"mtime": "2021-10-17T18:19:47.472Z",
"ctime": "2021-10-17T18:19:47.472Z",
"birthtime": "2021-03-16T08:31:03.904Z"
},
"example/data/demo8/README.md": {
"atime": "2021-10-17T18:14:50.426Z",
"mtime": "2021-10-17T18:14:49.594Z",
"ctime": "2021-10-17T18:14:49.594Z",
"birthtime": "2021-03-21T19:38:49.281Z"
},
"example/data/demo5/README.md": {
"atime": "2021-10-17T18:14:43.131Z",
"mtime": "2021-10-17T18:14:42.712Z",
"ctime": "2021-10-17T18:14:42.712Z",
"birthtime": "2021-03-20T18:49:43.900Z"
},
"example/drawing/demo2/README.md": {
"atime": "2021-10-17T18:19:52.352Z",
"mtime": "2021-10-17T18:19:51.491Z",
"ctime": "2021-10-17T18:19:51.491Z",
"birthtime": "2021-03-16T08:39:52.789Z"
},
"example/drawing/demo3/README.md": {
"atime": "2021-10-17T18:20:01.210Z",
"mtime": "2021-10-17T18:19:59.967Z",
"ctime": "2021-10-17T18:19:59.967Z",
"birthtime": "2021-03-16T08:43:45.105Z"
},
"example/drawing/demo4/README.md": {
"atime": "2021-10-17T18:19:56.217Z",
"mtime": "2021-10-17T18:19:55.159Z",
"ctime": "2021-10-17T18:19:55.159Z",
"birthtime": "2021-03-16T08:49:12.442Z"
},
"example/forms/demo3/README.md": {
"atime": "2021-10-17T18:15:00.630Z",
"mtime": "2021-10-17T18:15:00.007Z",
"ctime": "2021-10-17T18:15:00.007Z",
"birthtime": "2021-03-19T19:09:50.697Z"
},
"example/forms/demo2/README.md": {
"atime": "2021-10-17T18:15:18.884Z",
"mtime": "2021-10-17T18:15:18.431Z",
"ctime": "2021-10-17T18:15:18.431Z",
"birthtime": "2021-03-19T19:09:14.642Z"
},
"example/forms/demo4/README.md": {
"atime": "2021-10-17T18:15:02.785Z",
"mtime": "2021-10-17T18:15:02.223Z",
"ctime": "2021-10-17T18:15:02.223Z",
"birthtime": "2021-03-19T19:09:54.140Z"
},
"example/forms/demo5/README.md": {
"atime": "2021-10-17T18:15:06.160Z",
"mtime": "2021-10-17T18:15:04.954Z",
"ctime": "2021-10-17T18:15:04.954Z",
"birthtime": "2021-03-19T19:09:57.310Z"
},
"example/data/demo9/README.md": {
"atime": "2021-10-17T18:14:52.757Z",
"mtime": "2021-10-17T18:14:52.129Z",
"ctime": "2021-10-17T18:14:52.129Z",
"birthtime": "2021-03-20T18:50:06.759Z"
},
"example/introduction/demo1/README.md": {
"atime": "2021-11-03T01:07:58.638Z",
"mtime": "2021-11-03T01:07:56.874Z",
"ctime": "2021-11-03T01:07:56.874Z",
"birthtime": "2021-11-02T08:53:29.583Z"
},
"example/forms/demo6/README.md": {
"atime": "2021-10-17T18:15:15.865Z",
"mtime": "2021-10-17T18:15:15.436Z",
"ctime": "2021-10-17T18:15:15.436Z",
"birthtime": "2021-03-19T19:10:00.869Z"
},
"example/images-shapes-media/demo1/README.md": {
"atime": "2021-10-20T03:06:11.664Z",
"mtime": "2021-10-20T03:06:09.738Z",
"ctime": "2021-10-20T03:06:09.738Z",
"birthtime": "2021-03-16T16:17:37.777Z"
},
"example/images-shapes-media/demo10/README.md": {
"atime": "2021-10-17T18:06:26.827Z",
"mtime": "2021-10-17T18:06:26.216Z",
"ctime": "2021-10-17T18:06:26.216Z",
"birthtime": "2021-03-17T06:08:37.571Z"
},
"example/images-shapes-media/demo11/README.md": {
"atime": "2021-10-17T18:06:52.542Z",
"mtime": "2021-10-17T18:06:52.140Z",
"ctime": "2021-10-17T18:06:52.140Z",
"birthtime": "2021-03-17T06:17:39.317Z"
},
"example/images-shapes-media/demo12/README.md": {
"atime": "2021-10-17T18:07:00.521Z",
"mtime": "2021-10-17T18:07:00.115Z",
"ctime": "2021-10-17T18:07:00.115Z",
"birthtime": "2021-03-17T07:09:24.483Z"
},
"example/images-shapes-media/demo3/README.md": {
"atime": "2021-10-17T18:06:05.454Z",
"mtime": "2021-10-17T18:06:05.049Z",
"ctime": "2021-10-17T18:06:05.049Z",
"birthtime": "2021-03-16T16:49:30.076Z"
},
"example/images-shapes-media/demo5/README.md": {
"atime": "2021-10-17T18:05:52.971Z",
"mtime": "2021-10-17T18:05:52.558Z",
"ctime": "2021-10-17T18:05:52.558Z",
"birthtime": "2021-03-16T17:03:00.279Z"
},
"example/images-shapes-media/demo14/README.md": {
"atime": "2021-10-20T12:30:57.767Z",
"mtime": "2021-10-20T12:30:53.191Z",
"ctime": "2021-10-20T12:30:53.191Z",
"birthtime": "2021-10-20T08:49:55.016Z"
},
"example/images-shapes-media/demo13/README.md": {
"atime": "2021-10-20T08:47:27.931Z",
"mtime": "2021-10-20T08:47:25.688Z",
"ctime": "2021-10-20T08:47:25.688Z",
"birthtime": "2021-10-20T03:07:30.921Z"
},
"example/images-shapes-media/demo4/README.md": {
"atime": "2021-10-17T18:05:58.804Z",
"mtime": "2021-10-17T18:05:58.400Z",
"ctime": "2021-10-17T18:05:58.400Z",
"birthtime": "2021-03-16T16:55:41.005Z"
},
"example/images-shapes-media/demo8/README.md": {
"atime": "2021-10-17T18:05:43.904Z",
"mtime": "2021-10-17T18:05:04.654Z",
"ctime": "2021-10-17T18:05:04.654Z",
"birthtime": "2021-03-17T04:43:26.574Z"
},
"example/introduction/demo2/README.md": {
"atime": "2021-11-27T12:20:57.605Z",
"mtime": "2021-11-27T12:20:55.705Z",
"ctime": "2021-11-27T12:20:55.705Z",
"birthtime": "2021-11-27T12:20:55.705Z"
},
"example/images-shapes-media/demo2/README.md": {
"atime": "2021-10-17T18:06:09.956Z",
"mtime": "2021-10-17T18:06:09.528Z",
"ctime": "2021-10-17T18:06:09.528Z",
"birthtime": "2021-03-16T16:36:35.365Z"
},
"example/presenting-views/demo1/README.md": {
"atime": "2021-10-17T18:22:18.948Z",
"mtime": "2021-10-17T18:22:18.460Z",
"ctime": "2021-10-17T18:22:18.460Z",
"birthtime": "2021-03-16T01:28:47.232Z"
},
"example/presenting-views/demo2/README.md": {
"atime": "2021-10-17T18:22:27.108Z",
"mtime": "2021-10-17T18:22:26.667Z",
"ctime": "2021-10-17T18:22:26.667Z",
"birthtime": "2021-03-16T01:39:07.934Z"
},
"example/images-shapes-media/demo7/README.md": {
"atime": "2021-10-17T18:05:41.377Z",
"mtime": "2021-10-17T18:05:40.187Z",
"ctime": "2021-10-17T18:05:40.187Z",
"birthtime": "2021-03-17T04:20:29.224Z"
},
"example/presenting-views/demo5/README.md": {
"atime": "2021-10-17T18:24:42.254Z",
"mtime": "2021-10-17T18:24:41.823Z",
"ctime": "2021-10-17T18:24:41.823Z",
"birthtime": "2021-03-16T03:19:27.977Z"
},
"example/images-shapes-media/demo6/README.md": {
"atime": "2021-10-17T18:05:48.352Z",
"mtime": "2021-10-17T18:05:47.316Z",
"ctime": "2021-10-17T18:05:47.316Z",
"birthtime": "2021-03-17T04:07:40.398Z"
},
"example/presenting-views/demo4/README.md": {
"atime": "2021-10-17T18:24:31.380Z",
"mtime": "2021-10-17T18:24:15.000Z",
"ctime": "2021-10-17T18:24:15.000Z",
"birthtime": "2021-03-16T01:56:52.645Z"
},
"example/presenting-views/demo6/README.md": {
"atime": "2021-10-17T18:25:00.499Z",
"mtime": "2021-10-17T18:25:00.063Z",
"ctime": "2021-10-17T18:25:00.063Z",
"birthtime": "2021-03-16T03:26:53.266Z"
},
"example/responding-to-events/demo1/README.md": {
"atime": "2021-10-17T18:15:40.958Z",
"mtime": "2021-10-17T18:15:40.542Z",
"ctime": "2021-10-17T18:15:40.542Z",
"birthtime": "2021-03-19T07:24:42.470Z"
},
"example/responding-to-events/demo3/README.md": {
"atime": "2021-10-17T18:15:45.976Z",
"mtime": "2021-10-17T18:15:45.436Z",
"ctime": "2021-10-17T18:15:45.436Z",
"birthtime": "2021-03-19T07:34:56.077Z"
},
"example/responding-to-events/demo4/README.md": {
"atime": "2021-10-17T18:15:55.477Z",
"mtime": "2021-10-17T18:15:55.029Z",
"ctime": "2021-10-17T18:15:55.029Z",
"birthtime": "2021-03-19T07:43:24.209Z"
},
"example/responding-to-events/demo5/README.md": {
"atime": "2021-10-17T18:16:00.051Z",
"mtime": "2021-10-17T18:15:59.202Z",
"ctime": "2021-10-17T18:15:59.202Z",
"birthtime": "2021-03-19T07:51:51.822Z"
},
"example/responding-to-events/demo7/README.md": {
"atime": "2021-10-17T18:16:05.183Z",
"mtime": "2021-10-17T18:16:04.472Z",
"ctime": "2021-10-17T18:16:04.472Z",
"birthtime": "2021-03-19T08:13:54.805Z"
},
"example/responding-to-events/demo8/README.md": {
"atime": "2021-10-20T15:16:13.691Z",
"mtime": "2021-10-20T15:16:10.580Z",
"ctime": "2021-10-20T15:16:10.580Z",
"birthtime": "2021-10-20T15:00:59.271Z"
},
"example/responding-to-events/demo6/README.md": {
"atime": "2021-10-17T18:16:02.516Z",
"mtime": "2021-10-17T18:16:01.823Z",
"ctime": "2021-10-17T18:16:01.823Z",
"birthtime": "2021-03-19T08:00:37.944Z"
},
"example/stacks-grids-scrollviews/demo10/README.md": {
"atime": "2021-10-17T18:16:09.719Z",
"mtime": "2021-10-17T18:16:09.273Z",
"ctime": "2021-10-17T18:16:09.273Z",
"birthtime": "2021-03-18T06:52:59.901Z"
},
"example/stacks-grids-scrollviews/demo11/README.md": {
"atime": "2021-10-17T18:16:14.058Z",
"mtime": "2021-10-17T18:16:13.657Z",
"ctime": "2021-10-17T18:16:13.657Z",
"birthtime": "2021-03-18T07:02:13.257Z"
},
"example/stacks-grids-scrollviews/demo12/README.md": {
"atime": "2021-10-17T18:16:16.514Z",
"mtime": "2021-10-17T18:16:15.891Z",
"ctime": "2021-10-17T18:16:15.891Z",
"birthtime": "2021-03-18T07:08:43.266Z"
},
"example/presenting-views/demo3/README.md": {
"atime": "2021-10-17T18:22:34.494Z",
"mtime": "2021-10-17T18:22:34.084Z",
"ctime": "2021-10-17T18:22:34.084Z",
"birthtime": "2021-03-16T01:49:07.614Z"
},
"example/stacks-grids-scrollviews/demo13/README.md": {
"atime": "2021-10-17T18:16:19.128Z",
"mtime": "2021-10-17T18:16:18.691Z",
"ctime": "2021-10-17T18:16:18.691Z",
"birthtime": "2021-03-18T07:22:58.558Z"
},
"example/stacks-grids-scrollviews/demo14/README.md": {
"atime": "2021-10-20T13:32:54.323Z",
"mtime": "2021-10-20T13:32:52.412Z",
"ctime": "2021-10-20T13:32:52.412Z",
"birthtime": "2021-03-29T01:02:00.702Z"
},
"example/stacks-grids-scrollviews/demo2/README.md": {
"atime": "2021-10-17T18:16:24.906Z",
"mtime": "2021-10-17T18:16:24.271Z",
"ctime": "2021-10-17T18:16:24.271Z",
"birthtime": "2021-03-17T08:33:06.142Z"
},
"example/stacks-grids-scrollviews/demo3/README.md": {
"atime": "2021-10-17T18:16:27.323Z",
"mtime": "2021-10-17T18:16:26.542Z",
"ctime": "2021-10-17T18:16:26.542Z",
"birthtime": "2021-03-17T08:39:15.696Z"
},
"example/stacks-grids-scrollviews/demo4/README.md": {
"atime": "2021-10-17T18:16:29.461Z",
"mtime": "2021-10-17T18:16:28.833Z",
"ctime": "2021-10-17T18:16:28.833Z",
"birthtime": "2021-03-17T08:45:17.767Z"
},
"example/responding-to-events/demo2/README.md": {
"atime": "2021-10-17T18:15:43.461Z",
"mtime": "2021-10-17T18:15:43.071Z",
"ctime": "2021-10-17T18:15:43.071Z",
"birthtime": "2021-03-19T07:30:41.457Z"
},
"example/stacks-grids-scrollviews/demo5/README.md": {
"atime": "2021-10-17T18:26:11.490Z",
"mtime": "2021-10-17T18:26:11.068Z",
"ctime": "2021-10-17T18:26:11.068Z",
"birthtime": "2021-03-17T08:48:45.612Z"
},
"example/stacks-grids-scrollviews/demo6/README.md": {
"atime": "2021-10-17T18:16:31.516Z",
"mtime": "2021-10-17T18:16:30.895Z",
"ctime": "2021-10-17T18:16:30.895Z",
"birthtime": "2021-03-17T08:58:09.782Z"
},
"example/stacks-grids-scrollviews/demo7/README.md": {
"atime": "2021-10-17T18:16:34.066Z",
"mtime": "2021-10-17T18:16:33.404Z",
"ctime": "2021-10-17T18:16:33.404Z",
"birthtime": "2021-03-18T05:53:04.755Z"
},
"example/taps-and-gestures/demo2/README.md": {
"atime": "2021-10-17T18:16:53.416Z",
"mtime": "2021-10-17T18:16:52.614Z",
"ctime": "2021-10-17T18:16:52.614Z",
"birthtime": "2021-03-24T05:10:59.502Z"
},
"example/stacks-grids-scrollviews/demo9/README.md": {
"atime": "2021-10-17T18:16:48.188Z",
"mtime": "2021-10-17T18:16:47.792Z",
"ctime": "2021-10-17T18:16:47.792Z",
"birthtime": "2021-03-18T06:33:58.849Z"
},
"example/taps-and-gestures/demo1/README.md": {
"atime": "2021-10-17T18:16:50.902Z",
"mtime": "2021-10-17T18:16:50.236Z",
"ctime": "2021-10-17T18:16:50.236Z",
"birthtime": "2021-03-24T05:10:52.985Z"
},
"example/stacks-grids-scrollviews/demo15/README.md": {
"atime": "2021-10-20T13:33:20.444Z",
"mtime": "2021-10-20T13:33:18.407Z",
"ctime": "2021-10-20T13:33:18.407Z",
"birthtime": "2021-10-20T13:20:35.457Z"
},
"example/stacks-grids-scrollviews/demo8/README.md": {
"atime": "2021-10-17T18:16:38.364Z",
"mtime": "2021-10-17T18:16:37.962Z",
"ctime": "2021-10-17T18:16:37.962Z",
"birthtime": "2021-03-18T06:17:58.906Z"
},
"example/taps-and-gestures/demo3/README.md": {
"atime": "2021-10-17T18:16:57.087Z",
"mtime": "2021-10-17T18:16:56.642Z",
"ctime": "2021-10-17T18:16:56.642Z",
"birthtime": "2021-03-24T05:11:10.286Z"
},
"example/taps-and-gestures/demo4/README.md": {
"atime": "2021-10-17T18:16:59.604Z",
"mtime": "2021-10-17T18:16:59.032Z",
"ctime": "2021-10-17T18:16:59.032Z",
"birthtime": "2021-03-24T05:13:26.229Z"
},
"example/taps-and-gestures/demo6/README.md": {
"atime": "2021-10-17T18:17:07.246Z",
"mtime": "2021-10-17T18:17:06.847Z",
"ctime": "2021-10-17T18:17:06.847Z",
"birthtime": "2021-03-24T05:13:47.639Z"
},
"example/taps-and-gestures/demo7/README.md": {
"atime": "2021-10-17T18:17:33.661Z",
"mtime": "2021-10-17T18:17:33.008Z",
"ctime": "2021-10-17T18:17:33.008Z",
"birthtime": "2021-03-24T05:13:56.665Z"
},
"example/taps-and-gestures/demo5/README.md": {
"atime": "2021-10-17T18:17:03.226Z",
"mtime": "2021-10-17T18:17:02.772Z",
"ctime": "2021-10-17T18:17:02.772Z",
"birthtime": "2021-03-24T05:13:33.377Z"
},
"example/taps-and-gestures/demo8/README.md": {
"atime": "2021-10-17T18:17:11.711Z",
"mtime": "2021-10-17T18:17:11.228Z",
"ctime": "2021-10-17T18:17:11.228Z",
"birthtime": "2021-03-24T05:14:08.876Z"
},
"example/taps-and-gestures/demo9/README.md": {
"atime": "2021-10-17T18:17:14.964Z",
"mtime": "2021-10-17T18:17:14.562Z",
"ctime": "2021-10-17T18:17:14.562Z",
"birthtime": "2021-03-24T05:14:17.470Z"
},
"example/responding-to-events/demo9/README.md": {
"atime": "2021-10-20T15:55:55.803Z",
"mtime": "2021-10-20T15:55:54.565Z",
"ctime": "2021-10-20T15:55:54.565Z",
"birthtime": "2021-10-20T15:16:54.749Z"
},
"example/tooling/demo6/README.md": {
"atime": "2021-11-05T06:40:20.442Z",
"mtime": "2021-11-05T06:40:18.535Z",
"ctime": "2021-11-05T06:40:18.535Z",
"birthtime": "2021-04-07T09:16:43.975Z"
},
"example/tooling/demo1/README.md": {
"atime": "2021-10-17T18:17:18.334Z",
"mtime": "2021-10-17T18:17:17.564Z",
"ctime": "2021-10-17T18:17:17.564Z",
"birthtime": "2021-03-24T08:07:54.308Z"
},
"example/tooling/demo2/README.md": {
"atime": "2021-10-17T18:17:20.358Z",
"mtime": "2021-10-17T18:17:20.016Z",
"ctime": "2021-10-17T18:17:20.016Z",
"birthtime": "2021-03-24T08:08:00.086Z"
},
"example/tooling/demo5/README.md": {
"atime": "2021-10-17T18:17:31.389Z",
"mtime": "2021-10-17T18:17:30.684Z",
"ctime": "2021-10-17T18:17:30.684Z",
"birthtime": "2021-03-24T08:08:21.119Z"
},
"example/tooling/demo3/README.md": {
"atime": "2021-10-17T18:17:23.509Z",
"mtime": "2021-10-17T18:17:22.637Z",
"ctime": "2021-10-17T18:17:22.637Z",
"birthtime": "2021-03-24T08:08:07.143Z"
},
"example/stacks-grids-scrollviews/demo1/README.md": {
"atime": "2021-10-17T18:16:07.577Z",
"mtime": "2021-10-17T18:16:06.944Z",
"ctime": "2021-10-17T18:16:06.944Z",
"birthtime": "2021-03-17T08:26:27.605Z"
},
"example/tooling/demo4/README.md": {
"atime": "2021-10-17T18:17:26.675Z",
"mtime": "2021-10-17T18:17:25.657Z",
"ctime": "2021-10-17T18:17:25.657Z",
"birthtime": "2021-03-24T08:08:13.654Z"
},
"example/containers/demo2/README.md": {
"atime": "2021-10-17T18:14:00.145Z",
"mtime": "2021-10-17T18:13:59.097Z",
"ctime": "2021-10-17T18:13:59.097Z",
"birthtime": "2021-03-19T19:34:40.272Z"
},
"example/tooling/demo9/README.md": {
"atime": "2021-11-05T05:01:35.137Z",
"mtime": "2021-11-05T05:01:34.707Z",
"ctime": "2021-11-05T05:01:34.707Z",
"birthtime": "2021-11-05T04:46:35.873Z"
},
"example/containers/demo10/README.md": {
"atime": "2021-10-17T18:13:53.806Z",
"mtime": "2021-10-17T18:13:53.357Z",
"ctime": "2021-10-17T18:13:53.357Z",
"birthtime": "2021-03-19T19:36:16.802Z"
},
"example/containers/demo3/README.md": {
"atime": "2021-10-17T18:14:02.850Z",
"mtime": "2021-10-17T18:14:01.940Z",
"ctime": "2021-10-17T18:14:01.940Z",
"birthtime": "2021-03-19T19:35:54.691Z"
},
"example/containers/demo5/README.md": {
"atime": "2021-10-17T18:14:08.085Z",
"mtime": "2021-10-17T18:14:07.304Z",
"ctime": "2021-10-17T18:14:07.304Z",
"birthtime": "2021-03-19T19:36:00.551Z"
},
"example/containers/demo6/README.md": {
"atime": "2021-10-17T18:14:10.366Z",
"mtime": "2021-10-17T18:14:09.916Z",
"ctime": "2021-10-17T18:14:09.916Z",
"birthtime": "2021-03-19T19:36:04.314Z"
},
"example/containers/demo4/README.md": {
"atime": "2021-10-17T18:14:05.255Z",
"mtime": "2021-10-17T18:14:04.696Z",
"ctime": "2021-10-17T18:14:04.696Z",
"birthtime": "2021-03-19T19:35:57.865Z"
},
"example/containers/demo11/README.md": {
"atime": "2021-10-17T18:13:57.398Z",
"mtime": "2021-10-17T18:13:56.360Z",
"ctime": "2021-10-17T18:13:56.360Z",
"birthtime": "2021-03-26T09:36:53.458Z"
},
"example/containers/demo8/README.md": {
"atime": "2021-10-17T18:20:14.906Z",
"mtime": "2021-10-17T18:20:13.931Z",
"ctime": "2021-10-17T18:20:13.931Z",
"birthtime": "2021-03-19T19:36:09.985Z"
},
"example/containers/demo9/README.md": {
"atime": "2021-10-17T18:14:16.152Z",
"mtime": "2021-10-17T18:14:15.663Z",
"ctime": "2021-10-17T18:14:15.663Z",
"birthtime": "2021-03-19T19:36:13.254Z"
},
"example/containers/demo7/README.md": {
"atime": "2021-10-17T18:14:13.178Z",
"mtime": "2021-10-17T18:14:12.513Z",
"ctime": "2021-10-17T18:14:12.513Z",
"birthtime": "2021-03-19T19:36:06.931Z"
},
"example/transforming-views/demo10/README.md": {
"atime": "2021-10-17T18:28:48.766Z",
"mtime": "2021-10-17T18:28:48.341Z",
"ctime": "2021-10-17T18:28:48.341Z",
"birthtime": "2021-03-16T04:39:32.150Z"
},
"example/transforming-views/demo1/README.md": {
"atime": "2021-10-17T18:27:34.656Z",
"mtime": "2021-10-17T18:27:33.436Z",
"ctime": "2021-10-17T18:27:33.436Z",
"birthtime": "2021-03-16T03:40:33.450Z"
},
"example/transforming-views/demo12/README.md": {
"atime": "2021-10-17T18:29:01.650Z",
"mtime": "2021-10-17T18:29:01.209Z",
"ctime": "2021-10-17T18:29:01.209Z",
"birthtime": "2021-03-16T04:50:01.501Z"
},
"example/transforming-views/demo11/README.md": {
"atime": "2021-10-17T18:28:53.964Z",
"mtime": "2021-10-17T18:28:53.551Z",
"ctime": "2021-10-17T18:28:53.551Z",
"birthtime": "2021-03-16T04:44:43.252Z"
},
"example/tooling/demo8/README.md": {
"atime": "2021-11-05T04:48:51.817Z",
"mtime": "2021-11-05T04:48:26.559Z",
"ctime": "2021-11-05T04:48:26.559Z",
"birthtime": "2021-11-05T04:34:34.388Z"
},
"example/transforming-views/demo15/README.md": {
"atime": "2021-10-17T18:29:26.338Z",
"mtime": "2021-10-17T18:29:22.798Z",
"ctime": "2021-10-17T18:29:22.798Z",
"birthtime": "2021-03-16T05:00:45.860Z"
},
"example/transforming-views/demo13/README.md": {
"atime": "2021-10-17T18:29:07.377Z",
"mtime": "2021-10-17T18:29:06.974Z",
"ctime": "2021-10-17T18:29:06.974Z",
"birthtime": "2021-03-16T04:53:41.146Z"
},
"example/transforming-views/demo17/README.md": {
"atime": "2021-10-17T18:29:43.723Z",
"mtime": "2021-10-17T18:29:42.427Z",
"ctime": "2021-10-17T18:29:42.427Z",
"birthtime": "2021-03-16T05:13:35.945Z"
},
"example/transforming-views/demo14/README.md": {
"atime": "2021-10-17T18:29:15.753Z",
"mtime": "2021-10-17T18:29:15.342Z",
"ctime": "2021-10-17T18:29:15.342Z",
"birthtime": "2021-03-16T04:57:02.790Z"
},
"example/transforming-views/demo2/README.md": {
"atime": "2021-10-17T18:27:41.148Z",
"mtime": "2021-10-17T18:27:40.734Z",
"ctime": "2021-10-17T18:27:40.734Z",
"birthtime": "2021-03-16T03:50:21.393Z"
},
"example/transforming-views/demo18/README.md": {
"atime": "2021-10-17T18:29:54.719Z",
"mtime": "2021-10-17T18:29:52.869Z",
"ctime": "2021-10-17T18:29:52.869Z",
"birthtime": "2021-03-16T05:17:15.413Z"
},
"example/transforming-views/demo16/README.md": {
"atime": "2021-10-17T18:29:36.753Z",
"mtime": "2021-10-17T18:29:36.343Z",
"ctime": "2021-10-17T18:29:36.343Z",
"birthtime": "2021-03-16T05:06:31.556Z"
},
"example/transforming-views/demo20/README.md": {
"atime": "2021-10-17T18:30:09.330Z",
"mtime": "2021-10-17T18:30:08.893Z",
"ctime": "2021-10-17T18:30:08.893Z",
"birthtime": "2021-03-16T08:19:36.423Z"
},
"example/transforming-views/demo4/README.md": {
"atime": "2021-10-17T18:17:47.651Z",
"mtime": "2021-10-17T18:17:47.184Z",
"ctime": "2021-10-17T18:17:47.184Z",
"birthtime": "2021-03-16T03:58:52.237Z"
},
"example/transforming-views/demo21/README.md": {
"atime": "2021-10-17T18:30:14.659Z",
"mtime": "2021-10-17T18:30:14.215Z",
"ctime": "2021-10-17T18:30:14.215Z",
"birthtime": "2021-03-16T08:24:03.696Z"
},
"example/transforming-views/demo3/README.md": {
"atime": "2021-10-17T18:27:47.738Z",
"mtime": "2021-10-17T18:27:47.332Z",
"ctime": "2021-10-17T18:27:47.332Z",
"birthtime": "2021-03-16T03:54:59.369Z"
},
"example/transforming-views/demo19/README.md": {
"atime": "2021-10-17T18:30:03.478Z",
"mtime": "2021-10-17T18:30:03.028Z",
"ctime": "2021-10-17T18:30:03.028Z",
"birthtime": "2021-03-16T05:22:13.158Z"
},
"example/transforming-views/demo5/README.md": {
"atime": "2021-10-17T18:27:58.165Z",
"mtime": "2021-10-17T18:27:57.743Z",
"ctime": "2021-10-17T18:27:57.743Z",
"birthtime": "2021-03-16T04:05:56.642Z"
},
"example/view-layout/demo1/README.md": {
"atime": "2021-10-17T18:19:05.976Z",
"mtime": "2021-10-17T18:19:05.001Z",
"ctime": "2021-10-17T18:19:05.001Z",
"birthtime": "2021-03-17T07:18:49.547Z"
},
"example/transforming-views/demo7/README.md": {
"atime": "2021-10-17T18:28:19.644Z",
"mtime": "2021-10-17T18:28:18.174Z",
"ctime": "2021-10-17T18:28:18.174Z",
"birthtime": "2021-03-16T04:19:24.957Z"
},
"example/transforming-views/demo8/README.md": {
"atime": "2021-10-17T18:28:32.923Z",
"mtime": "2021-10-17T18:28:31.840Z",
"ctime": "2021-10-17T18:28:31.840Z",
"birthtime": "2021-03-16T04:25:08.376Z"
},
"example/transforming-views/demo6/README.md": {
"atime": "2021-10-17T18:28:08.327Z",
"mtime": "2021-10-17T18:28:05.961Z",
"ctime": "2021-10-17T18:28:05.961Z",
"birthtime": "2021-03-16T04:11:08.767Z"
},
"example/view-layout/demo2/README.md": {
"atime": "2021-10-17T18:19:09.273Z",
"mtime": "2021-10-17T18:19:08.791Z",
"ctime": "2021-10-17T18:19:08.791Z",
"birthtime": "2021-03-17T07:18:58.330Z"
},
"example/transforming-views/demo9/README.md": {
"atime": "2021-10-17T18:28:41.033Z",
"mtime": "2021-10-17T18:28:40.606Z",
"ctime": "2021-10-17T18:28:40.606Z",
"birthtime": "2021-03-16T04:33:58.441Z"
},
"example/view-layout/demo3/README.md": {
"atime": "2021-10-17T18:19:12.610Z",
"mtime": "2021-10-17T18:19:11.911Z",
"ctime": "2021-10-17T18:19:11.911Z",
"birthtime": "2021-03-17T07:36:41.121Z"
},
"example/view-layout/demo4/README.md": {
"atime": "2021-10-17T18:19:15.983Z",
"mtime": "2021-10-17T18:19:15.576Z",
"ctime": "2021-10-17T18:19:15.576Z",
"birthtime": "2021-03-17T07:41:43.685Z"
},
"example/view-layout/demo7/README.md": {
"atime": "2021-10-17T18:19:24.051Z",
"mtime": "2021-10-17T18:19:23.464Z",
"ctime": "2021-10-17T18:19:23.464Z",
"birthtime": "2021-03-17T08:03:38.636Z"
},
"example/view-layout/demo9/README.md": {
"atime": "2021-10-20T13:04:33.399Z",
"mtime": "2021-10-20T13:04:30.577Z",
"ctime": "2021-10-20T13:04:30.577Z",
"birthtime": "2021-10-20T12:40:56.965Z"
},
"example/view-layout/demo8/README.md": {
"atime": "2021-10-17T18:19:26.526Z",
"mtime": "2021-10-17T18:19:25.836Z",
"ctime": "2021-10-17T18:19:25.836Z",
"birthtime": "2021-03-17T08:08:39.928Z"
},
"example/working-with-static-text/demo10/README.md": {
"atime": "2022-03-09T05:06:03.918Z",
"mtime": "2022-03-09T05:06:02.868Z",
"ctime": "2022-03-09T05:06:02.868Z",
"birthtime": "2022-03-09T05:06:02.868Z"
},
"example/working-with-static-text/demo11/README.md": {
"atime": "2022-03-18T18:08:24.020Z",
"mtime": "2022-03-09T09:44:04.408Z",
"ctime": "2022-03-09T09:44:04.408Z",
"birthtime": "2022-03-09T05:08:58.377Z"
},
"example/view-layout/demo6/README.md": {
"atime": "2021-10-17T18:19:21.504Z",
"mtime": "2021-10-17T18:19:20.890Z",
"ctime": "2021-10-17T18:19:20.890Z",
"birthtime": "2021-03-17T07:55:24.107Z"
},
"example/working-with-static-text/demo1/README.md": {
"atime": "2021-11-27T12:46:24.246Z",
"mtime": "2021-11-27T12:46:13.443Z",
"ctime": "2021-11-27T12:46:13.443Z",
"birthtime": "2021-03-16T14:42:18.117Z"
},
"example/working-with-static-text/demo4/README.md": {
"atime": "2021-11-27T12:56:51.161Z",
"mtime": "2021-11-27T12:56:49.916Z",
"ctime": "2021-11-27T12:56:49.916Z",
"birthtime": "2021-03-16T15:08:40.089Z"
},
"example/working-with-static-text/demo5/README.md": {
"atime": "2021-11-27T12:57:05.190Z",
"mtime": "2021-11-27T12:56:54.379Z",
"ctime": "2021-11-27T12:56:54.379Z",
"birthtime": "2021-03-16T15:21:01.732Z"
},
"example/working-with-static-text/demo6/README.md": {
"atime": "2021-11-27T12:57:11.634Z",
"mtime": "2021-11-27T12:57:00.819Z",
"ctime": "2021-11-27T12:57:00.819Z",
"birthtime": "2021-03-16T15:43:32.506Z"
},
"example/working-with-static-text/demo2/README.md": {
"atime": "2021-11-27T12:51:30.955Z",
"mtime": "2021-11-27T12:51:20.131Z",
"ctime": "2021-11-27T12:51:20.131Z",
"birthtime": "2021-03-16T14:53:44.201Z"
},
"example/working-with-static-text/demo3/README.md": {
"atime": "2021-11-27T12:54:04.947Z",
"mtime": "2021-11-27T12:54:02.800Z",
"ctime": "2021-11-27T12:54:02.800Z",
"birthtime": "2021-03-16T15:00:13.733Z"
},
"example/working-with-static-text/demo12/README.md": {
"atime": "2022-03-09T09:43:26.379Z",
"mtime": "2022-03-09T09:43:24.381Z",
"ctime": "2022-03-09T09:43:24.381Z",
"birthtime": "2022-03-09T09:32:17.919Z"
},
"example/user-interface-controls/demo10/README.md": {
"atime": "2021-10-17T18:17:45.245Z",
"mtime": "2021-10-17T18:17:44.857Z",
"ctime": "2021-10-17T18:17:44.857Z",
"birthtime": "2021-03-19T05:02:15.070Z"
},
"example/working-with-static-text/demo7/README.md": {
"atime": "2021-11-27T12:57:42.366Z",
"mtime": "2021-11-27T12:57:31.555Z",
"ctime": "2021-11-27T12:57:31.555Z",
"birthtime": "2021-03-16T15:49:34.449Z"
},
"example/user-interface-controls/demo11/README.md": {
"atime": "2021-10-17T18:17:52.342Z",
"mtime": "2021-10-17T18:17:51.582Z",
"ctime": "2021-10-17T18:17:51.582Z",
"birthtime": "2021-03-19T05:22:49.564Z"
},
"example/working-with-static-text/demo8/README.md": {
"atime": "2021-11-27T12:57:46.883Z",
"mtime": "2021-11-27T12:57:36.071Z",
"ctime": "2021-11-27T12:57:36.071Z",
"birthtime": "2021-03-16T15:55:15.653Z"
},
"example/user-interface-controls/demo13/README.md": {
"atime": "2021-10-17T18:17:58.005Z",
"mtime": "2021-10-17T18:17:57.390Z",
"ctime": "2021-10-17T18:17:57.390Z",
"birthtime": "2021-03-19T05:53:08.128Z"
},
"example/user-interface-controls/demo12/README.md": {
"atime": "2021-10-17T18:17:55.259Z",
"mtime": "2021-10-17T18:17:54.745Z",
"ctime": "2021-10-17T18:17:54.745Z",
"birthtime": "2021-03-19T05:49:45.039Z"
},
"example/view-layout/demo5/README.md": {
"atime": "2021-10-17T18:19:18.903Z",
"mtime": "2021-10-17T18:19:18.475Z",
"ctime": "2021-10-17T18:19:18.475Z",
"birthtime": "2021-03-17T07:45:47.956Z"
},
"example/user-interface-controls/demo15/README.md": {
"atime": "2021-10-17T18:18:02.858Z",
"mtime": "2021-10-17T18:18:01.967Z",
"ctime": "2021-10-17T18:18:01.967Z",
"birthtime": "2021-03-19T06:03:49.532Z"
},
"example/user-interface-controls/demo14/README.md": {
"atime": "2021-10-17T18:18:00.344Z",
"mtime": "2021-10-17T18:17:59.743Z",
"ctime": "2021-10-17T18:17:59.743Z",
"birthtime": "2021-03-19T05:56:56.464Z"
},
"example/user-interface-controls/demo16/README.md": {
"atime": "2021-10-17T18:30:35.345Z",
"mtime": "2021-10-17T18:30:34.929Z",
"ctime": "2021-10-17T18:30:34.929Z",
"birthtime": "2021-03-19T06:07:36.755Z"
},
"example/user-interface-controls/demo17/README.md": {
"atime": "2021-10-17T18:18:06.169Z",
"mtime": "2021-10-17T18:18:05.501Z",
"ctime": "2021-10-17T18:18:05.501Z",
"birthtime": "2021-03-19T06:44:39.366Z"
},
"example/user-interface-controls/demo19/README.md": {
"atime": "2021-10-17T18:18:10.969Z",
"mtime": "2021-10-17T18:18:10.036Z",
"ctime": "2021-10-17T18:18:10.036Z",
"birthtime": "2021-03-19T06:54:08.819Z"
},
"example/user-interface-controls/demo20/README.md": {
"atime": "2021-10-17T18:18:16.047Z",
"mtime": "2021-10-17T18:18:15.251Z",
"ctime": "2021-10-17T18:18:15.251Z",
"birthtime": "2021-03-19T06:57:32.906Z"
},
"example/user-interface-controls/demo21/README.md": {
"atime": "2021-10-17T18:18:20.283Z",
"mtime": "2021-10-17T18:18:19.395Z",
"ctime": "2021-10-17T18:18:19.395Z",
"birthtime": "2021-03-19T07:01:17.272Z"
},
"example/user-interface-controls/demo18/README.md": {
"atime": "2021-10-17T18:18:08.457Z",
"mtime": "2021-10-17T18:18:07.833Z",
"ctime": "2021-10-17T18:18:07.833Z",
"birthtime": "2021-03-19T06:51:00.920Z"
},
"example/user-interface-controls/demo22/README.md": {
"atime": "2021-10-17T18:18:22.678Z",
"mtime": "2021-10-17T18:18:21.924Z",
"ctime": "2021-10-17T18:18:21.924Z",
"birthtime": "2021-03-19T07:06:14.188Z"
},
"example/working-with-static-text/demo9/README.md": {
"atime": "2021-11-27T12:59:17.777Z",
"mtime": "2021-11-27T12:59:15.424Z",
"ctime": "2021-11-27T12:59:15.424Z",
"birthtime": "2021-03-16T16:05:24.506Z"
},
"example/user-interface-controls/demo23/README.md": {
"atime": "2021-10-17T18:18:25.121Z",
"mtime": "2021-10-17T18:18:24.392Z",
"ctime": "2021-10-17T18:18:24.392Z",
"birthtime": "2021-03-19T07:10:26.777Z"
},
"example/user-interface-controls/demo24/README.md": {
"atime": "2021-10-17T18:18:27.387Z",
"mtime": "2021-10-17T18:18:26.776Z",
"ctime": "2021-10-17T18:18:26.776Z",
"birthtime": "2021-03-19T07:16:09.538Z"
},
"example/user-interface-controls/demo2/README.md": {
"atime": "2021-10-17T18:18:13.557Z",
"mtime": "2021-10-17T18:18:12.587Z",
"ctime": "2021-10-17T18:18:12.587Z",
"birthtime": "2021-03-18T17:05:12.994Z"
},
"example/user-interface-controls/demo26/README.md": {
"atime": "2021-10-20T14:13:23.705Z",
"mtime": "2021-10-20T14:13:03.748Z",
"ctime": "2021-10-20T14:13:03.748Z",
"birthtime": "2021-10-20T14:06:50.244Z"
},
"example/user-interface-controls/demo25/README.md": {
"atime": "2021-10-17T18:18:30.236Z",
"mtime": "2021-10-17T18:18:28.992Z",
"ctime": "2021-10-17T18:18:28.992Z",
"birthtime": "2021-03-30T15:54:39.125Z"
},
"example/user-interface-controls/demo3/README.md": {
"atime": "2021-10-17T18:18:38.907Z",
"mtime": "2021-10-17T18:18:38.454Z",
"ctime": "2021-10-17T18:18:38.454Z",
"birthtime": "2021-03-19T01:24:11.146Z"
},
"example/user-interface-controls/demo27/README.md": {
"atime": "2021-10-20T14:41:33.177Z",
"mtime": "2021-10-20T14:41:31.939Z",
"ctime": "2021-10-20T14:41:31.939Z",
"birthtime": "2021-10-20T14:15:10.683Z"
},
"example/user-interface-controls/demo6/README.md": {
"atime": "2021-10-17T18:18:46.170Z",
"mtime": "2021-10-17T18:18:45.764Z",
"ctime": "2021-10-17T18:18:45.764Z",
"birthtime": "2021-03-19T02:33:19.005Z"
},
"example/user-interface-controls/demo28/README.md": {
"atime": "2021-10-20T14:49:43.822Z",
"mtime": "2021-10-20T14:49:09.210Z",
"ctime": "2021-10-20T14:49:09.210Z",
"birthtime": "2021-10-20T14:41:22.415Z"
},
"example/user-interface-controls/demo9/README.md": {
"atime": "2021-10-17T18:19:03.054Z",
"mtime": "2021-10-17T18:19:02.116Z",
"ctime": "2021-10-17T18:19:02.116Z",
"birthtime": "2021-03-19T05:08:10.949Z"
},
"example/user-interface-controls/demo7/README.md": {
"atime": "2021-10-17T18:18:49.552Z",
"mtime": "2021-10-17T18:18:49.099Z",
"ctime": "2021-10-17T18:18:49.099Z",
"birthtime": "2021-03-19T03:21:21.071Z"
},
"example/lists/demo10/README.md": {
"atime": "2021-10-17T18:15:21.626Z",
"mtime": "2021-10-17T18:15:21.233Z",
"ctime": "2021-10-17T18:15:21.233Z",
"birthtime": "2021-03-19T08:55:54.875Z"
},
"example/user-interface-controls/demo4/README.md": {
"atime": "2021-10-17T18:30:27.950Z",
"mtime": "2021-10-17T18:30:27.535Z",
"ctime": "2021-10-17T18:30:27.535Z",
"birthtime": "2021-03-19T01:38:03.858Z"
},
"example/user-interface-controls/demo8/README.md": {
"atime": "2021-10-17T18:18:58.424Z",
"mtime": "2021-10-17T18:18:57.385Z",
"ctime": "2021-10-17T18:18:57.385Z",
"birthtime": "2021-03-19T03:27:20.666Z"
},
"example/lists/demo12/README.md": {
"atime": "2021-10-17T18:15:26.706Z",
"mtime": "2021-10-17T18:15:26.125Z",
"ctime": "2021-10-17T18:15:26.125Z",
"birthtime": "2021-03-19T08:56:00.518Z"
},
"example/lists/demo11/README.md": {
"atime": "2021-10-17T18:15:24.313Z",
"mtime": "2021-10-17T18:15:23.854Z",
"ctime": "2021-10-17T18:15:23.854Z",
"birthtime": "2021-03-19T08:55:57.504Z"
},
"example/lists/demo13/README.md": {
"atime": "2021-10-17T18:15:29.207Z",
"mtime": "2021-10-17T18:15:28.484Z",
"ctime": "2021-10-17T18:15:28.484Z",
"birthtime": "2021-03-19T08:56:03.057Z"
},
"example/lists/demo2/README.md": {
"atime": "2021-10-17T18:07:23.921Z",
"mtime": "2021-10-17T18:07:23.516Z",
"ctime": "2021-10-17T18:07:23.516Z",
"birthtime": "2021-03-19T08:22:54.968Z"
},
"example/lists/demo7/README.md": {
"atime": "2021-10-17T18:15:31.278Z",
"mtime": "2021-10-17T18:15:30.828Z",
"ctime": "2021-10-17T18:15:30.828Z",
"birthtime": "2021-03-19T08:55:45.384Z"
},
"example/lists/demo8/README.md": {
"atime": "2021-10-17T18:15:34.103Z",
"mtime": "2021-10-17T18:15:33.272Z",
"ctime": "2021-10-17T18:15:33.272Z",
"birthtime": "2021-03-19T08:55:48.945Z"
},
"example/lists/demo3/README.md": {
"atime": "2021-10-17T18:07:27.769Z",
"mtime": "2021-10-17T18:07:27.374Z",
"ctime": "2021-10-17T18:07:27.374Z",
"birthtime": "2021-03-19T08:31:41.969Z"
},
"example/lists/demo5/README.md": {
"atime": "2021-10-17T18:07:36.587Z",
"mtime": "2021-10-17T18:07:36.172Z",
"ctime": "2021-10-17T18:07:36.172Z",
"birthtime": "2021-03-19T08:54:49.068Z"
},
"example/lists/demo4/README.md": {
"atime": "2021-10-17T18:07:31.485Z",
"mtime": "2021-10-17T18:07:31.071Z",
"ctime": "2021-10-17T18:07:31.071Z",
"birthtime": "2021-03-19T08:48:00.966Z"
},
"example/lists/demo9/README.md": {
"atime": "2021-10-17T18:15:37.086Z",
"mtime": "2021-10-17T18:15:35.847Z",
"ctime": "2021-10-17T18:15:35.847Z",
"birthtime": "2021-03-19T08:55:51.495Z"
},
"example/lists/demo6/README.md": {
"atime": "2021-10-17T18:07:45.914Z",
"mtime": "2021-10-17T18:07:45.516Z",
"ctime": "2021-10-17T18:07:45.516Z",
"birthtime": "2021-03-19T08:55:42.879Z"
},
"example/tooling/demo7/MySamplePackage/README.md": {
"atime": "2021-11-02T08:48:10.502Z",
"mtime": "2021-10-19T11:56:08.504Z",
"ctime": "2021-10-19T11:56:08.504Z",
"birthtime": "2021-10-19T11:56:08.503Z"
},
"example/tooling/demo7/README.md": {
"atime": "2021-10-20T01:15:56.290Z",
"mtime": "2021-10-20T01:15:55.052Z",
"ctime": "2021-10-20T01:15:55.052Z",
"birthtime": "2021-10-19T08:31:33.571Z"
},
"example/cheat-sheet.md": {
"atime": "2022-04-22T10:31:33.046Z",
"mtime": "2022-04-22T10:31:30.749Z",
"ctime": "2022-04-22T10:31:30.749Z",
"birthtime": "2021-10-17T17:51:26.701Z"
}
}
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 小弟调调™
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<div markdown="1">
<sup align="center">Using <a href="https://wangchujiang.com/#/app" target="_blank">my app</a> is also a way to <a href="https://wangchujiang.com/#/sponsor" target="_blank">support</a> me:</sup>
<br>
<a target="_blank" href="https://apps.apple.com/app/6758053530" title="Scap: Screenshot & Markup Edit for macOS"><img alt="Scap: Screenshot & Markup Edit" height="52" width="52" src="https://wangchujiang.com/appicon/scap.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6757317079" title="Screen Test for macOS"><img alt="Screen Test" height="52" width="52" src="https://wangchujiang.com/appicon/screen-test.png"></a>
<a target="_blank" href="https://apps.apple.com/app/Deskmark/6755948110" title="Deskmark for macOS"><img alt="Deskmark" height="52" width="52" src="https://wangchujiang.com/appicon/deskmark.png"></a>
<a target="_blank" href="https://apps.apple.com/app/Keyzer/6500434773" title="Keyzer for macOS"><img alt="Keyzer" height="52" width="52" src="https://wangchujiang.com/appicon/keyzer.png"></a>
<a target="_blank" href="https://github.com/jaywcjlove/vidwall-hub" title="Vidwall Hub for macOS"><img alt="Vidwall Hub" height="52" width="52" src="https://wangchujiang.com/appicon/vidwall-hub.png"></a>
<a target="_blank" href="https://apps.apple.com/app/VidCrop/6752624705" title="VidCrop for macOS"><img alt="VidCrop" height="52" width="52" src="https://wangchujiang.com/appicon/vidcrop.png"></a>
<a target="_blank" href="https://apps.apple.com/app/Vidwall/6747587746" title="Vidwall for macOS"><img alt="Vidwall" height="52" width="52" src="https://wangchujiang.com/appicon/vidwall.png"></a>
<a target="_blank" href="https://wangchujiang.com/mousio-hint/" title="Mousio Hint for macOS"><img alt="Mousio Hint" height="52" width="52" src="https://wangchujiang.com/appicon/mousio-hint.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6746747327" title="Mousio for macOS"><img alt="Mousio" height="52" width="52" src="https://wangchujiang.com/appicon/mousio.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6745227444" title="Musicer for macOS"><img alt="Musicer" height="52" width="52" src="https://wangchujiang.com/appicon/musicer.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6743841447" title="Audioer for macOS"><img alt="Audioer" height="52" width="52" src="https://wangchujiang.com/appicon/audioer.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6744690194" title="FileSentinel for macOS"><img alt="FileSentinel" height="52" width="52" src="https://wangchujiang.com/appicon/file-sentinel.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6743495172" title="FocusCursor for macOS"><img alt="FocusCursor" height="52" width="52" src="https://wangchujiang.com/appicon/focus-cursor.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6742680573" title="Videoer for macOS"><img alt="Videoer" height="52" width="52" src="https://wangchujiang.com/appicon/videoer.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6740425504" title="KeyClicker for macOS"><img alt="KeyClicker" height="52" width="52" src="https://wangchujiang.com/appicon/key-clicker.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6739052447" title="DayBar for macOS"><img alt="DayBar" height="52" width="52" src="https://wangchujiang.com/appicon/daybar.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6739444407" title="Iconed for macOS"><img alt="Iconed" height="52" width="52" src="https://wangchujiang.com/appicon/iconed.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6737160756" title="Mousio for macOS"><img alt="Mousio" height="52" width="52" src="https://wangchujiang.com/appicon/rightmenu-master.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6723903021" title="Paste Quick for macOS"><img alt="Quick RSS" height="52" width="52" src="https://wangchujiang.com/appicon/paste-quick.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6670696072" title="Quick RSS for macOS/iOS"><img alt="Quick RSS" height="52" width="52" src="https://wangchujiang.com/appicon/quick-rss.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6670167443" title="Web Serve for macOS"><img alt="Web Serve" height="52" width="52" src="https://wangchujiang.com/appicon/web-serve.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6503953628" title="Copybook Generator for macOS/iOS"><img alt="Copybook Generator" height="52" width="52" src="https://wangchujiang.com/appicon/copybook-generator.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6471227008" title="DevTutor for macOS/iOS"><img alt="DevTutor for SwiftUI" height="52" width="52" src="https://wangchujiang.com/appicon/devtutor.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6479819388" title="RegexMate for macOS/iOS"><img alt="RegexMate" height="52" width="52" src="https://wangchujiang.com/appicon/regex-mate.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6479194014" title="Time Passage for macOS/iOS"><img alt="Time Passage" height="52" width="52" src="https://wangchujiang.com/appicon/time-passage.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6478772538" title="IconizeFolder for macOS"><img alt="Iconize Folder" height="52" width="52" src="https://wangchujiang.com/appicon/iconize-folder.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6478511402" title="Textsound Saver for macOS/iOS"><img alt="Textsound Saver" height="52" width="52" src="https://wangchujiang.com/appicon/textsound-saver.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6476924627" title="Create Custom Symbols for macOS"><img alt="Create Custom Symbols" height="52" width="52" src="https://wangchujiang.com/appicon/create-custom-symbols.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6476452351" title="DevHub for macOS"><img alt="DevHub" height="52" width="52" src="https://wangchujiang.com/appicon/devhub.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6476400184" title="Resume Revise for macOS"><img alt="Resume Revise" height="52" width="52" src="https://wangchujiang.com/appicon/resume-revise.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6472593276" title="Palette Genius for macOS"><img alt="Palette Genius" height="52" width="52" src="https://wangchujiang.com/appicon/palette-genius.png"></a>
<a target="_blank" href="https://apps.apple.com/app/6470879005" title="Symbol Scribe for macOS"><img alt="Symbol Scribe" height="52" width="52" src="https://wangchujiang.com/appicon/symbol-scribe.png"></a>
</div>
<hr>

[](https://jaywcjlove.github.io/#/sponsor)
[](https://x.com/jaywcjlove)
**SwiftUI 示例、技巧和技术集合**:这个集合旨在帮助您构建应用程序、解决问题,并了解 SwiftUI 的实际工作方式。主要内容来源于 [`hackingwithswift.com`](https://www.hackingwithswift.com/quick-start/swiftui),所有示例都是在 macOS Big Sur 系统上运行,基于 Xcode `12.4` 开发。
此外,我还制作了一个 Swift/SwiftUI 速查手册应用,您可以通过速查手册快速查阅资料,边动手开发应用,轻松上手。您可以通过以下链接下载:
<p>
<a target="_blank" href="https://apps.apple.com/app/devtutor/id6471227008" title="DevTutor for SwiftUI AppStore"><img alt="DevTutor for SwiftUI AppStore" src="https://jaywcjlove.github.io/sb/download/macos.svg" height="51">
</a>
<a target="_blank" href="https://apps.apple.com/app/devtutor/id6471227008?platform=iphone" title="DevTutor for SwiftUI AppStore"><img alt="DevTutor for SwiftUI AppStore iOS" src="https://jaywcjlove.github.io/sb/download/appstore.svg" height="51">
</a>
</p>
🚧 **注意事项:** 这些示例适用于 macOS/iOS 上的 Swift 编程(主要是 macOS),文字解释内容是通过 Google 翻译完成的,英文水平有限,欢迎大家参与修改和完善。部分内容进行了添加或修改,并且有些部分是新增的。如果您对 Swift 语法不熟悉,可以参考 [`Swift 语法入门`](https://github.com/jaywcjlove/swift-tutorial),而如果对 SwiftUI 不熟悉,提供了一个 [`SwiftUI 速查手册`](./example/cheat-sheet.md) 供您参考。
🚧 **版权声明:** 内容版权归 [`hackingwithswift.com`](https://www.hackingwithswift.com/quick-start/swiftui) 原作者所有,本站不承担任何法律责任或风险,且不以商业为目的。如果您认为本站的内容侵犯了您的版权,请及时联系我们。同时,本站无法完全保证内容的准确性,使用本站内容所带来的任何风险由用户自行承担。使用本站即表示您已接受本站的使用条款和隐私政策。
为了方便在 Swift 中进行颜色拾取,提供了一个 Web 小工具 [UI-Color](https://uiwjs.github.io/ui-color/),此外还提供了一个桌面应用 [Palette Genius](https://github.com/jaywcjlove/palette-genius),该应用汇集了许多颜色,并且包含一个颜色选择转换器。欢迎大家提出改进意见。
[`SwiftUI 论坛`](https://github.com/jaywcjlove/swiftui-example/discussions)
只是讨论 SwiftUI 事物的地方 [论坛→](https://github.com/jaywcjlove/swiftui-example/discussions)。想法来源于 [sindresorhus/swiftui](https://github.com/sindresorhus/swiftui)
<!--idoc:ignore:start-->
## 示例目录
- [介绍](#介绍)
- [建立一个完整的项目](#建立一个完整的项目)
- [使用静态文本](#使用静态文本)
- [图像形状和媒体](#图像形状和媒体)
- [视图布局](#视图布局)
- [堆栈网格滚动视图](#堆栈网格滚动视图)
- [用户界面控件](#用户界面控件)
- [响应事件](#响应事件)
- [点击和手势](#点击和手势)
- [状态](#状态)
- [列表](#列表)
- [表单](#表单)
- [容器](#容器)
- [对话框和菜单](#对话框和菜单)
- [切换界面](#切换界面)
- [转换视图](#转换视图)
- [绘画](#绘画)
- [动画](#动画)
- [排版视图](#排版视图)
- [跨平台-swiftui](#跨平台-swiftui)
- [数据](#数据)
- [辅助功能](#辅助功能)
- [工具](#工具)
- [附录a](#附录a)
- [`速查手册`](./example/cheat-sheet.md)
<!--idoc:ignore:end-->
## 介绍
简要介绍 SwiftUI 的基础
- [不要惊慌!](example/quick-start/dont-panic.md)
- [什么是 SwiftUI?](example/quick-start/what-is-swiftui.md)
- [SwiftUI 与 Interface Builder 和 storyboards](example/quick-start/swiftui-vs-interface-builder-and-storyboards.md)
- [有关 SwiftUI 的常见问题](example/quick-start/frequently-asked-questions-about-swiftui.md)
- [回答这个大问题:你应该学习 SwiftUI,UIKit,还是两者都学?](example/quick-start/answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md)
- [如何遵循这个快速入门指南?](example/quick-start/how-to-follow-this-quick-start-guide.md)
- [从 UIKit 迁移到 SwiftUI](example/quick-start/migrating-from-uikit-to-swiftui.md)
- [基本模板是什么?](example/quick-start/whats-in-the-basic-template.md)
- [贡献](example/quick-start/dedication.md)
## 建立一个完整的项目
通过实际的应用程序项目学习 SwiftUI
- [创建一个 `SwiftUI` 项目](example/introduction/demo1/README.md)
- [使用列表构建菜单](example/introduction/demo2/README.md)
## 使用静态文本
整齐地布局文本
- [如何使用 `Text` 视图创建静态标签?](example/working-with-static-text/demo1/README.md)
- [如何使用字体,颜色,行距等为文本视图设置样式?](example/working-with-static-text/demo2/README.md)
- [如何使用 `multilineTextAlignment()` 调整文本对齐方式?](example/working-with-static-text/demo3/README.md)
- [如何在文本视图中设置文本格式?](example/working-with-static-text/demo4/README.md)
- [如何在文字中的字母之间增加空格?](example/working-with-static-text/demo5/README.md)
- [如何在文字检视中格式化日期?](example/working-with-static-text/demo6/README.md)
- [如何使用 `textCase()` 使 `TextField` 大写或小写?](example/working-with-static-text/demo7/README.md)
- [如何使用 `Label` 并排显示文本和图标?](example/working-with-static-text/demo8/README.md)
- [如何使用 `redacted()` 将内容标记为占位符?](example/working-with-static-text/demo9/README.md)
- [如何使用 `privacySensitive()` 将内容标记为私有?](example/working-with-static-text/demo10/README.md)
- [如何在文本中呈现 `Markdown` 内容?](example/working-with-static-text/demo11/README.md)
- [如何让用户选择文本?](example/working-with-static-text/demo12/README.md)
## 图像,形状和媒体
绘制图标,圆形,渐变等
- [如何使用图像视图绘制图像?](example/images-shapes-media/demo1/README.md)
- [如何调整图像适合其空间的展示方式?](example/images-shapes-media/demo2/README.md)
- [如何平铺图像?](example/images-shapes-media/demo3/README.md)
- [如何使用SF符号渲染图像?](example/images-shapes-media/demo4/README.md)
- [如何渲染渐变?](example/images-shapes-media/demo5/README.md)
- [如何使用图像和其他视图作为背景?](example/images-shapes-media/demo6/README.md)
- [如何显示实体形状?](example/images-shapes-media/demo7/README.md)
- [如何同时填充和描边形状?](example/images-shapes-media/demo8/README.md)
- [如何使用 `trim()` 绘制实体形状的一部分?](example/images-shapes-media/demo9/README.md)
- [什么时候应该使用 `ContainerRelativeShape`?](example/images-shapes-media/demo10/README.md)
- [如何使用 `VideoPlayer` 播放电影?](example/images-shapes-media/demo11/README.md)
- [如何使用 `SpriteView` 集成 `SpriteKit`?](example/images-shapes-media/demo12/README.md)
- [如何从 URL 加载远程图像?](example/images-shapes-media/demo13/README.md)
- [如何使用 SF Symbols 获得自定义颜色和透明度?](example/images-shapes-media/demo14/README.md)
## 视图布局
布局大小,优先级和间距
- [如何给视图定制 `frame`?](example/view-layout/demo1/README.md)
- [如何使用 `padding` 来控制各个视图之间的间距?](example/view-layout/demo2/README.md)
- [如何使用 `GeometryReader` 提供相对大小?](example/view-layout/demo3/README.md)
- [如何将内容放置在安全区域之外?](example/view-layout/demo4/README.md)
- [如何返回不同的视图类型?](example/view-layout/demo5/README.md)
- [如何使用 `ForEach` 循环创建视图?](example/view-layout/demo6/README.md)
- [如何使用 `layoutPriority()` 控制布局优先级?](example/view-layout/demo7/README.md)
- [如何使两个视图具有相同的宽度或高度?](example/view-layout/demo8/README.md)
- [如何使用 `foregroundStyle()` 提供视觉结构?](example/view-layout/demo9/README.md)
## 堆栈,网格,滚动视图
以结构化方式定位视图
- [如何使用 `VStack` 和 `HStack` 创建堆栈?](example/stacks-grids-scrollviews/demo1/README.md)
- [如何使用对齐 `alignment` 和间距 `spacing` 自定义堆栈布局?](example/stacks-grids-scrollviews/demo2/README.md)
- [如何使用 `Spacer` 将视图强制移到堆栈中的一侧?](example/stacks-grids-scrollviews/demo3/README.md)
- [如何制作固定尺寸的 `Spacer`?](example/stacks-grids-scrollviews/demo4/README.md)
- [如何使用 `ZStack` 在彼此之上叠加视图?](example/stacks-grids-scrollviews/demo5/README.md)
- [如何使用 `zIndex` 更改视图分层的顺序?](example/stacks-grids-scrollviews/demo6/README.md)
- [如何使用尺寸类创建不同的布局?](example/stacks-grids-scrollviews/demo7/README.md)
- [如何根据大小类在 `HStack` 和 `VStack` 之间自动切换?](example/stacks-grids-scrollviews/demo8/README.md)
- [如何使用 `ScrollView` 添加水平和垂直滚动?](example/stacks-grids-scrollviews/demo9/README.md)
- [如何使用 `ScrollViewReader` 使滚动视图移动到某个位置?](example/stacks-grids-scrollviews/demo10/README.md)
- [如何使用 `ScrollView` 和 `GeometryReader` 创建3D效果(如Cover Flow)?](example/stacks-grids-scrollviews/demo11/README.md)
- [如何使用 `LazyVGrid` 和 `LazyHGrid` 在网格中放置视图?](example/stacks-grids-scrollviews/demo12/README.md)
- [如何使用 `LazyVStack` 和 `LazyHStack` 延迟加载视图?](example/stacks-grids-scrollviews/demo13/README.md)
- [如何使用 `HSplitViews` 创建左中右三栏布局?](example/stacks-grids-scrollviews/demo14/README.md)
- [如何添加视觉效果模糊?](example/stacks-grids-scrollviews/demo15/README.md)
## 用户界面控件
响应交互并控制程序状态
- [使用状态](example/user-interface-controls/demo1/README.md)
- [如何创建可点击的按钮?](example/user-interface-controls/demo2/README.md)
- [如何禁用 `Button` 和 `NavigationLink` 中的图像的覆盖颜色?](example/user-interface-controls/demo3/README.md)
- [如何从 `TextField` 读取文本?](example/user-interface-controls/demo4/README.md)
- [如何在 `TextField` 上添加边框?](example/user-interface-controls/demo5/README.md)
- [如何将占位符添加到 `TextField`?](example/user-interface-controls/demo6/README.md)
- [如何在 `TextField` 中禁用自动更正?](example/user-interface-controls/demo7/README.md)
- [如何关闭 `TextField` 的键盘?](example/user-interface-controls/demo8/README.md)
- [如何格式化数字的 `TextField`?](example/user-interface-controls/demo9/README.md)
- [如何使用 `SecureField` 创建安全的文本字段?](example/user-interface-controls/demo10/README.md)
- [如何创建拨动开关?](example/user-interface-controls/demo11/README.md)
- [如何创建滑块 `Slider` 并从中读取值?](example/user-interface-controls/demo12/README.md)
- [如何创建选择器 `Picker` 并从中读取值?](example/user-interface-controls/demo13/README.md)
- [如何创建日期选择器 `DatePicker` 并从中读取值?](example/user-interface-controls/demo14/README.md)
- [如何创建分段控件并从中读取值?](example/user-interface-controls/demo15/README.md)
- [如何创建步进器 `Stepper` 并从中读取值?](example/user-interface-controls/demo16/README.md)
- [如何使用 `labelsHidden()` 隐藏 `Picker`,`Stepper`,`Toggle` 等标签?](example/user-interface-controls/demo17/README.md)
- [如何使用文本编辑器创建多行可编辑文本 `TextEditor`?](example/user-interface-controls/demo18/README.md)
- [如何让用户使用 `ColorPicker` 选择颜色?](example/user-interface-controls/demo19/README.md)
- [如何使用 `ProgressView` 显示任务的进度?](example/user-interface-controls/demo20/README.md)
- [如何使用 `ProgressView` 显示不确定的进度?](example/user-interface-controls/demo21/README.md)
- [如何显示地图 `Map` 视图?](example/user-interface-controls/demo22/README.md)
- [如何在地图 `Map` 视图中显示注释?](example/user-interface-controls/demo23/README.md)
- [如何在 `Safari` 中打开 Web 链接?](example/user-interface-controls/demo24/README.md)
- [如何设置可编辑文本 `TextEditor` 背景颜色?](example/user-interface-controls/demo25/README.md)
- [如何自定义 `TextField`、`SecureField` 和 `TextEditor` 的提交按钮?](example/user-interface-controls/demo26/README.md)
- [当用户提交 TextField 时如何执行事件?](example/user-interface-controls/demo27/README.md)
- [如何获得突出的边框按钮?](example/user-interface-controls/demo28/README.md)
## 响应事件
快捷方式,旋转方式和外观
- [如何使用 `scenePhase` 检测您的应用何时移至背景或前景?](example/responding-to-events/demo1/README.md)
- [如何响应查看生命周期事件:`onAppear()` 和 `onDisappear()` ?](example/responding-to-events/demo2/README.md)
- [如何使用 `keyboardShortcut()` 添加键盘快捷键?](example/responding-to-events/demo3/README.md)
- [如何控制应用启动时显示的视图?](example/responding-to-events/demo4/README.md)
- [应用启动时如何运行代码?](example/responding-to-events/demo5/README.md)
- [如何将 `AppDelegate` 添加到 SwiftUI 应用?](example/responding-to-events/demo6/README.md)
- [如何检测设备旋转?](example/responding-to-events/demo7/README.md)
- [如何在键盘上添加工具栏?](example/responding-to-events/demo8/README.md)
- [显示视图时如何运行异步任务?](example/responding-to-events/demo9/README.md)
## 点击和手势
滑动,轻击,摇动和其他输入
- [如何在视图中添加手势识别器?](example/taps-and-gestures/demo1/README.md)
- [如何阅读点击和双击手势?](example/taps-and-gestures/demo2/README.md)
- [如何使用 `highPriorityGesture()` 强制一个手势先识别另一个手势?](example/taps-and-gestures/demo3/README.md)
- [如何使用 `simultaneousGesture()` 同时识别两个手势?](example/taps-and-gestures/demo4/README.md)
- [如何使用 `sequenced(before:)` 创建手势链?](example/taps-and-gestures/demo5/README.md)
- [如何检测到用户将鼠标悬停在视图上?](example/taps-and-gestures/demo6/README.md)
- [如何检测摇动手势?](example/taps-and-gestures/demo7/README.md)
- [如何使用 `contentShape()` 控制视图的可点击区域?](example/taps-and-gestures/demo8/README.md)
- [如何使用 `allowsHitTesting()` 禁用视图的点击?](example/taps-and-gestures/demo9/README.md)
## 状态
响应交互并控制程序状态
- [`@ObservedObject`,`@State` 和 `@EnvironmentObject` 有什么区别?](example/advanced-state/demo1/README.md)
- [如何使用 `@StateObject` 创建和监视外部对象?](example/advanced-state/demo2/README.md)
- [如何使用 `@ObservedObject` 管理外部对象的状态?](example/advanced-state/demo3/README.md)
- [如何使用 `@EnvironmentObject` 在视图之间共享数据?](example/advanced-state/demo4/README.md)
- [如何使用 `objectWillChange` 手动发送状态更新?](example/advanced-state/demo5/README.md)
- [如何创建常量绑定?](example/advanced-state/demo6/README.md)
- [如何创建自定义绑定?](example/advanced-state/demo7/README.md)
- [如何在 `SwiftUI` 中使用计时器?](example/advanced-state/demo8/README.md)
- [当使用 `onChange()` 改变状态时如何运行一些代码?](example/advanced-state/demo9/README.md)
## 列表
创建数据滚动表
- [使用列表 `List`](example/lists/demo1/README.md)
- [如何创建静态物品列表?](example/lists/demo2/README.md)
- [如何创建动态项目列表?](example/lists/demo3/README.md)
- [如何让用户从列表中删除行?](example/lists/demo4/README.md)
- [如何让用户在列表中移动行?](example/lists/demo5/README.md)
- [如何将 `Section` 添加到列表?](example/lists/demo6/README.md)
- [如何使用 `EditButton` 启用对列表的编辑?](example/lists/demo7/README.md)
- [如何使用 `listRowBackground()` 设置列表行的背景色?](example/lists/demo8/README.md)
- [如何创建分组和插入分组列表?](example/lists/demo9/README.md)
- [如何创建扩展列表?](example/lists/demo10/README.md)
- [如何滚动到列表中的特定行?](example/lists/demo11/README.md)
- [如何允许列表中的行选择?](example/lists/demo12/README.md)
- [如何使用隐式堆栈?](example/lists/demo13/README.md)
## 表单
快速有效地获得用户输入
- [使用表单 `Form`](example/forms/demo1/README.md)
- [基本表格设计](example/forms/demo2/README.md)
- [将表格分为几个部分](example/forms/demo3/README.md)
- [表单选择器 `Pickers`](example/forms/demo4/README.md)
- [启用和禁用表单中的元素](example/forms/demo5/README.md)
- [显示和隐藏表单行](example/forms/demo6/README.md)
## 容器
将视图放置在导航控制器等中
- [使用容器](example/containers/demo1/README.md)
- [如何在导航视图中嵌入视图?](example/containers/demo2/README.md)
- [如何将栏项目添加到导航视图?](example/containers/demo3/README.md)
- [如何使用 `TabView` 将视图嵌入选项卡栏中?](example/containers/demo4/README.md)
- [如何使用 `tabViewStyle()` 创建内容的滚动页面?](example/containers/demo5/README.md)
- [如何将视图组合 `Group` 在一起?](example/containers/demo6/README.md)
- [如何隐藏和显示状态栏?](example/containers/demo7/README.md)
- [如何使用 `DisclosureGroup` 隐藏和显示内容?](example/containers/demo8/README.md)
- [如何创建工具栏并向其中添加按钮?](example/containers/demo9/README.md)
- [如何为 `iPadOS` 添加侧边栏?](example/containers/demo10/README.md)
- [如何隐藏和显示 `NavigationView` 侧边栏?](example/containers/demo11/README.md)
## 对话框和菜单
发生某些情况时显示模式通知
- [使用简介](example/alerts-and-menus/demo1/README.md)
- [如何显示 `alert`?](example/alerts-and-menus/demo2/README.md)
- [如何为 `alert` 按钮添加动作?](example/alerts-and-menus/demo3/README.md)
- [如何在单个视图中显示多个 `alert`?](example/alerts-and-menus/demo4/README.md)
- [如何显示动作面板?](example/alerts-and-menus/demo5/README.md)
- [如何显示上下文菜单?](example/alerts-and-menus/demo6/README.md)
- [如何使用 `appStoreOverlay()` 推荐另一个应用程序?](example/alerts-and-menus/demo7/README.md)
- [按下按钮时如何显示菜单?](example/alerts-and-menus/demo8/README.md)
- [如何让用户从菜单中选择选项?](example/alerts-and-menus/demo9/README.md)
- [如何更改 macOS 应用中主菜单?](example/alerts-and-menus/demo10/README.md)
- [如何添加偏好设置界面?](example/alerts-and-menus/demo11/README.md)
## 切换界面
将您的用户从一个视图移动到另一个视图
- [如何将新视图推送到 `NavigationView` 上?](example/presenting-views/demo1/README.md)
- [点击列表行时如何推送新视图?](example/presenting-views/demo2/README.md)
- [如何在 `SwiftUI` 中使用程序化导航?](example/presenting-views/demo3/README.md)
- [如何使用 `sheets` 呈现新视图?](example/presenting-views/demo4/README.md)
- [如何使视图自行关闭?](example/presenting-views/demo5/README.md)
- [如何显示弹出视图?](example/presenting-views/demo6/README.md)
## 转换视图
剪辑,大小,比例,旋转等
- [如何使用其偏移量调整视图的位置 `offset`?](example/transforming-views/demo1/README.md)
- [如何为视图周围的填充着色?](example/transforming-views/demo2/README.md)
- [如何堆叠修改器以创建更高级的效果?](example/transforming-views/demo3/README.md)
- [如何在视图周围绘制边框?](example/transforming-views/demo4/README.md)
- [如何在视图内绘制边框?](example/transforming-views/demo5/README.md)
- [如何创建行军蚂蚁边框动画效果?](example/transforming-views/demo6/README.md)
- [如何在视图周围绘制阴影?](example/transforming-views/demo7/README.md)
- [如何裁剪视图,以便仅部分可见?](example/transforming-views/demo8/README.md)
- [如何旋转视图?](example/transforming-views/demo9/README.md)
- [如何旋转 3D 视图?](example/transforming-views/demo10/README.md)
- [如何放大或缩小视图?](example/transforming-views/demo11/README.md)
- [如何圆角化一个视图?](example/transforming-views/demo12/README.md)
- [如何调整视图的不透明度?](example/transforming-views/demo13/README.md)
- [如何调整视图的强调色?](example/transforming-views/demo14/README.md)
- [如何用一个视图掩盖另一个视图?](example/transforming-views/demo15/README.md)
- [如何模糊视图?](example/transforming-views/demo16/README.md)
- [如何将视图融合在一起?](example/transforming-views/demo17/README.md)
- [如何通过着色,去饱和等来调整视图?](example/transforming-views/demo18/README.md)
- [使用 `ButtonStyle` 自定义按钮](example/transforming-views/demo19/README.md)
- [使用 `ProgressViewStyle` 自定义 `ProgressView`](example/transforming-views/demo20/README.md)
- [使用 `ToggleStyle` 自定义 `Toggle`](example/transforming-views/demo21/README.md)
- [如何更改 `List` `TextEditor` 等的背景色](example/transforming-views/demo22/README.md)
## 绘画
使用自定义形状控制渲染
- [SwiftUI 的内置形状](example/drawing/demo1/README.md)
- [如何绘制自定义路径?](example/drawing/demo2/README.md)
- [如何绘制多边形和星星?](example/drawing/demo3/README.md)
- [如何画一个棋盘?](example/drawing/demo4/README.md)
## 动画
通过运动使您的界面栩栩如生
- [如何创建基本动画?](example/animation/demo1/README.md)
- [如何制作弹簧动画?](example/animation/demo2/README.md)
- [如何为绑定值的变化制作动画?](example/animation/demo3/README.md)
- [如何创建显式动画?](example/animation/demo4/README.md)
- [如何延迟动画?](example/animation/demo5/README.md)
- [视图出现后如何立即启动动画?](example/animation/demo6/README.md)
- [如何在一个视图中应用多个动画?](example/animation/demo7/README.md)
- [如何使用 matchedGeometryEffect() 将动画从一个视图同步到另一个视图?](example/animation/demo8/README.md)
- [如何通过过渡添加和删除视图?](example/animation/demo9/README.md)
- [如何创建不对称过渡?](example/animation/demo10/README.md)
- [如何创建自定义过渡?](example/animation/demo11/README.md)
- [如何设置文字大小的动画?](example/animation/demo12/README.md)
- [如何用事务覆盖动画?](example/animation/demo13/README.md)
## 排版视图
使您的UI结构更易于理解
- [如何创建和组合自定义视图?](example/composing-views/demo1/README.md)
- [如何将文本视图结合在一起?](example/composing-views/demo2/README.md)
- [如何将视图存储为属性?](example/composing-views/demo3/README.md)
- [如何创建自定义修改程序?](example/composing-views/demo4/README.md)
- [如何为 `SwiftUI` 包装自定义 `UIView`?](example/composing-views/demo5/README.md)
- [如何为 `UIViewRepresentable` 结构创建修饰符?](example/composing-views/demo6/README.md)
- [如何将图像插入文本?](example/composing-views/demo7/README.md)
## 跨平台 SwiftUI
学习让您的应用在任何地方都看起来很棒
- [学习一次,随处应用](example/cross-platform/demo1/README.md)
- [如何在 `macOS` 上获取半透明列表?](example/cross-platform/demo2/README.md)
- [如何在 `watchOS` 上制作轮播列表?](example/cross-platform/demo3/README.md)
- [如何使用 `digitalCrownRotation()` 在 `watchOS` 上读取 `Digital Crown`?](example/cross-platform/demo4/README.md)
## 数据
通过 `Core Data` 集成和更多功能处理数据
- [在 `SwiftUI` 中使用 `Core Data` 的简介](example/data/demo1/README.md)
- [如何配置核心数据以与 `SwiftUI` 一起使用?](example/data/demo2/README.md)
- [如何从 `SwiftUI` 视图访问 `Core Data` 管理的对象上下文?](example/data/demo3/README.md)
- [如何使用 `@FetchRequest` 创建核心数据获取请求?](example/data/demo4/README.md)
- [如何使用 `predicate` 过滤核心数据获取请求?](example/data/demo5/README.md)
- [如何从 `SwiftUI` 视图添加 `Core Data` 对象?](example/data/demo6/README.md)
- [如何从 `SwiftUI` 视图中删除 `Core Data` 对象?](example/data/demo7/README.md)
- [如何限制获取请求中的项目数?](example/data/demo8/README.md)
- [如何使用 `FileDocument` 和 `DocumentGroup` 创建基于文档的应用程序?](example/data/demo9/README.md)
- [如何使用 `fileExporter()` 导出文件?](example/data/demo10/README.md)
- [如何在 `SwiftUI` 中继续 `NSUserActivity`?](example/data/demo11/README.md)
- [如何使用 `LocationButton` 读取用户的位置?](example/data/demo12/README.md)
## 辅助功能
如何使每个人都能使用您的应用
- [SwiftUI 的可访问性简介](example/accessibility/demo1/README.md)
- [如何使用带有自定义字体的动态类型?](example/accessibility/demo2/README.md)
- [如何检测“减少运动”辅助功能设置?](example/accessibility/demo3/README.md)
- [如何检测暗模式?](example/accessibility/demo4/README.md)
- [如何使用装饰性图像减少屏幕阅读器的混乱?](example/accessibility/demo5/README.md)
- [如何在请求时减少动画?](example/accessibility/demo6/README.md)
## 工具
使用Xcode的帮助构建更好的应用程序
- [如何以不同的动态类型大小预览布局?](example/tooling/demo1/README.md)
- [如何在亮(light)和黑暗(dark)模式下预览布局?](example/tooling/demo2/README.md)
- [如何在不同的设备中预览布局?](example/tooling/demo3/README.md)
- [如何在导航视图中预览布局?](example/tooling/demo4/README.md)
- [如何使用 `Instruments` 来配置您的 SwiftUI 代码并识 `identify` 布局?](example/tooling/demo5/README.md)
- [如何在 `SwiftUI` 中使用 `Touch ID` 和 `Face ID`?](example/tooling/demo6/README.md)
- [如何在 Xcode 中添加创建 `Swift` 包依赖?](example/tooling/demo7/README.md)
- [如何以纵向或横向预览布局?](example/tooling/demo8/README.md)
- [如何查找导致 SwiftUI 视图更新的数据更改?](example/tooling/demo9/README.md)
## 附录A
如何使用每个 SwiftUI 属性包装器
- [了解 Swift 和 SwiftUI 中的属性包装器](example/appendix-a/demo1/README.md)
- [所有 SwiftUI 属性包装器都进行了解释和比较](example/appendix-a/demo2/README.md)
- [什么是 `@State` 属性包装器?](example/appendix-a/demo3/README.md)
- [什么是 `@StateObject` 属性包装器?](example/appendix-a/demo4/README.md)
- [什么是 `@Published` 属性包装器?](example/appendix-a/demo5/README.md)
- [什么是 `@ObservedObject` 属性包装器?](example/appendix-a/demo6/README.md)
- [什么是 `@EnvironmentObject` 属性包装器?](example/appendix-a/demo7/README.md)
- [什么是 `@Environment` 属性包装器?](example/appendix-a/demo8/README.md)
- [什么是 `@Binding` 属性包装器?](example/appendix-a/demo9/README.md)
- [什么是 `@GestureState` 属性包装器?](example/appendix-a/demo10/README.md)
- [什么是 `@FetchRequest` 属性包装器?](example/appendix-a/demo11/README.md)
- [什么是 `@AppStorage` 属性包装器?](example/appendix-a/demo12/README.md)
- [什么是 `@SceneStorage` 属性包装器?](example/appendix-a/demo13/README.md)
- [什么是 `@ScaledMetric` 属性包装器?](example/appendix-a/demo14/README.md)
- [什么是 `@UIApplicationDelegateAdaptor` 属性包装器?](example/appendix-a/demo15/README.md)
## 工具推荐
- [Swift 语法入门](https://github.com/jaywcjlove/swift-tutorial)
- [Swift 包索引](https://swiftpackageindex.com/)
- [hackingwithswift.com](https://www.hackingwithswift.com/quick-start/swiftui)
## 贡献者
一如既往,感谢我们出色的贡献者!
<a href="https://github.com/jaywcjlove/swiftui-example/graphs/contributors">
<img src="https://jaywcjlove.github.io/swiftui-example/CONTRIBUTORS.svg" />
</a>
使用 [action-contributors](https://github.com/jaywcjlove/github-action-contributors) 制作。
## License
Licensed under the MIT License.
================================================
FILE: example/accessibility/demo1/README.md
================================================
SwiftUI 的可访问性简介
===
默认情况下,SwiftUI 应用程序具有极高的可访问性,这绝非偶然-它是从最早计划到框架中的,除非您积极选择使用默认值,否则您会发现自己的应用程序可以很好地完成无需您进行额外的工作就可以访问。
这种行为的关键是 SwiftUI 布局的基于堆栈的方法:一切都有自然的顺序,因为我们将事物放置在 `HStack` 和 `VStack` 中,因此系统可以大致了解布局应该如何流动。相比之下,`UIKit` 和“自动布局”使我们可以将物品放置在任何地方,因此系统必须有效地猜测应该如何订购物品。
SwiftUI 还强烈建议我们在所有交互式控件中添加标签,明确说明所有内容。是的,我们可以隐藏这些标签,但是即使隐藏了这些标签,系统仍会将它们用作屏幕阅读器等的音频提示。
因此,SwiftUI 为我们免费提供了许多可访问性。但是,它仍然为我们提供了额外的工具来提供更好的体验:屏幕阅读器应如何阅读内容?是否需要阅读所有内容?如果用户不喜欢没有奇特的动画怎么办?
在本章集合中,我们将介绍这些更高级的功能,希望可以帮助您构建用户界面,无论用户的系统偏好如何,这些界面都可以为用户带来舒适的体验。
================================================
FILE: example/accessibility/demo2/Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
7DEA7CB72609B65C00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA42609B65B00EA5E6F /* DemoApp.swift */; };
7DEA7CB82609B65C00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA42609B65B00EA5E6F /* DemoApp.swift */; };
7DEA7CB92609B65C00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA52609B65B00EA5E6F /* ContentView.swift */; };
7DEA7CBA2609B65C00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA52609B65B00EA5E6F /* ContentView.swift */; };
7DEA7CBB2609B65C00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA62609B65C00EA5E6F /* Assets.xcassets */; };
7DEA7CBC2609B65C00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CA62609B65C00EA5E6F /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7DEA7CA42609B65B00EA5E6F /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
7DEA7CA52609B65B00EA5E6F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7DEA7CA62609B65C00EA5E6F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7DEA7CAB2609B65C00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7CAE2609B65C00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7CB32609B65C00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7CB52609B65C00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7CB62609B65C00EA5E6F /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7DEA7CA82609B65C00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CB02609B65C00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7DEA7C9E2609B65B00EA5E6F = {
isa = PBXGroup;
children = (
7DEA7CA32609B65B00EA5E6F /* Shared */,
7DEA7CAD2609B65C00EA5E6F /* iOS */,
7DEA7CB42609B65C00EA5E6F /* macOS */,
7DEA7CAC2609B65C00EA5E6F /* Products */,
);
sourceTree = "<group>";
};
7DEA7CA32609B65B00EA5E6F /* Shared */ = {
isa = PBXGroup;
children = (
7DEA7CA42609B65B00EA5E6F /* DemoApp.swift */,
7DEA7CA52609B65B00EA5E6F /* ContentView.swift */,
7DEA7CA62609B65C00EA5E6F /* Assets.xcassets */,
);
path = Shared;
sourceTree = "<group>";
};
7DEA7CAC2609B65C00EA5E6F /* Products */ = {
isa = PBXGroup;
children = (
7DEA7CAB2609B65C00EA5E6F /* Demo.app */,
7DEA7CB32609B65C00EA5E6F /* Demo.app */,
);
name = Products;
sourceTree = "<group>";
};
7DEA7CAD2609B65C00EA5E6F /* iOS */ = {
isa = PBXGroup;
children = (
7DEA7CAE2609B65C00EA5E6F /* Info.plist */,
);
path = iOS;
sourceTree = "<group>";
};
7DEA7CB42609B65C00EA5E6F /* macOS */ = {
isa = PBXGroup;
children = (
7DEA7CB52609B65C00EA5E6F /* Info.plist */,
7DEA7CB62609B65C00EA5E6F /* macOS.entitlements */,
);
path = macOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7DEA7CAA2609B65C00EA5E6F /* Demo (iOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7CBF2609B65C00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
buildPhases = (
7DEA7CA72609B65C00EA5E6F /* Sources */,
7DEA7CA82609B65C00EA5E6F /* Frameworks */,
7DEA7CA92609B65C00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (iOS)";
productName = "Demo (iOS)";
productReference = 7DEA7CAB2609B65C00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
7DEA7CB22609B65C00EA5E6F /* Demo (macOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7CC22609B65C00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */;
buildPhases = (
7DEA7CAF2609B65C00EA5E6F /* Sources */,
7DEA7CB02609B65C00EA5E6F /* Frameworks */,
7DEA7CB12609B65C00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (macOS)";
productName = "Demo (macOS)";
productReference = 7DEA7CB32609B65C00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7DEA7C9F2609B65B00EA5E6F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
TargetAttributes = {
7DEA7CAA2609B65C00EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
7DEA7CB22609B65C00EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
};
};
buildConfigurationList = 7DEA7CA22609B65B00EA5E6F /* Build configuration list for PBXProject "Demo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 7DEA7C9E2609B65B00EA5E6F;
productRefGroup = 7DEA7CAC2609B65C00EA5E6F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7DEA7CAA2609B65C00EA5E6F /* Demo (iOS) */,
7DEA7CB22609B65C00EA5E6F /* Demo (macOS) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7DEA7CA92609B65C00EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CBB2609B65C00EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CB12609B65C00EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CBC2609B65C00EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7DEA7CA72609B65C00EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CB92609B65C00EA5E6F /* ContentView.swift in Sources */,
7DEA7CB72609B65C00EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CAF2609B65C00EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CBA2609B65C00EA5E6F /* ContentView.swift in Sources */,
7DEA7CB82609B65C00EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
7DEA7CBD2609B65C00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
7DEA7CBE2609B65C00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
7DEA7CC02609B65C00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
7DEA7CC12609B65C00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7DEA7CC32609B65C00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
7DEA7CC42609B65C00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7DEA7CA22609B65B00EA5E6F /* Build configuration list for PBXProject "Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CBD2609B65C00EA5E6F /* Debug */,
7DEA7CBE2609B65C00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7CBF2609B65C00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CC02609B65C00EA5E6F /* Debug */,
7DEA7CC12609B65C00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7CC22609B65C00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CC32609B65C00EA5E6F /* Debug */,
7DEA7CC42609B65C00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 7DEA7C9F2609B65B00EA5E6F /* Project object */;
}
================================================
FILE: example/accessibility/demo2/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
================================================
FILE: example/accessibility/demo2/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo2/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json
================================================
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo2/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo2/Demo/Shared/Assets.xcassets/Contents.json
================================================
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo2/Demo/Shared/ContentView.swift
================================================
//
// ContentView.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
//@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
//struct ScaledFont: ViewModifier {
// @Environment(\.sizeCategory) var sizeCategory
// var name: String
// var size: CGFloat
//
// func body(content: Content) -> some View {
// let scaledSize = UIFontMetrics.default.scaledValue(for: size)
// return content.font(.custom(name, size: scaledSize))
// }
//}
//@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
//extension View {
// func scaledFont(name: String, size: CGFloat) -> some View {
// return self.modifier(ScaledFont(name: name, size: size))
// }
//}
@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
extension View {
func scaledFont(name: String, size: CGFloat) -> some View {
return self.modifier(ScaledFont(name: name, size: size))
}
}
struct ScaledFont: ViewModifier {
@Environment(\.sizeCategory) var sizeCategory
var name: String
var size: CGFloat
func body(content: Content) -> some View {
let scaledSize = UIFontMetrics.default.scaledValue(for: size)
return content.font(.custom(name, size: scaledSize))
}
}
struct ContentView: View {
var body: some View {
Text("Hello World")
Text("Hello World")
.scaledFont(name: "Georgia", size: 12)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
================================================
FILE: example/accessibility/demo2/Demo/Shared/DemoApp.swift
================================================
//
// DemoApp.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
================================================
FILE: example/accessibility/demo2/Demo/iOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchScreen</key>
<dict/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
================================================
FILE: example/accessibility/demo2/Demo/macOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
</dict>
</plist>
================================================
FILE: example/accessibility/demo2/Demo/macOS/macOS.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo2/README.md
================================================
如何使用带有自定义字体的动态类型?
===
如果您使用的是 `iOS 14` 或更高版本,则无需进一步处理,您的自定义字体就会自动缩放。 但是,如果您希望字体相对于特定的 `Dynamic Type` 字体缩放,则应使用 `relativeTo` 参数,如下所示:
```swift
Text("Scaling")
.font(.custom("Georgia", size: 24, relativeTo: .headline))
```
这将以 `24pt` 开始字体,但是它将相对于`Headline Dynamic Type`字体放大和缩小。
如果您需要定位 `iOS 13`,请继续阅读以下内容…
SwiftUI 支持所有 `Dynamic Type` 的字体大小,所有字体大小都使用 `.font()` 修饰符进行设置。 但是,如果您要求特定的字体和大小,则会发现文本不再根据用户的 `Dynamic Type` 设置自动缩放,而是保持固定。
要解决此问题,我们需要创建一个自定义 `ViewModifier`,它可以根据当前的辅助功能设置来缩放字体大小,并检测该设置何时更改。
我将首先为您提供代码,然后逐步介绍它的工作方式以及原因:
```swift
@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
struct ScaledFont: ViewModifier {
@Environment(\.sizeCategory) var sizeCategory
var name: String
var size: CGFloat
func body(content: Content) -> some View {
let scaledSize = UIFontMetrics.default.scaledValue(for: size)
return content.font(.custom(name, size: scaledSize))
}
}
@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
extension View {
func scaledFont(name: String, size: CGFloat) -> some View {
return self.modifier(ScaledFont(name: name, size: size))
}
}
```
这就是获取与动态类型一起使用的自定义字体所需的全部代码。 作为使用它的示例,下面是一个带有两个文本视图的列表,一个使用内置字体,另一个使用可缩放的佐治亚州字体:
```swift
struct ContentView: View {
var body: some View {
List {
Text("Hello World")
Text("Hello World")
.scaledFont(name: "Georgia", size: 12)
}
}
}
```
现在您已经了解了它的工作原理,让我们看一下它的工作原理。
首先,我们有以下自定义视图修饰符:
```swift
struct ScaledFont: ViewModifier {
@Environment(\.sizeCategory) var sizeCategory
var name: String
var size: CGFloat
func body(content: Content) -> some View {
let scaledSize = UIFontMetrics.default.scaledValue(for: size)
return content.font(.custom(name, size: scaledSize))
}
}
```
这将接受我们字体的名称和大小,然后使用 `UIFontMetrics` 将请求的字体放大到与用户当前设备设置匹配的字体,然后将其发送回去。
然后,将其包装在View的扩展中,以使其更易于使用:
```swift
@available(iOS 13, macCatalyst 13, tvOS 13, watchOS 6, *)
extension View {
func scaledFont(name: String, size: CGFloat) -> some View {
return self.modifier(ScaledFont(name: name, size: size))
}
}
```
所有的工作就是包装对自定义字体修饰符的调用,以使它在我们的视图中看起来更好–这意味着我们编写使用 `.scaledFont(name: "Georgia", size: 12)` 而不是 `.modifier(ScaledFont(name: "Georgia", size: 12))`。
现在,您可能想知道如果我们要做的只是传递数据,为什么我们需要自定义视图修饰符。 好吧,线索就在我们的视图修饰符的这一行中:
```swift
@Environment(\.sizeCategory) var sizeCategory
```
这就要求系统从环境中提供当前大小类别,从而确定将 `Dynamic Type` 设置为哪个级别。 诀窍是我们实际上并没有使用它-我们不在乎动态类型设置是什么,而是通过要求系统在更改时更新我们来同时运行我们的 `UIFontMetrics` 代码,从而导致我们的字体 正确缩放。
提示:`UIFontMetrics` 类在 `macOS` 上不可用,这就是为什么我添加了 `@available` 标记的原因。
================================================
FILE: example/accessibility/demo3/Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
7DEA7CE02609B89000EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCD2609B88F00EA5E6F /* DemoApp.swift */; };
7DEA7CE12609B89000EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCD2609B88F00EA5E6F /* DemoApp.swift */; };
7DEA7CE22609B89000EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCE2609B88F00EA5E6F /* ContentView.swift */; };
7DEA7CE32609B89000EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCE2609B88F00EA5E6F /* ContentView.swift */; };
7DEA7CE42609B89000EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCF2609B89000EA5E6F /* Assets.xcassets */; };
7DEA7CE52609B89000EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CCF2609B89000EA5E6F /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7DEA7CCD2609B88F00EA5E6F /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
7DEA7CCE2609B88F00EA5E6F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7DEA7CCF2609B89000EA5E6F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7DEA7CD42609B89000EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7CD72609B89000EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7CDC2609B89000EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7CDE2609B89000EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7CDF2609B89000EA5E6F /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7DEA7CD12609B89000EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CD92609B89000EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7DEA7CC72609B88F00EA5E6F = {
isa = PBXGroup;
children = (
7DEA7CCC2609B88F00EA5E6F /* Shared */,
7DEA7CD62609B89000EA5E6F /* iOS */,
7DEA7CDD2609B89000EA5E6F /* macOS */,
7DEA7CD52609B89000EA5E6F /* Products */,
);
sourceTree = "<group>";
};
7DEA7CCC2609B88F00EA5E6F /* Shared */ = {
isa = PBXGroup;
children = (
7DEA7CCD2609B88F00EA5E6F /* DemoApp.swift */,
7DEA7CCE2609B88F00EA5E6F /* ContentView.swift */,
7DEA7CCF2609B89000EA5E6F /* Assets.xcassets */,
);
path = Shared;
sourceTree = "<group>";
};
7DEA7CD52609B89000EA5E6F /* Products */ = {
isa = PBXGroup;
children = (
7DEA7CD42609B89000EA5E6F /* Demo.app */,
7DEA7CDC2609B89000EA5E6F /* Demo.app */,
);
name = Products;
sourceTree = "<group>";
};
7DEA7CD62609B89000EA5E6F /* iOS */ = {
isa = PBXGroup;
children = (
7DEA7CD72609B89000EA5E6F /* Info.plist */,
);
path = iOS;
sourceTree = "<group>";
};
7DEA7CDD2609B89000EA5E6F /* macOS */ = {
isa = PBXGroup;
children = (
7DEA7CDE2609B89000EA5E6F /* Info.plist */,
7DEA7CDF2609B89000EA5E6F /* macOS.entitlements */,
);
path = macOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7DEA7CD32609B89000EA5E6F /* Demo (iOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7CE82609B89000EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
buildPhases = (
7DEA7CD02609B89000EA5E6F /* Sources */,
7DEA7CD12609B89000EA5E6F /* Frameworks */,
7DEA7CD22609B89000EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (iOS)";
productName = "Demo (iOS)";
productReference = 7DEA7CD42609B89000EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
7DEA7CDB2609B89000EA5E6F /* Demo (macOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7CEB2609B89000EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */;
buildPhases = (
7DEA7CD82609B89000EA5E6F /* Sources */,
7DEA7CD92609B89000EA5E6F /* Frameworks */,
7DEA7CDA2609B89000EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (macOS)";
productName = "Demo (macOS)";
productReference = 7DEA7CDC2609B89000EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7DEA7CC82609B88F00EA5E6F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
TargetAttributes = {
7DEA7CD32609B89000EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
7DEA7CDB2609B89000EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
};
};
buildConfigurationList = 7DEA7CCB2609B88F00EA5E6F /* Build configuration list for PBXProject "Demo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 7DEA7CC72609B88F00EA5E6F;
productRefGroup = 7DEA7CD52609B89000EA5E6F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7DEA7CD32609B89000EA5E6F /* Demo (iOS) */,
7DEA7CDB2609B89000EA5E6F /* Demo (macOS) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7DEA7CD22609B89000EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CE42609B89000EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CDA2609B89000EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CE52609B89000EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7DEA7CD02609B89000EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CE22609B89000EA5E6F /* ContentView.swift in Sources */,
7DEA7CE02609B89000EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7CD82609B89000EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7CE32609B89000EA5E6F /* ContentView.swift in Sources */,
7DEA7CE12609B89000EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
7DEA7CE62609B89000EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
7DEA7CE72609B89000EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
7DEA7CE92609B89000EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
7DEA7CEA2609B89000EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7DEA7CEC2609B89000EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
7DEA7CED2609B89000EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7DEA7CCB2609B88F00EA5E6F /* Build configuration list for PBXProject "Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CE62609B89000EA5E6F /* Debug */,
7DEA7CE72609B89000EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7CE82609B89000EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CE92609B89000EA5E6F /* Debug */,
7DEA7CEA2609B89000EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7CEB2609B89000EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7CEC2609B89000EA5E6F /* Debug */,
7DEA7CED2609B89000EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 7DEA7CC82609B88F00EA5E6F /* Project object */;
}
================================================
FILE: example/accessibility/demo3/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
================================================
FILE: example/accessibility/demo3/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo3/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json
================================================
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo3/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo3/Demo/Shared/Assets.xcassets/Contents.json
================================================
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo3/Demo/Shared/ContentView.swift
================================================
//
// ContentView.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
struct ContentView: View {
@Environment(\.accessibilityReduceMotion) var reduceMotion
@State private var scale: CGFloat = 1
var body: some View {
VStack {
Spacer()
Circle()
.frame(width: 20, height: 20)
.scaleEffect(scale)
.animation(reduceMotion ? nil : .spring(response: 1, dampingFraction: 0.1))
Spacer()
Button("Increase Scale") {
scale *= 1.5
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
================================================
FILE: example/accessibility/demo3/Demo/Shared/DemoApp.swift
================================================
//
// DemoApp.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
================================================
FILE: example/accessibility/demo3/Demo/iOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchScreen</key>
<dict/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
================================================
FILE: example/accessibility/demo3/Demo/macOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
</dict>
</plist>
================================================
FILE: example/accessibility/demo3/Demo/macOS/macOS.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo3/README.md
================================================
如何检测“减少运动”辅助功能设置?
===
许多用户对动画敏感,尤其是那些大型或复杂的动画。 因此,iOS具有名为“减少运动”(Reduce Motion)的内置可访问性设置,应用可以根据需要对其进行读取和响应。
在 SwiftUI 中,此设置作为环境布尔值公开给我们,因此您应该首先在视图中添加一个属性:
```swift
@Environment(\.accessibilityReduceMotion) var reduceMotion
```
现在由您决定 “reduce motion” 的含义 – 是删除动画,还是只是将动画更改为强度较小? 您是否应该保留一些重要的动画,而只删除那些具有视觉吸引力的动画?
例如,如果您想为大多数用户提供弹性的弹簧动画,但对于希望减少运动的用户则根本不需要动画,则可以使用如下所示的动画修改器:
```swift
.animation(reduceMotion ? nil : .spring(response: 1, dampingFraction: 0.1))
```
这是一个完整的示例,您可以尝试:
```swift
struct ContentView: View {
@Environment(\.accessibilityReduceMotion) var reduceMotion
@State private var scale: CGFloat = 1
var body: some View {
VStack {
Spacer()
Circle()
.frame(width: 20, height: 20)
.scaleEffect(scale)
.animation(reduceMotion ? nil : .spring(response: 1, dampingFraction: 0.1))
Spacer()
Button("Increase Scale") {
scale *= 1.5
}
}
}
}
```
这将创建一个小矩形,每次按下该按钮时,将使用弹簧动画将其放大。 但是,如果用户启用了减少运动,则动画将被完全删除 – 它对 `animation()` 修饰符使用 `nil`。
================================================
FILE: example/accessibility/demo4/Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
7DEA7D092609B98D00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF62609B98C00EA5E6F /* DemoApp.swift */; };
7DEA7D0A2609B98D00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF62609B98C00EA5E6F /* DemoApp.swift */; };
7DEA7D0B2609B98D00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF72609B98C00EA5E6F /* ContentView.swift */; };
7DEA7D0C2609B98D00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF72609B98C00EA5E6F /* ContentView.swift */; };
7DEA7D0D2609B98D00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF82609B98D00EA5E6F /* Assets.xcassets */; };
7DEA7D0E2609B98D00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7CF82609B98D00EA5E6F /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7DEA7CF62609B98C00EA5E6F /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
7DEA7CF72609B98C00EA5E6F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7DEA7CF82609B98D00EA5E6F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7DEA7CFD2609B98D00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D002609B98D00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D052609B98D00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D072609B98D00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D082609B98D00EA5E6F /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7DEA7CFA2609B98D00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D022609B98D00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7DEA7CF02609B98C00EA5E6F = {
isa = PBXGroup;
children = (
7DEA7CF52609B98C00EA5E6F /* Shared */,
7DEA7CFF2609B98D00EA5E6F /* iOS */,
7DEA7D062609B98D00EA5E6F /* macOS */,
7DEA7CFE2609B98D00EA5E6F /* Products */,
);
sourceTree = "<group>";
};
7DEA7CF52609B98C00EA5E6F /* Shared */ = {
isa = PBXGroup;
children = (
7DEA7CF62609B98C00EA5E6F /* DemoApp.swift */,
7DEA7CF72609B98C00EA5E6F /* ContentView.swift */,
7DEA7CF82609B98D00EA5E6F /* Assets.xcassets */,
);
path = Shared;
sourceTree = "<group>";
};
7DEA7CFE2609B98D00EA5E6F /* Products */ = {
isa = PBXGroup;
children = (
7DEA7CFD2609B98D00EA5E6F /* Demo.app */,
7DEA7D052609B98D00EA5E6F /* Demo.app */,
);
name = Products;
sourceTree = "<group>";
};
7DEA7CFF2609B98D00EA5E6F /* iOS */ = {
isa = PBXGroup;
children = (
7DEA7D002609B98D00EA5E6F /* Info.plist */,
);
path = iOS;
sourceTree = "<group>";
};
7DEA7D062609B98D00EA5E6F /* macOS */ = {
isa = PBXGroup;
children = (
7DEA7D072609B98D00EA5E6F /* Info.plist */,
7DEA7D082609B98D00EA5E6F /* macOS.entitlements */,
);
path = macOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7DEA7CFC2609B98D00EA5E6F /* Demo (iOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D112609B98D00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
buildPhases = (
7DEA7CF92609B98D00EA5E6F /* Sources */,
7DEA7CFA2609B98D00EA5E6F /* Frameworks */,
7DEA7CFB2609B98D00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (iOS)";
productName = "Demo (iOS)";
productReference = 7DEA7CFD2609B98D00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
7DEA7D042609B98D00EA5E6F /* Demo (macOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D142609B98D00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */;
buildPhases = (
7DEA7D012609B98D00EA5E6F /* Sources */,
7DEA7D022609B98D00EA5E6F /* Frameworks */,
7DEA7D032609B98D00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (macOS)";
productName = "Demo (macOS)";
productReference = 7DEA7D052609B98D00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7DEA7CF12609B98C00EA5E6F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
TargetAttributes = {
7DEA7CFC2609B98D00EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
7DEA7D042609B98D00EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
};
};
buildConfigurationList = 7DEA7CF42609B98C00EA5E6F /* Build configuration list for PBXProject "Demo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 7DEA7CF02609B98C00EA5E6F;
productRefGroup = 7DEA7CFE2609B98D00EA5E6F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7DEA7CFC2609B98D00EA5E6F /* Demo (iOS) */,
7DEA7D042609B98D00EA5E6F /* Demo (macOS) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7DEA7CFB2609B98D00EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D0D2609B98D00EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D032609B98D00EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D0E2609B98D00EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7DEA7CF92609B98D00EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D0B2609B98D00EA5E6F /* ContentView.swift in Sources */,
7DEA7D092609B98D00EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D012609B98D00EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D0C2609B98D00EA5E6F /* ContentView.swift in Sources */,
7DEA7D0A2609B98D00EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
7DEA7D0F2609B98D00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
7DEA7D102609B98D00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
7DEA7D122609B98D00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
7DEA7D132609B98D00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7DEA7D152609B98D00EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
7DEA7D162609B98D00EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7DEA7CF42609B98C00EA5E6F /* Build configuration list for PBXProject "Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D0F2609B98D00EA5E6F /* Debug */,
7DEA7D102609B98D00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7D112609B98D00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D122609B98D00EA5E6F /* Debug */,
7DEA7D132609B98D00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7D142609B98D00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D152609B98D00EA5E6F /* Debug */,
7DEA7D162609B98D00EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 7DEA7CF12609B98C00EA5E6F /* Project object */;
}
================================================
FILE: example/accessibility/demo4/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
================================================
FILE: example/accessibility/demo4/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo4/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json
================================================
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo4/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo4/Demo/Shared/Assets.xcassets/Contents.json
================================================
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo4/Demo/Shared/ContentView.swift
================================================
//
// ContentView.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
Text(colorScheme == .dark ? "在暗模式下" : "在亮模式下")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
================================================
FILE: example/accessibility/demo4/Demo/Shared/DemoApp.swift
================================================
//
// DemoApp.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
================================================
FILE: example/accessibility/demo4/Demo/iOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchScreen</key>
<dict/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
================================================
FILE: example/accessibility/demo4/Demo/macOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
</dict>
</plist>
================================================
FILE: example/accessibility/demo4/Demo/macOS/macOS.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo4/README.md
================================================
如何检测暗模式?
===
SwiftUI 使我们能够使用 `colorScheme` 环境键来检测当前是否启用了暗模式或亮模式。 如果使用 `@Environment` 声明此内容,则可以在视图中引用它,并且在更改配色方案时将自动重新加载它们。
例如,根据当前的配色方案,这将打印“在暗模式下”或“在亮模式下”:
```swift
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
var body: some View {
Text(colorScheme == .dark ? "在暗模式下" : "在亮模式下")
}
}
```
通常,这仅应用于自定义绘图-如果要启用深色和浅色或深色和浅色图像,这些都可以使用资产目录来完成,并且在配色方案更改时也可以重新加载。
================================================
FILE: example/accessibility/demo5/Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
7DEA7D322609BA7300EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D1F2609BA7200EA5E6F /* DemoApp.swift */; };
7DEA7D332609BA7300EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D1F2609BA7200EA5E6F /* DemoApp.swift */; };
7DEA7D342609BA7300EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D202609BA7200EA5E6F /* ContentView.swift */; };
7DEA7D352609BA7300EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D202609BA7200EA5E6F /* ContentView.swift */; };
7DEA7D362609BA7300EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7D212609BA7300EA5E6F /* Assets.xcassets */; };
7DEA7D372609BA7300EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7D212609BA7300EA5E6F /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7DEA7D1F2609BA7200EA5E6F /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
7DEA7D202609BA7200EA5E6F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7DEA7D212609BA7300EA5E6F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7DEA7D262609BA7300EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D292609BA7300EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D2E2609BA7300EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D302609BA7300EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D312609BA7300EA5E6F /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7DEA7D232609BA7300EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D2B2609BA7300EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7DEA7D192609BA7200EA5E6F = {
isa = PBXGroup;
children = (
7DEA7D1E2609BA7200EA5E6F /* Shared */,
7DEA7D282609BA7300EA5E6F /* iOS */,
7DEA7D2F2609BA7300EA5E6F /* macOS */,
7DEA7D272609BA7300EA5E6F /* Products */,
);
sourceTree = "<group>";
};
7DEA7D1E2609BA7200EA5E6F /* Shared */ = {
isa = PBXGroup;
children = (
7DEA7D1F2609BA7200EA5E6F /* DemoApp.swift */,
7DEA7D202609BA7200EA5E6F /* ContentView.swift */,
7DEA7D212609BA7300EA5E6F /* Assets.xcassets */,
);
path = Shared;
sourceTree = "<group>";
};
7DEA7D272609BA7300EA5E6F /* Products */ = {
isa = PBXGroup;
children = (
7DEA7D262609BA7300EA5E6F /* Demo.app */,
7DEA7D2E2609BA7300EA5E6F /* Demo.app */,
);
name = Products;
sourceTree = "<group>";
};
7DEA7D282609BA7300EA5E6F /* iOS */ = {
isa = PBXGroup;
children = (
7DEA7D292609BA7300EA5E6F /* Info.plist */,
);
path = iOS;
sourceTree = "<group>";
};
7DEA7D2F2609BA7300EA5E6F /* macOS */ = {
isa = PBXGroup;
children = (
7DEA7D302609BA7300EA5E6F /* Info.plist */,
7DEA7D312609BA7300EA5E6F /* macOS.entitlements */,
);
path = macOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7DEA7D252609BA7300EA5E6F /* Demo (iOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D3A2609BA7300EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
buildPhases = (
7DEA7D222609BA7300EA5E6F /* Sources */,
7DEA7D232609BA7300EA5E6F /* Frameworks */,
7DEA7D242609BA7300EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (iOS)";
productName = "Demo (iOS)";
productReference = 7DEA7D262609BA7300EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
7DEA7D2D2609BA7300EA5E6F /* Demo (macOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D3D2609BA7300EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */;
buildPhases = (
7DEA7D2A2609BA7300EA5E6F /* Sources */,
7DEA7D2B2609BA7300EA5E6F /* Frameworks */,
7DEA7D2C2609BA7300EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (macOS)";
productName = "Demo (macOS)";
productReference = 7DEA7D2E2609BA7300EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7DEA7D1A2609BA7200EA5E6F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
TargetAttributes = {
7DEA7D252609BA7300EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
7DEA7D2D2609BA7300EA5E6F = {
CreatedOnToolsVersion = 12.4;
};
};
};
buildConfigurationList = 7DEA7D1D2609BA7200EA5E6F /* Build configuration list for PBXProject "Demo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 7DEA7D192609BA7200EA5E6F;
productRefGroup = 7DEA7D272609BA7300EA5E6F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7DEA7D252609BA7300EA5E6F /* Demo (iOS) */,
7DEA7D2D2609BA7300EA5E6F /* Demo (macOS) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7DEA7D242609BA7300EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D362609BA7300EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D2C2609BA7300EA5E6F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D372609BA7300EA5E6F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7DEA7D222609BA7300EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D342609BA7300EA5E6F /* ContentView.swift in Sources */,
7DEA7D322609BA7300EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D2A2609BA7300EA5E6F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7DEA7D352609BA7300EA5E6F /* ContentView.swift in Sources */,
7DEA7D332609BA7300EA5E6F /* DemoApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
7DEA7D382609BA7300EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
7DEA7D392609BA7300EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
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";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
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;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
7DEA7D3B2609BA7300EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
7DEA7D3C2609BA7300EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = iOS/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7DEA7D3E2609BA7300EA5E6F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
7DEA7D3F2609BA7300EA5E6F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = 968DSZ49MT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
INFOPLIST_FILE = macOS/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
PRODUCT_BUNDLE_IDENTIFIER = demo.Demo;
PRODUCT_NAME = Demo;
SDKROOT = macosx;
SWIFT_VERSION = 5.0;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7DEA7D1D2609BA7200EA5E6F /* Build configuration list for PBXProject "Demo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D382609BA7300EA5E6F /* Debug */,
7DEA7D392609BA7300EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7D3A2609BA7300EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D3B2609BA7300EA5E6F /* Debug */,
7DEA7D3C2609BA7300EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7DEA7D3D2609BA7300EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7DEA7D3E2609BA7300EA5E6F /* Debug */,
7DEA7D3F2609BA7300EA5E6F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 7DEA7D1A2609BA7200EA5E6F /* Project object */;
}
================================================
FILE: example/accessibility/demo5/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>
================================================
FILE: example/accessibility/demo5/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo5/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json
================================================
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo5/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
},
{
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
},
{
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo5/Demo/Shared/Assets.xcassets/Contents.json
================================================
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo5/Demo/Shared/Assets.xcassets/star.imageset/Contents.json
================================================
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "a.jpg",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
================================================
FILE: example/accessibility/demo5/Demo/Shared/ContentView.swift
================================================
//
// ContentView.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
struct ContentView: View {
var body: some View {
Image(decorative: "star")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
================================================
FILE: example/accessibility/demo5/Demo/Shared/DemoApp.swift
================================================
//
// DemoApp.swift
// Shared
//
// Created by 王楚江 on 2021/3/23.
//
import SwiftUI
@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
================================================
FILE: example/accessibility/demo5/Demo/iOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
</dict>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchScreen</key>
<dict/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
================================================
FILE: example/accessibility/demo5/Demo/macOS/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
</dict>
</plist>
================================================
FILE: example/accessibility/demo5/Demo/macOS/macOS.entitlements
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>
================================================
FILE: example/accessibility/demo5/README.md
================================================
如何使用装饰性图像减少屏幕阅读器的混乱?
===
SwiftUI 会自动使用图像名称作为屏幕阅读器标签,如果您使用的图像名称为 “Paul Hudson的照片” 或 “带有Swift徽标的图片”,这将很有用。 但是,某些图像并非仅仅是为了装饰而已被阅读 - 它们不会传达屏幕上其他地方还没有的信息,或者只是传达信息,以使用户界面看起来更具吸引力。
如果您使用 `Image("star")` 之类的图片创建这些图像,则屏幕阅读器会将其作为标准UI传递的一部分读出。一个更好的主意是使用 `Image(decorative:)` 初始化程序创建它们,该初始化程序告诉 SwiftUI 该图像不应暴露于屏幕阅读器:
```swift
Image(decorative: "star")
```
建立用户界面后,值得使用 `VoiceOver` 进行最后检查,以确保您正确标记了图像 - 最后,您需要的是屏幕阅读器说出您认为仅在代码中使用过的奇怪的内部文件名 !
================================================
FILE: example/accessibility/demo6/Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
7DEA7D5B2609BBAD00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D482609BBAC00EA5E6F /* DemoApp.swift */; };
7DEA7D5C2609BBAD00EA5E6F /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D482609BBAC00EA5E6F /* DemoApp.swift */; };
7DEA7D5D2609BBAD00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D492609BBAC00EA5E6F /* ContentView.swift */; };
7DEA7D5E2609BBAD00EA5E6F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DEA7D492609BBAC00EA5E6F /* ContentView.swift */; };
7DEA7D5F2609BBAD00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7D4A2609BBAD00EA5E6F /* Assets.xcassets */; };
7DEA7D602609BBAD00EA5E6F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7DEA7D4A2609BBAD00EA5E6F /* Assets.xcassets */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7DEA7D482609BBAC00EA5E6F /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
7DEA7D492609BBAC00EA5E6F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
7DEA7D4A2609BBAD00EA5E6F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7DEA7D4F2609BBAD00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D522609BBAD00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D572609BBAD00EA5E6F /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
7DEA7D592609BBAD00EA5E6F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
7DEA7D5A2609BBAD00EA5E6F /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7DEA7D4C2609BBAD00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
7DEA7D542609BBAD00EA5E6F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7DEA7D422609BBAC00EA5E6F = {
isa = PBXGroup;
children = (
7DEA7D472609BBAC00EA5E6F /* Shared */,
7DEA7D512609BBAD00EA5E6F /* iOS */,
7DEA7D582609BBAD00EA5E6F /* macOS */,
7DEA7D502609BBAD00EA5E6F /* Products */,
);
sourceTree = "<group>";
};
7DEA7D472609BBAC00EA5E6F /* Shared */ = {
isa = PBXGroup;
children = (
7DEA7D482609BBAC00EA5E6F /* DemoApp.swift */,
7DEA7D492609BBAC00EA5E6F /* ContentView.swift */,
7DEA7D4A2609BBAD00EA5E6F /* Assets.xcassets */,
);
path = Shared;
sourceTree = "<group>";
};
7DEA7D502609BBAD00EA5E6F /* Products */ = {
isa = PBXGroup;
children = (
7DEA7D4F2609BBAD00EA5E6F /* Demo.app */,
7DEA7D572609BBAD00EA5E6F /* Demo.app */,
);
name = Products;
sourceTree = "<group>";
};
7DEA7D512609BBAD00EA5E6F /* iOS */ = {
isa = PBXGroup;
children = (
7DEA7D522609BBAD00EA5E6F /* Info.plist */,
);
path = iOS;
sourceTree = "<group>";
};
7DEA7D582609BBAD00EA5E6F /* macOS */ = {
isa = PBXGroup;
children = (
7DEA7D592609BBAD00EA5E6F /* Info.plist */,
7DEA7D5A2609BBAD00EA5E6F /* macOS.entitlements */,
);
path = macOS;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7DEA7D4E2609BBAD00EA5E6F /* Demo (iOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D632609BBAD00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
buildPhases = (
7DEA7D4B2609BBAD00EA5E6F /* Sources */,
7DEA7D4C2609BBAD00EA5E6F /* Frameworks */,
7DEA7D4D2609BBAD00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (iOS)";
productName = "Demo (iOS)";
productReference = 7DEA7D4F2609BBAD00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
7DEA7D562609BBAD00EA5E6F /* Demo (macOS) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7DEA7D662609BBAD00EA5E6F /* Build configuration list for PBXNativeTarget "Demo (macOS)" */;
buildPhases = (
7DEA7D532609BBAD00EA5E6F /* Sources */,
7DEA7D542609BBAD00EA5E6F /* Frameworks */,
7DEA7D552609BBAD00EA5E6F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Demo (macOS)";
productName = "Demo (macOS)";
productReference = 7DEA7D572609BBAD00EA5E6F /* Demo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7DEA7D432609BBAC00EA5E6F /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1
Showing preview only (301K chars total). Download the full file or copy to clipboard to get everything.
gitextract_gzhkv01i/ ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── ci.yml ├── .gitignore ├── .idoc/ │ └── .filesStat.json ├── LICENSE ├── README.md ├── example/ │ ├── accessibility/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── star.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo6/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── advanced-state/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── alerts-and-menus/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Credits.rtf │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── SettingsView.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── animation/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── appendix-a/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── niagara-falls.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo14/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo15/ │ │ │ └── README.md │ │ ├── demo2/ │ │ │ └── README.md │ │ ├── demo3/ │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ └── README.md │ │ ├── demo6/ │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── cheat-sheet.md │ ├── composing-views/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── kenny.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo7/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── containers/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── PostNoSelectionPlaceholder.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── cross-platform/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo WatchKit App/ │ │ │ │ │ └── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Demo WatchKit Extension/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── Complication.complicationset/ │ │ │ │ │ │ │ ├── Circular.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ ├── Extra Large.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Graphic Bezel.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Graphic Circular.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Graphic Corner.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Graphic Extra Large.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Graphic Large Rectangular.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── Modular.imageset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ └── Utilitarian.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ComplicationController.swift │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── NotificationController.swift │ │ │ │ │ ├── NotificationView.swift │ │ │ │ │ ├── Preview Content/ │ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── PushNotificationPayload.apns │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── Demo WatchKit App (Complication).xcscheme │ │ │ │ ├── Demo WatchKit App (Notification).xcscheme │ │ │ │ └── Demo WatchKit App.xcscheme │ │ │ └── README.md │ │ └── demo4/ │ │ ├── Demo/ │ │ │ ├── Demo WatchKit App/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ └── Info.plist │ │ │ ├── Demo WatchKit Extension/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── Complication.complicationset/ │ │ │ │ │ │ ├── Circular.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── Extra Large.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Graphic Bezel.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Graphic Circular.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Graphic Corner.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Graphic Extra Large.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Graphic Large Rectangular.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Modular.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Utilitarian.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ComplicationController.swift │ │ │ │ ├── ContentView.swift │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ ├── NotificationController.swift │ │ │ │ ├── NotificationView.swift │ │ │ │ ├── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── PushNotificationPayload.apns │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── data/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── TextFile.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Main.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── Model.xcdatamodeld/ │ │ │ │ │ │ └── Model.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.xcdatamodeld/ │ │ │ │ │ │ ├── .xccurrentversion │ │ │ │ │ │ └── Shared.xcdatamodel/ │ │ │ │ │ │ └── contents │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Persistence.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── DemoApp.swift │ │ │ │ └── TextFile.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── drawing/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo4/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── forms/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo6/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── images-shapes-media/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── dog.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ └── macOS/ │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo14/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── rome.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── logo.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── singapore.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── introduction/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── Demo.xcscheme │ │ │ └── README.md │ │ └── demo2/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── lists/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── paul-hudson.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── presenting-views/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo6/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── quick-start/ │ │ ├── answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md │ │ ├── dedication.md │ │ ├── dont-panic.md │ │ ├── frequently-asked-questions-about-swiftui.md │ │ ├── how-to-follow-this-quick-start-guide.md │ │ ├── migrating-from-uikit-to-swiftui.md │ │ ├── swiftui-vs-interface-builder-and-storyboards.md │ │ ├── what-is-swiftui.md │ │ └── whats-in-the-basic-template.md │ ├── responding-to-events/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── Demo.xcscheme │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── DemoApp.swift │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── Demo2/ │ │ │ ├── Demo2/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo2App.swift │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo2.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── stacks-grids-scrollviews/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo14/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo15/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── singapore.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ └── macOS/ │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── niagara-falls.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.entitlements │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── taps-and-gestures/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── ireland.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── singapore.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── tooling/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── MySamplePackage/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .swiftpm/ │ │ │ │ │ └── xcode/ │ │ │ │ │ └── package.xcworkspace/ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Package.swift │ │ │ │ ├── README.md │ │ │ │ ├── Sources/ │ │ │ │ │ └── MySamplePackage/ │ │ │ │ │ └── MySamplePackage.swift │ │ │ │ └── Tests/ │ │ │ │ └── MySamplePackageTests/ │ │ │ │ └── MySamplePackageTests.swift │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── DemoApp.swift │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── transforming-views/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo14/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo15/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── laser-show.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo16/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── dog.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo17/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo18/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── cat.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo19/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo20/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo21/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo22/ │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo5/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Demo.entitlements │ │ │ │ ├── DemoApp.swift │ │ │ │ ├── Info.plist │ │ │ │ └── Preview Content/ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ └── Contents.json │ │ │ └── Demo.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ └── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── README.md │ ├── user-interface-controls/ │ │ ├── demo1/ │ │ │ └── README.md │ │ ├── demo10/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo11/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo12/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo13/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo14/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo15/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo16/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo17/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo18/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo19/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── sunset.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo20/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo21/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo22/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo23/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo24/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo25/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo26/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ └── macOS/ │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo27/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ └── macOS/ │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo28/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ └── macOS/ │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── logo.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo4/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo5/ │ │ │ └── README.md │ │ ├── demo6/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo7/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ ├── demo8/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── Shared/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ └── DemoApp.swift │ │ │ │ ├── iOS/ │ │ │ │ │ └── Info.plist │ │ │ │ └── macOS/ │ │ │ │ ├── Info.plist │ │ │ │ └── macOS.entitlements │ │ │ └── README.md │ │ └── demo9/ │ │ ├── Demo/ │ │ │ ├── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Shared/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ └── DemoApp.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ └── README.md │ ├── view-layout/ │ │ ├── demo1/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo2/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentView.swift │ │ │ │ │ ├── Demo.entitlements │ │ │ │ │ ├── DemoApp.swift │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── Preview Content/ │ │ │ │ │ └── Preview Assets.xcassets/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Demo.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── README.md │ │ ├── demo3/ │ │ │ ├── Demo/ │ │ │ │ ├── Demo/ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── ContentVie
Condensed preview — 2852 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,113K chars).
[
{
"path": ".gitattributes",
"chars": 30,
"preview": "*.md linguist-detectable=true\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 156,
"preview": "github: [jaywcjlove]\nko_fi: jaywcjlove\nbuy_me_a_coffee: jaywcjlove\ncustom: [\"https://www.paypal.me/kennyiseeyou\", \"https"
},
{
"path": ".github/workflows/ci.yml",
"chars": 2116,
"preview": "name: CI\non:\n push:\n branches:\n - main\n\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: acti"
},
{
"path": ".gitignore",
"chars": 2218,
"preview": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n"
},
{
"path": ".idoc/.filesStat.json",
"chars": 56222,
"preview": "{\n \"example/quick-start/answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md\": {\n \"atime\": \"2021-11-"
},
{
"path": "LICENSE",
"chars": 1062,
"preview": "MIT License\n\nCopyright (c) 2021 小弟调调™\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof t"
},
{
"path": "README.md",
"chars": 27687,
"preview": "<div markdown=\"1\">\n <sup align=\"center\">Using <a href=\"https://wangchujiang.com/#/app\" target=\"_blank\">my app</a> is al"
},
{
"path": "example/accessibility/demo1/README.md",
"chars": 515,
"preview": "SwiftUI 的可访问性简介\n===\n\n默认情况下,SwiftUI 应用程序具有极高的可访问性,这绝非偶然-它是从最早计划到框架中的,除非您积极选择使用默认值,否则您会发现自己的应用程序可以很好地完成无需您进行额外的工作就可以访问。\n\n这"
},
{
"path": "example/accessibility/demo2/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 15800,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/accessibility/demo2/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/accessibility/demo2/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo2/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/accessibility/demo2/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/accessibility/demo2/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/accessibility/demo2/Demo/Shared/ContentView.swift",
"chars": 1522,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n//@available(iOS 13, macCata"
},
{
"path": "example/accessibility/demo2/Demo/Shared/DemoApp.swift",
"chars": 209,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/accessibility/demo2/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo2/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo2/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo2/README.md",
"chars": 2612,
"preview": "如何使用带有自定义字体的动态类型?\n===\n\n如果您使用的是 `iOS 14` 或更高版本,则无需进一步处理,您的自定义字体就会自动缩放。 但是,如果您希望字体相对于特定的 `Dynamic Type` 字体缩放,则应使用 `relativ"
},
{
"path": "example/accessibility/demo3/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 15800,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/accessibility/demo3/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/accessibility/demo3/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo3/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/accessibility/demo3/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/accessibility/demo3/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/accessibility/demo3/Demo/Shared/ContentView.swift",
"chars": 723,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/accessibility/demo3/Demo/Shared/DemoApp.swift",
"chars": 209,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/accessibility/demo3/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo3/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo3/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo3/README.md",
"chars": 1105,
"preview": "如何检测“减少运动”辅助功能设置?\n===\n\n许多用户对动画敏感,尤其是那些大型或复杂的动画。 因此,iOS具有名为“减少运动”(Reduce Motion)的内置可访问性设置,应用可以根据需要对其进行读取和响应。\n\n在 SwiftUI 中"
},
{
"path": "example/accessibility/demo4/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 15800,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/accessibility/demo4/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/accessibility/demo4/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo4/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/accessibility/demo4/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/accessibility/demo4/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/accessibility/demo4/Demo/Shared/ContentView.swift",
"chars": 372,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/accessibility/demo4/Demo/Shared/DemoApp.swift",
"chars": 209,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/accessibility/demo4/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo4/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo4/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo4/README.md",
"chars": 405,
"preview": "如何检测暗模式?\n===\n\nSwiftUI 使我们能够使用 `colorScheme` 环境键来检测当前是否启用了暗模式或亮模式。 如果使用 `@Environment` 声明此内容,则可以在视图中引用它,并且在更改配色方案时将自动重新加载"
},
{
"path": "example/accessibility/demo5/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 15800,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/accessibility/demo5/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/accessibility/demo5/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo5/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/accessibility/demo5/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/accessibility/demo5/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/accessibility/demo5/Demo/Shared/Assets.xcassets/star.imageset/Contents.json",
"chars": 299,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"filename\" : \"a.jpg\",\n "
},
{
"path": "example/accessibility/demo5/Demo/Shared/ContentView.swift",
"chars": 302,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/accessibility/demo5/Demo/Shared/DemoApp.swift",
"chars": 209,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/accessibility/demo5/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo5/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo5/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo5/README.md",
"chars": 432,
"preview": "如何使用装饰性图像减少屏幕阅读器的混乱?\n===\n\nSwiftUI 会自动使用图像名称作为屏幕阅读器标签,如果您使用的图像名称为 “Paul Hudson的照片” 或 “带有Swift徽标的图片”,这将很有用。 但是,某些图像并非仅仅是为了"
},
{
"path": "example/accessibility/demo6/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 15800,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/accessibility/demo6/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/accessibility/demo6/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo6/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/accessibility/demo6/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/accessibility/demo6/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/accessibility/demo6/Demo/Shared/ContentView.swift",
"chars": 799,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/accessibility/demo6/Demo/Shared/DemoApp.swift",
"chars": 209,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/23.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/accessibility/demo6/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo6/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo6/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/accessibility/demo6/README.md",
"chars": 946,
"preview": "如何在请求时减少动画?\n===\n\nSwiftUI 的 `withAnimation()` 函数可让我们轻松地在视图上执行自定义动画,但它不遵守 “Reduce Motion” 可访问性设置,因此可能会使您的应用难以为许多人使用。\n\n如果您还"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/ContentView.swift",
"chars": 403,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo1/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo1/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo1/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo1/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo1/README.md",
"chars": 2666,
"preview": "`@ObservedObject`,`@State` 和 `@EnvironmentObject` 有什么区别?\n===\n\n在任何现代应用中,状态都是不可避免的,但是使用 `SwiftUI` 时要记住,我们所有的视图只是其状态的简单功能-我"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/ContentView.swift",
"chars": 662,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nclass Player: ObservableObject"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo2/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo2/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo2/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo2/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo2/README.md",
"chars": 1072,
"preview": "如何使用 `@StateObject` 创建和监视外部对象?\n===\n\n`SwiftUI` 的 `@StateObject` 属性包装器是 `@ObservedObject` 的一种特殊形式,具有所有相同的功能,但还有一个重要的附加功能:它"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/ContentView.swift",
"chars": 711,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nclass UserProgress: Observable"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo3/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo3/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo3/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo3/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo3/README.md",
"chars": 1470,
"preview": "如何使用 `@ObservedObject` 管理外部对象的状态?\n===\n\n使用观察对象时,我们需要处理三个关键事项:`ObservableObject` 协议与某种可以存储数据的类一起使用,`@ObservedObject` 属性包装器"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/ContentView.swift",
"chars": 1002,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n// 我们的可观察对象类\nclass GameSetting"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo4/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo4/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo4/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo4/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo4/README.md",
"chars": 2443,
"preview": "如何使用 `@EnvironmentObject` 在视图之间共享数据?\n===\n\n对于应与应用程序中的许多视图共享的数据,`SwiftUI` 为我们提供了 `@EnvironmentObject` 属性包装器。 这样一来,我们就可以在需要"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/ContentView.swift",
"chars": 682,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n// 创建一个可观察的对象类,它宣布\n// 更改为其唯一属性"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo5/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo5/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo5/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo5/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo5/README.md",
"chars": 1103,
"preview": "如何使用 `objectWillChange` 手动发送状态更新?\n===\n\n尽管使用 `@Published` 是控制状态更新的最简单方法,但是如果需要特定的操作,也可以手动执行。例如,您可能只希望对给定的值感到满意才刷新视图。\n\n所有可"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/ContentView.swift",
"chars": 380,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo6/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo6/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo6/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo6/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo6/README.md",
"chars": 427,
"preview": "如何创建常量绑定?\n===\n\n当您在制作一些UI原型时,或者只需要传递一个值以使 SwiftUI 预览有意义地显示时,您会发现使用常量绑定会有所帮助:不变的硬编码值,但是可以 仍然像常规绑定一样使用,因此您的代码可以正常工作。\n\n例如,如果"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/ContentView.swift",
"chars": 1106,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo7/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo7/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo7/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo7/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo7/README.md",
"chars": 1739,
"preview": "如何创建自定义绑定?\n===\n\n当我们使用 `SwiftUI` 的 `@State` 属性包装器时,它代表我们进行了大量工作,以允许用户界面控件进行双向绑定。 但是,我们也可以使用 `Binding` 类型手动创建绑定,该类型可以与自定义 "
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo8/Demo/Demo/ContentView.swift",
"chars": 616,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo8/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo8/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo8/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo8/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo8/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo8/README.md",
"chars": 1155,
"preview": "如何在 SwiftUI 中使用计时器?\n===\n\n如果要定期运行某些代码(例如制作倒数计时器或类似的计时器),则应使用 `Timer` 和 `onReceive()` 修饰符。\n\n例如,此代码创建一个计时器发布程序,该计时器每秒触发一次,并"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 904,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"mac\",\n \"scale\" : \"1x\",\n \"size\" : \"16x16\"\n },\n {\n \"idiom\" : "
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/ContentView.swift",
"chars": 848,
"preview": "//\n// ContentView.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\nextension Binding {\n func o"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Demo.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/DemoApp.swift",
"chars": 207,
"preview": "//\n// DemoApp.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/16.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n va"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Info.plist",
"chars": 808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo9/Demo/Demo/Preview Content/Preview Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/advanced-state/demo9/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 12318,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/advanced-state/demo9/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/advanced-state/demo9/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/advanced-state/demo9/README.md",
"chars": 1257,
"preview": "当使用 `onChange()` 改变状态时如何运行一些代码?\n===\n\nSwiftUI 允许我们将 `onChange()` 修饰符附加到任何视图,当程序中的某些状态发生更改时,该修饰符将运行我们选择的代码。 这很重要,因为我们不能总是将"
},
{
"path": "example/alerts-and-menus/demo1/README.md",
"chars": 400,
"preview": "使用简介\n===\n\nSwiftUI 的声明式编程方法意味着我们不会像在 `UIKit` 中那样创建和呈现警报和操作表。相反,我们定义了显示它们的条件,告诉它们应该是什么样,然后让它自己解决其余的问题。\n\n所有这些都可以使用修饰符完成,这些修"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 16395,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/ContentView.swift",
"chars": 321,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/26.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/Credits.rtf",
"chars": 492,
"preview": "{\\rtf1\\ansi\\ansicpg936\\cocoartf2578\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;}\n{\\colortb"
},
{
"path": "example/alerts-and-menus/demo10/Demo/Shared/DemoApp.swift",
"chars": 3253,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/26.\n//\n\nimport SwiftUI\n\nstruct AppCommands: Commands {\n "
},
{
"path": "example/alerts-and-menus/demo10/Demo/iOS/Info.plist",
"chars": 1580,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/alerts-and-menus/demo10/Demo/macOS/Info.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/alerts-and-menus/demo10/Demo/macOS/macOS.entitlements",
"chars": 322,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/alerts-and-menus/demo10/README.md",
"chars": 2824,
"preview": "如何更改 macOS 应用中主菜单?\n===\n\n在 `macOS` 上,主菜单使用可用的命令菜单和组来组织其主菜单项。每个菜单都表示为顶层菜单栏菜单,并且每个命令组在一个顶层菜单中都有一组对应的菜单项,这些菜单项由分隔符菜单项分隔。\n\n在 "
},
{
"path": "example/alerts-and-menus/demo11/Demo/Demo.xcodeproj/project.pbxproj",
"chars": 16458,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "example/alerts-and-menus/demo11/Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:\">\n </FileRef"
},
{
"path": "example/alerts-and-menus/demo11/Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/Assets.xcassets/AccentColor.colorset/Contents.json",
"chars": 123,
"preview": "{\n \"colors\" : [\n {\n \"idiom\" : \"universal\"\n }\n ],\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }"
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2413,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"scale\" : \"2x\",\n \"size\" : \"20x20\"\n },\n {\n \"idiom\""
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/Assets.xcassets/Contents.json",
"chars": 63,
"preview": "{\n \"info\" : {\n \"author\" : \"xcode\",\n \"version\" : 1\n }\n}\n"
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/ContentView.swift",
"chars": 321,
"preview": "//\n// ContentView.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/27.\n//\n\nimport SwiftUI\n\nstruct ContentView: View {\n "
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/DemoApp.swift",
"chars": 302,
"preview": "//\n// DemoApp.swift\n// Shared\n//\n// Created by 王楚江 on 2021/3/27.\n//\n\nimport SwiftUI\n\n@main\nstruct DemoApp: App {\n "
},
{
"path": "example/alerts-and-menus/demo11/Demo/Shared/SettingsView.swift",
"chars": 737,
"preview": "//\n// Settings.swift\n// Demo\n//\n// Created by 王楚江 on 2021/3/27.\n//\n\nimport SwiftUI\n\nstruct SettingsView: View {\n// "
}
]
// ... and 2652 more files (download for full content)
About this extraction
This page contains the full source code of the jaywcjlove/swiftui-example GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2852 files (4.8 MB), approximately 1.5M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.