Platform Apps · Workbench Evidence Map
把 269 / 271 / 272 / 277 四个数据驱动 SessionWorkbench 的洞察结论、字幕锚点、视频时间和来源串起来,作为主题级证据地图的第一版。
证据链
Theme ClaimSession InsightAnchorTranscriptVideo TimeSource
证据快照
Claim → Anchor
结论 1:SwiftUI 不是“一个 UI 框架更新”,而是 AI 体验的 第一承载层 。
What’s new in SwiftUI · 5 anchors
Session 开头连续强调 SwiftUI 的年度升级、外观体验和性能提升,这说明 Apple 把 SwiftUI 继续放在应用体验主干位置。AI 功能最终也要进入这条主干,而不是停留在模型调用。
结论 2:新旧框架共存是落地现实,AI 体验不能假设所有 App 都已现代化。
What’s new in SwiftUI · 2 anchors
字幕明确提到 SwiftUI app 可自动获得很多能力,但如果应用同时使用 UIKit 和 SwiftUI,就需要处理跨框架问题。这是“存量工程决定 AI 落地速度”的关键证据。
结论 3:平台 UI 更新正在把“内容展示”推进到 结构化操作 。
What’s new in SwiftUI · 6 anchors
prominent tab、toolbar overflow、toolbar minimize、drag interaction、swipe actions 共同说明,SwiftUI 的重点不是静态页面,而是围绕内容、状态和操作组织交互。
结论 4:Document API 把 UI、数据读写和性能连接起来,是“智能体验承载层”的底部能力。
What’s new in SwiftUI · 4 anchors
SwiftUI Document API 和读写性能改进说明,UI 不是只有显示层。AI 生成、编辑、整理内容时,最终会触发文档、数据和性能链路。
结论 5:性能不是体验优化项,而是 AI 动态内容流能否成立的 发布门槛 。
What’s new in SwiftUI · 3 anchors
Session 后段多次回到 performance、responsive、runtime performance。AI 会产生动态摘要流、推荐流、任务状态流,如果滚动和运行性能不稳,智能体验会直接变成噪音。
总判断:Session 269 支撑的不是“SwiftUI 有更新”,而是“Apple 正把真实 app 的承载层继续做厚”。
What’s new in SwiftUI · 4 anchors
这条 session 可以支撑 Platform Apps 主题中的 UI 子线:AI 体验要落地,必须经过 SwiftUI / UIKit 互操作、结构化交互、文档数据和性能门槛四层。
结论 1:Drag and drop 让 AI 结果从“内容”变成“可操作对象”。
Code-along: Build powerful drag and drop in SwiftUI · 5 anchors
Session 开头强调 draggable、dropDestination 和 Transferable。对于 AI 体验,这意味着生成结果不应停留在文本或图片,而应成为可移动、可组合、可投递到其它区域的对象。
结论 2:reorderable API 说明内容组织是核心交互,不只是展示。
Code-along: Build powerful drag and drop in SwiftUI · 5 anchors
Session 说明 SwiftUI 新增 reorderable API,使用户可以通过 drag and drop 重新组织内容。在智能体验里,排序、分组、重排会成为用户整理 AI 结果的重要方式。
结论 3:Drag Container 让多对象移动成为一等能力。
Code-along: Build powerful drag and drop in SwiftUI · 6 anchors
Session 通过 Solitaire 示例说明多张卡片可以一起拖动,并通过 dragPreviewsFormation / dropPreviewsFormation 保持一致视觉。这对 AI 批量结果、任务组和内容块操作很关键。
结论 4:Drag Configuration / Drop Configuration 让业务规则进入交互过程。
Code-along: Build powerful drag and drop in SwiftUI · 2 anchors
Session 后段讲到 dragConfiguration、dropDestination 和 dropConfiguration,说明拖拽不是简单移动,而是可以按 app 规则决定复制、移动、接收与拒绝。AI 结果也需要这类规则化落地。
总判断:Session 271 证明 UI 子线的关键不是“更好看”,而是让内容具备操作语义。
Code-along: Build powerful drag and drop in SwiftUI · 5 anchors
如果 AI 生成的内容不能被拖动、重排、批量移动和按业务规则投递,它就很难进入真实工作流。271 是 UI 子主题中“操作语义”的核心证据。
结论 1:SwiftUI 可以渐进式进入既有 App,而不是要求一次性重写。
Use SwiftUI with AppKit and UIKit · 4 anchors
Session 开头直接说明 SwiftUI 设计上就是为了和 AppKit / UIKit 并存,并展示 Apple 自身在 Logic Pro、Xcode 等产品中采用这种策略。这说明现代化路径是增量式,而不是全量替换。
结论 2:Observation 把既有 App 的状态更新成本降下来,是迁移的第一入口。
Use SwiftUI with AppKit and UIKit · 3 anchors
Session 先讲 Observation 自动更新 AppKit / UIKit 视图,说明不必先迁移所有 UI,也可以从状态观察和自动刷新开始减少手工同步成本。
结论 3:Hosting 与 Representable 是新旧框架混合的关键桥。
Use SwiftUI with AppKit and UIKit · 3 anchors
NSHostingView、NSGestureRecognizerRepresentable、NSViewRepresentable 等机制让团队可以把 SwiftUI 组件嵌入旧层级,也可以把旧能力带入 SwiftUI。
结论 4:菜单、Scene 和 AppDelegate 集成证明 SwiftUI 能进入应用结构层。
Use SwiftUI with AppKit and UIKit · 4 anchors
Session 不只讲单个 View,还讲 NSHostingMenu、SwiftUI Scenes、NSHostingSceneRepresentation 与既有 AppDelegate 的配合,说明迁移可以触达应用结构层,但仍保留既有架构。
总判断:Session 272 说明 AI 新体验落地不能假设工程已经现代化。
Use SwiftUI with AppKit and UIKit · 6 anchors
对于大量存量 App,SwiftUI 与 AppKit/UIKit 的互操作能力决定新体验能否渐进进入真实产品。它补强了 269 中“UIKit × SwiftUI 共存”的落地现实。
结论 1:Widget 是智能体验的系统外显入口。
WidgetKit foundations · 3 anchors
Session 开头强调 widgets 把 app 的相关内容放到用户最常访问的位置,并扩展 app 在系统中的触达范围。这说明智能体验不能只在 app 内等待用户打开,也要进入系统级外显入口。
结论 2:好 Widget 的三要素是 glanceable、relevant、personalizable。
WidgetKit foundations · 4 anchors
Widget 的核心质量不是信息堆叠,而是快速可理解、与时间/位置/个人模式相关,并能个性化。这与 AI 摘要、提醒和下一步建议的呈现质量直接相关。
结论 3:Timeline 与 reload policy 决定动态内容是否保持新鲜。
WidgetKit foundations · 7 anchors
Session 详细解释 timeline entries、reload behavior、reload policy 和 WidgetCenter reload API,说明 Widget 是受预算约束的动态状态面,而不是实时运行的视图。
结论 4:Deep link、配置和交互把 Widget 与 App 体验统一起来。
WidgetKit foundations · 2 anchors
WidgetKit 通过 deep links、configurable widgets、buttons/toggles 和 App Intent 把用户带回 app 或直接执行动作。这对 AI 任务进展、状态确认和下一步行动尤其重要。
总判断:Session 277 证明外显入口是 AI 体验落地的必要一环。
WidgetKit foundations · 5 anchors
AI 从问答转为服务后,需要在系统里持续展示摘要、进度、状态和行动入口。WidgetKit 提供低打扰、可个性化、可交互的外显面,但也要求团队遵守 timeline、reload budget 和系统环境适配。
Anchor Index
| ID | Session | Time | Transcript excerpt | Video |
|---|---|---|---|---|
| 269:q1 | What’s new in SwiftUI | 0:14 | We're excited to talk to you about what's new in SwiftUI! | 打开 |
| 269:q2 | What’s new in SwiftUI | 0:18 | SwiftUI has gained some major upgrades. | 打开 |
| 269:q3 | What’s new in SwiftUI | 0:21 | From a refined look and feel, to performance improvements... | 打开 |
| 269:q4 | What’s new in SwiftUI | 1:34 | Our app takes advantage of lots of new enhancements to SwiftUI... | 打开 |
| 269:q5 | What’s new in SwiftUI | 1:39 | ...build a first class user experience that looks great and also has great performance. | 打开 |
| 269:q6 | What’s new in SwiftUI | 4:24 | Apps built with SwiftUI gain a lot of this functionality automatically... | 打开 |
| 269:q7 | What’s new in SwiftUI | 4:29 | ...but if your app uses both UIKit and SwiftUI... | 打开 |
| 269:q8 | What’s new in SwiftUI | 5:20 | To enable this special tab placement... | 打开 |
| 269:q9 | What’s new in SwiftUI | 5:43 | When I resize the app window, the toolbar items are automatically adjusted... | 打开 |
| 269:q10 | What’s new in SwiftUI | 7:36 | So I add the new toolbarMinimizeBehavior modifier, and set it to "onScrollDown". | 打开 |
| 269:q11 | What’s new in SwiftUI | 8:09 | ...thanks to the new SwiftUI Document API. | 打开 |
| 269:q12 | What’s new in SwiftUI | 9:21 | ...disk reading and writing performance improvements... | 打开 |
| 269:q13 | What’s new in SwiftUI | 11:05 | This alone gives me a performance boost: the views will update... | 打开 |
| 269:q14 | What’s new in SwiftUI | 15:47 | I'd like to keep these stickers organized by dragging them to rearrange their order. | 打开 |
| 269:q15 | What’s new in SwiftUI | 16:29 | SwiftUI automatically handles the drag interaction and animation for me! | 打开 |
| 269:q16 | What’s new in SwiftUI | 18:04 | And now, SwiftUI supports swipe actions on any view, not just List! | 打开 |
| 269:q17 | What’s new in SwiftUI | 19:58 | Great performance is important for making an app feel responsive and polished. | 打开 |
| 269:q18 | What’s new in SwiftUI | 20:09 | ...to keep your app's performance in top shape. | 打开 |
| 269:q19 | What’s new in SwiftUI | 22:00 | SwiftUI provides a variety of ways for apps to model and store their data... | 打开 |
| 269:q20 | What’s new in SwiftUI | 24:13 | Maintaining good runtime performance is critical for keeping your app... | 打开 |
| 271:q1 | Code-along: Build powerful drag and drop in SwiftUI | 0:11 | In this video, I'd like to share with you some of the new drag and drop APIs | 打开 |
| 271:q2 | Code-along: Build powerful drag and drop in SwiftUI | 0:19 | Since iOS 16, SwiftUI has provided drag and drop | 打开 |
| 271:q3 | Code-along: Build powerful drag and drop in SwiftUI | 0:23 | through the draggable and dropDestination modifiers. | 打开 |
| 271:q4 | Code-along: Build powerful drag and drop in SwiftUI | 0:26 | The draggable modifier allows people to move content, like photos and text, | 打开 |
| 271:q5 | Code-along: Build powerful drag and drop in SwiftUI | 0:34 | You can conform your data to the Transferable protocol, | 打开 |
| 271:q6 | Code-along: Build powerful drag and drop in SwiftUI | 1:21 | SwiftUI has expanded the capabilities of drag and drop in three major ways. | 打开 |
| 271:q7 | Code-along: Build powerful drag and drop in SwiftUI | 1:28 | that allows people to rearrange content using drag and drop. | 打开 |
| 271:q8 | Code-along: Build powerful drag and drop in SwiftUI | 1:35 | using the Drag Container APIs. | 打开 |
| 271:q9 | Code-along: Build powerful drag and drop in SwiftUI | 1:42 | I'll be implementing the drag and drop interactions for a game of Solitaire. | 打开 |
| 271:q10 | Code-along: Build powerful drag and drop in SwiftUI | 2:11 | I'll start by adopting the new reorderable API in my app. | 打开 |
| 271:q11 | Code-along: Build powerful drag and drop in SwiftUI | 4:17 | Now, I can interact with the Preview and reorder cards. | 打开 |
| 271:q12 | Code-along: Build powerful drag and drop in SwiftUI | 5:21 | Now, I can drag the four of diamonds | 打开 |
| 271:q13 | Code-along: Build powerful drag and drop in SwiftUI | 6:45 | These APIs are newly available on all Apple platforms that support drag and drop. | 打开 |
| 271:q14 | Code-along: Build powerful drag and drop in SwiftUI | 7:08 | One way to handle this is to add selection to your draggable items. | 打开 |
| 271:q15 | Code-along: Build powerful drag and drop in SwiftUI | 7:22 | Once I perform a drag gesture on one of the selected cards, | 打开 |
| 271:q16 | Code-along: Build powerful drag and drop in SwiftUI | 7:49 | I declare the dragContainer modifier below the reorderContainer modifier. | 打开 |
| 271:q17 | Code-along: Build powerful drag and drop in SwiftUI | 8:40 | I can configure this with the dragPreviewsFormation modifier. | 打开 |
| 271:q18 | Code-along: Build powerful drag and drop in SwiftUI | 9:49 | The dragContainer modifier is newly available on iOS, iPadOS, and visionOS 27. | 打开 |
| 271:q19 | Code-along: Build powerful drag and drop in SwiftUI | 10:01 | I'll use the new Drag Configuration API. | 打开 |
| 271:q20 | Code-along: Build powerful drag and drop in SwiftUI | 14:04 | I was able to drag cards into piles using the new configuration modifiers. | 打开 |
| 272:q1 | Use SwiftUI with AppKit and UIKit | 0:12 | Today, I'm excited to talk to you about using SwiftUI | 打开 |
| 272:q2 | Use SwiftUI with AppKit and UIKit | 0:15 | with your existing AppKit or UIKit app. | 打开 |
| 272:q3 | Use SwiftUI with AppKit and UIKit | 0:18 | SwiftUI was designed from the beginning to work great alongside AppKit and UIKit. | 打开 |
| 272:q4 | Use SwiftUI with AppKit and UIKit | 1:28 | In this video I will share how you can start adopting SwiftUI in more places too. | 打开 |
| 272:q5 | Use SwiftUI with AppKit and UIKit | 1:42 | to automatically update your NSView, even before using any SwiftUI. | 打开 |
| 272:q6 | Use SwiftUI with AppKit and UIKit | 3:38 | AppKit also supports automatic Observation of properties from @Observable types. | 打开 |
| 272:q7 | Use SwiftUI with AppKit and UIKit | 5:48 | It also makes it easier to move to SwiftUI when you want to implement something new. | 打开 |
| 272:q8 | Use SwiftUI with AppKit and UIKit | 6:23 | so this is a great time to move to SwiftUI. | 打开 |
| 272:q9 | Use SwiftUI with AppKit and UIKit | 6:54 | You can also reuse your existing CoreGraphics drawing code in SwiftUI | 打开 |
| 272:q10 | Use SwiftUI with AppKit and UIKit | 7:26 | I can wrap my SwiftUI view in an NSHostingView, | 打开 |
| 272:q11 | Use SwiftUI with AppKit and UIKit | 8:08 | I can bring this to a new SwiftUI View using NSGestureRecognizerRepresentable. | 打开 |
| 272:q12 | Use SwiftUI with AppKit and UIKit | 9:07 | SwiftUI also comes with more representable protocols | 打开 |
| 272:q13 | Use SwiftUI with AppKit and UIKit | 9:38 | I will explain how to add the new menu item using SwiftUI. | 打开 |
| 272:q14 | Use SwiftUI with AppKit and UIKit | 10:20 | I initialize an NSHostingMenu with the ColorMenu view for that. | 打开 |
| 272:q15 | Use SwiftUI with AppKit and UIKit | 11:30 | As a final step, here is how you can bring complete SwiftUI Scenes to your app | 打开 |
| 272:q16 | Use SwiftUI with AppKit and UIKit | 11:53 | and allows it to be added dynamically from an existing AppKit app. | 打开 |
| 272:q17 | Use SwiftUI with AppKit and UIKit | 13:04 | I have shown how you can mix SwiftUI and AppKit in different ways. | 打开 |
| 272:q18 | Use SwiftUI with AppKit and UIKit | 13:27 | and make the transition to SwiftUI seamless. | 打开 |
| 272:q19 | Use SwiftUI with AppKit and UIKit | 13:30 | Consider SwiftUI when you implement a new component | 打开 |
| 272:q20 | Use SwiftUI with AppKit and UIKit | 13:47 | that an app needs to be entirely SwiftUI in order to take advantage of it. | 打开 |
| 277:q1 | WidgetKit foundations | 0:13 | People love using widgets. | 打开 |
| 277:q2 | WidgetKit foundations | 0:20 | Widgets are available on many Apple platforms | 打开 |
| 277:q3 | WidgetKit foundations | 0:40 | how to build your first widget, and how to keep it up to date. | 打开 |
| 277:q4 | WidgetKit foundations | 1:03 | There are three qualities that make widgets memorable. | 打开 |
| 277:q5 | WidgetKit foundations | 1:06 | Widgets are glanceable. | 打开 |
| 277:q6 | WidgetKit foundations | 1:19 | Widgets are relevant. | 打开 |
| 277:q7 | WidgetKit foundations | 1:43 | Using WidgetKit and SwiftUI you can provide great glanceable, relevant, | 打开 |
| 277:q8 | WidgetKit foundations | 2:34 | Whether an app is built with SwiftUI or UIKit, it can have widgets, | 打开 |
| 277:q9 | WidgetKit foundations | 3:15 | This content is called a timeline. | 打开 |
| 277:q10 | WidgetKit foundations | 3:45 | Now let's look at the code for the reading goals widget | 打开 |
| 277:q11 | WidgetKit foundations | 4:04 | There are two types of configurations for widgets: | 打开 |
| 277:q12 | WidgetKit foundations | 5:23 | and how timelines keep widgets relevant. | 打开 |
| 277:q13 | WidgetKit foundations | 6:28 | A timeline entry is what your widget shows at a specific moment in time. | 打开 |
| 277:q14 | WidgetKit foundations | 7:10 | Timelines are critical to how widgets stay up to date. | 打开 |
| 277:q15 | WidgetKit foundations | 7:47 | At some point your timeline will need to be refreshed with more timeline entries. | 打开 |
| 277:q16 | WidgetKit foundations | 10:09 | to WidgetCenter's reload APIs | 打开 |
| 277:q17 | WidgetKit foundations | 10:38 | So each widget is given a budget for updates. | 打开 |
| 277:q18 | WidgetKit foundations | 11:14 | If this describes your content, consider building a live activity. | 打开 |
| 277:q19 | WidgetKit foundations | 13:22 | your apps content with your widget. | 打开 |
| 277:q20 | WidgetKit foundations | 14:18 | Deep links are a great way to integrate your widget with your app, | 打开 |