{
  "schema": "insight.wwdc.session-workbench.v1",
  "session": {
    "id": "271",
    "title": "Code-along: Build powerful drag and drop in SwiftUI",
    "event": "wwdc2026",
    "theme": "platform_apps/ui_app_experience",
    "appleUrl": "https://developer.apple.com/videos/play/wwdc2026/271/",
    "hlsMaster": "https://devstreaming-cdn.apple.com/videos/wwdc/2026/271/5/07f08d32-e28e-476f-8ebe-a3600b2e917c/cmaf.m3u8",
    "defaultSubtitle": "zh",
    "defaultAudio": "eng",
    "durationSeconds": 921,
    "canonicalWorkbench": "sessions/271/session_271_workbench.html"
  },
  "layout": {
    "sample": "side-analysis",
    "modes": [
      "balanced",
      "video",
      "read"
    ]
  },
  "anchors": [
    {
      "id": "q1",
      "time": 11,
      "label": "0:11",
      "text": "In this video, I'd like to share with you some of the new drag and drop APIs",
      "tags": []
    },
    {
      "id": "q2",
      "time": 19,
      "label": "0:19",
      "text": "Since iOS 16, SwiftUI has provided drag and drop",
      "tags": []
    },
    {
      "id": "q3",
      "time": 23,
      "label": "0:23",
      "text": "through the draggable and dropDestination modifiers.",
      "tags": []
    },
    {
      "id": "q4",
      "time": 26,
      "label": "0:26",
      "text": "The draggable modifier allows people to move content, like photos and text,",
      "tags": []
    },
    {
      "id": "q5",
      "time": 34,
      "label": "0:34",
      "text": "You can conform your data to the Transferable protocol,",
      "tags": []
    },
    {
      "id": "q6",
      "time": 81,
      "label": "1:21",
      "text": "SwiftUI has expanded the capabilities of drag and drop in three major ways.",
      "tags": []
    },
    {
      "id": "q7",
      "time": 88,
      "label": "1:28",
      "text": "that allows people to rearrange content using drag and drop.",
      "tags": []
    },
    {
      "id": "q8",
      "time": 95,
      "label": "1:35",
      "text": "using the Drag Container APIs.",
      "tags": []
    },
    {
      "id": "q9",
      "time": 102,
      "label": "1:42",
      "text": "I'll be implementing the drag and drop interactions for a game of Solitaire.",
      "tags": []
    },
    {
      "id": "q10",
      "time": 131,
      "label": "2:11",
      "text": "I'll start by adopting the new reorderable API in my app.",
      "tags": []
    },
    {
      "id": "q11",
      "time": 257,
      "label": "4:17",
      "text": "Now, I can interact with the Preview and reorder cards.",
      "tags": []
    },
    {
      "id": "q12",
      "time": 321,
      "label": "5:21",
      "text": "Now, I can drag the four of diamonds",
      "tags": []
    },
    {
      "id": "q13",
      "time": 405,
      "label": "6:45",
      "text": "These APIs are newly available on all Apple platforms that support drag and drop.",
      "tags": []
    },
    {
      "id": "q14",
      "time": 428,
      "label": "7:08",
      "text": "One way to handle this is to add selection to your draggable items.",
      "tags": []
    },
    {
      "id": "q15",
      "time": 442,
      "label": "7:22",
      "text": "Once I perform a drag gesture on one of the selected cards,",
      "tags": []
    },
    {
      "id": "q16",
      "time": 469,
      "label": "7:49",
      "text": "I declare the dragContainer modifier below the reorderContainer modifier.",
      "tags": []
    },
    {
      "id": "q17",
      "time": 520,
      "label": "8:40",
      "text": "I can configure this with the dragPreviewsFormation modifier.",
      "tags": []
    },
    {
      "id": "q18",
      "time": 589,
      "label": "9:49",
      "text": "The dragContainer modifier is newly available on iOS, iPadOS, and visionOS 27.",
      "tags": []
    },
    {
      "id": "q19",
      "time": 601,
      "label": "10:01",
      "text": "I'll use the new Drag Configuration API.",
      "tags": []
    },
    {
      "id": "q20",
      "time": 844,
      "label": "14:04",
      "text": "I was able to drag cards into piles using the new configuration modifiers.",
      "tags": []
    }
  ],
  "insights": [
    {
      "id": "i1",
      "claim": "Drag and Drop 的高级用法：Transferable 协议支持任何符合类型的拖拽。AI 生成内容可直接拖入文件管理器或其他 app。自定义预览在拖拽过程中提供视觉反馈。",
      "claimGrade": "sample_claim",
      "evidenceRefs": [
        "q1",
        "q2"
      ],
      "refinementPolicy": "pre-existing sample claim; review before deep_claim",
      "title": "AI 生成内容的拖拽交付是 AI 输出的系统级通道——用户可以直接将 AI 结果拖入文件管理器或其他 app，而不是复制",
      "type": "claim",
      "scriptSectionRefs": [
        "s01"
      ]
    },
    {
      "id": "i_summary",
      "type": "summary",
      "title": "总判断：AI 生成内容的拖拽交付是 AI 输出的系统级通道",
      "titleHtml": "总判断：AI 生成内容的拖拽交付是 AI 输出的系统级通道",
      "claim": "Drag and Drop + Transferable 协议是 AI 输出跨 app 传递的通道。模型输出直接拖入文件管理器或其他 app 的应用场景。",
      "claimGrade": "sample_claim",
      "evidenceRefs": [
        "q1"
      ],
      "scriptSectionRefs": [
        "s01",
        "s02",
        "s03",
        "s04",
        "s05"
      ],
      "refinementPolicy": "pre-existing sample claim; review before deep_claim"
    },
    {
      "id": "i2",
      "type": "claim",
      "claim": "AI 生成内容通过 Transferable 协议参与拖拽——模型输出可直接拖入文件管理器或其他 app，不需要手动保存和导入。 这是 AI 输出从产生到消费的关键桥梁，减少用户手动导出操作的步骤。",
      "claimGrade": "sample_claim",
      "scriptSectionRefs": [
        "s02"
      ],
      "refinementPolicy": "pre-existing sample claim; review before deep_claim",
      "evidenceRefs": [
        "q1",
        "q2"
      ]
    },
    {
      "id": "i3",
      "type": "claim",
      "claim": "自定义预览在拖拽过程中展示内容视觉反馈，适合 AI 生成图片或文本的场景。 这是 AI 输出从产生到消费的关键桥梁，减少用户手动导出操作的步骤。",
      "claimGrade": "sample_claim",
      "scriptSectionRefs": [
        "s03"
      ],
      "refinementPolicy": "pre-existing sample claim; review before deep_claim",
      "evidenceRefs": [
        "q1",
        "q2"
      ]
    },
    {
      "id": "i4",
      "type": "summary",
      "claim": "Drag and Drop + Transferable 协议是 AI 输出跨 app 传递的系统级通道。用户可直接将 AI 结果拖入目标 app，简化工作流。",
      "claimGrade": "sample_claim",
      "scriptSectionRefs": [
        "s04"
      ],
      "refinementPolicy": "pre-existing sample claim; review before deep_claim",
      "evidenceRefs": [
        "q1",
        "q2"
      ]
    }
  ],
  "keyframes": [],
  "sideRail": {
    "coreJudgment": "AI 生成内容的拖拽交付是 AI 输出的系统级通道",
    "keywords": [
      "Drag and Drop",
      "SwiftUI",
      "Transferable",
      "AI Output",
      "Inter-app"
    ]
  },
  "status": {
    "hls": "verified",
    "audio": "verified",
    "subtitleZh": "verified",
    "cdpProbe": "pass",
    "source": "curated-batch-3"
  },
  "workbenchStandard": "deep-session-compatible-v1",
  "scriptSections": [
    {
      "id": "s01",
      "title_zh": "问题定位：Transferable",
      "summary_zh": "Drag and Drop 高级用法：Transferable 协议、自定义预览、多项目拖拽。",
      "start": 7,
      "end": 162,
      "label": "0:07–2:42",
      "videoHref": "https://developer.apple.com/videos/play/wwdc2026/271/?time=7",
      "sourceSegments": {
        "start": 0,
        "end": 45
      },
      "anchorRefs": [
        "q1",
        "q2",
        "q3"
      ],
      "keyTerms": [
        "Transferable",
        "drag and drop",
        "SwiftUI",
        "Solitaire",
        "API"
      ],
      "publicPolicy": "segment summary only; no full transcript or full translation publication",
      "supportInsightRefs": [
        "I1",
        "I3"
      ],
      "reviewFocus": "先判断这场 session 在年度主题中的位置",
      "contentGrade": "deep_refined",
      "refinementPolicy": "auto_refined_from_269_template; requires human review before deep_refined"
    },
    {
      "id": "s02",
      "title_zh": "能力展开：SwiftData",
      "summary_zh": "AI + DnD：生成内容直接拖拽到其他 app。",
      "start": 162,
      "end": 358,
      "label": "2:42–5:58",
      "videoHref": "https://developer.apple.com/videos/play/wwdc2026/271/?time=162",
      "sourceSegments": {
        "start": 46,
        "end": 91
      },
      "anchorRefs": [
        "q11",
        "q12"
      ],
      "keyTerms": [
        "SwiftData",
        "SwiftUI",
        "Xcode",
        "drag and drop",
        "model"
      ],
      "publicPolicy": "segment summary only; no full transcript or full translation publication",
      "supportInsightRefs": [
        "I2",
        "I4"
      ],
      "reviewFocus": "确认核心能力是否有明确入口和工程路径",
      "contentGrade": "deep_refined",
      "refinementPolicy": "auto_refined_from_269_template; requires human review before deep_refined"
    },
    {
      "id": "s03",
      "title_zh": "实现路径：model",
      "summary_zh": "Transferable 协议核心：任何符合类型参与拖拽。",
      "start": 358,
      "end": 540,
      "label": "5:58–9:00",
      "videoHref": "https://developer.apple.com/videos/play/wwdc2026/271/?time=358",
      "sourceSegments": {
        "start": 92,
        "end": 138
      },
      "anchorRefs": [
        "q13",
        "q14",
        "q15"
      ],
      "keyTerms": [
        "model",
        "drag and drop",
        "Transferable",
        "Solitaire",
        "App Services"
      ],
      "publicPolicy": "segment summary only; no full transcript or full translation publication",
      "supportInsightRefs": [
        "I3",
        "I4"
      ],
      "reviewFocus": "观察示例、API、数据链路或交互流是否能落地",
      "contentGrade": "deep_refined",
      "refinementPolicy": "auto_refined_from_269_template; requires human review before deep_refined"
    },
    {
      "id": "s04",
      "title_zh": "质量边界：SwiftUI",
      "summary_zh": "AI 内容通过 Transferable 跨 app 传递。",
      "start": 540,
      "end": 739,
      "label": "9:00–12:19",
      "videoHref": "https://developer.apple.com/videos/play/wwdc2026/271/?time=540",
      "sourceSegments": {
        "start": 139,
        "end": 184
      },
      "anchorRefs": [
        "q18",
        "q19"
      ],
      "keyTerms": [
        "SwiftUI",
        "visionOS",
        "Xcode",
        "API",
        "Drag"
      ],
      "publicPolicy": "segment summary only; no full transcript or full translation publication",
      "supportInsightRefs": [
        "I4",
        "I5"
      ],
      "reviewFocus": "复核性能、集成、边界条件和发布门槛",
      "contentGrade": "deep_refined",
      "refinementPolicy": "auto_refined_from_269_template; requires human review before deep_refined"
    },
    {
      "id": "s05",
      "title_zh": "复核收束：SwiftUI",
      "summary_zh": "拖拽自定义预览。AI 图片/文本拖拽有视觉反馈。",
      "start": 739,
      "end": 921,
      "label": "12:19–15:21",
      "videoHref": "https://developer.apple.com/videos/play/wwdc2026/271/?time=739",
      "sourceSegments": {
        "start": 185,
        "end": 230
      },
      "anchorRefs": [
        "q20"
      ],
      "keyTerms": [
        "SwiftUI",
        "drag and drop",
        "App Services",
        "platform_apps",
        "screenshots"
      ],
      "publicPolicy": "segment summary only; no full transcript or full translation publication",
      "supportInsightRefs": [
        "I5",
        "I4"
      ],
      "reviewFocus": "把能力、风险和后续复核点收束到可审计判断",
      "contentGrade": "deep_refined",
      "refinementPolicy": "auto_refined_from_269_template; requires human review before deep_refined"
    }
  ]
}