Highlight
Day 4 重点发布了 SwiftUI iPad 界面组织、SwiftUI 与 UIKit 互操作、Vision 框架光流计算,以及 SharePlay 体验设计。
核心内容
SwiftUI iPad 界面组织
Day 4 开场是 Raj 讲解如何用 SwiftUI 组织 iPad 界面。iPadOS 16 的多窗口支持带来了状态恢复、深层链接和更丰富的程序化控制需求。(00:10)
SwiftUI 的导航状态现在可以序列化,支持从 URL 恢复界面状态。这意味着用户关闭 App 后重新打开,或者通过链接进入 App,都能回到正确的界面位置。
SwiftUI 融入 UIKit
Sara 展示了如何在 UIKit 项目中使用 SwiftUI。通过 UIHostingController,SwiftUI 视图可以在任何使用 View Controller 的地方嵌入。(00:21)
这种渐进式迁移策略让现有 UIKit 项目可以逐步引入 SwiftUI,不需要一次性重写。可以从一个独立页面开始,逐步扩展到更多模块。
Vision 框架光流计算
Brett 介绍了 Vision 框架的最新更新。其中一个演示是计算光流(optical flow)——追踪视频中每个像素的运动方向和速度。示例是一只狗在沙滩上叼水瓶的短视频。(00:30)
光流计算对视频分析、动作识别、AR 场景理解都有重要价值。
SharePlay 体验设计
SharePlay 被描述为一个”传送门”,把人们通过手机带到同一个空间。Day 4 的 Session 讲解了如何设计有吸引力的 SharePlay 体验,让用户感觉彼此真的在一起。(00:38)
界面文案写作
Apple 的界面文案团队分享了写作原则:界面写作始于对屏幕另一端用户的好奇心。好的文案是功能的一部分,不只是视觉点缀。(00:48)
详细内容
Day 4 技术专题分类
SwiftUI 进阶:
- iPad 界面组织:多窗口、状态恢复、深层链接
- UIKit 互操作:渐进式迁移策略
- 导航状态管理:序列化和恢复
计算机视觉:
- 光流计算:像素级运动追踪
- Vision 框架新 API
社交与协作:
- SharePlay 设计模式
- Group Activities 框架
设计与文案:
- 界面文案写作原则
- 用户中心的设计语言
SwiftUI 与 UIKit 互操作的实践路径
渐进式迁移的典型路径:
- 独立页面:先用
UIHostingController把一个新页面做成 SwiftUI - 组件替换:把 UIKit 中的自定义视图逐步替换为 SwiftUI 视图
- 数据层统一:用 ObservableObject 或 @Observable 统一数据流
- 完整模块:当一个功能模块完全用 SwiftUI 实现后,移除对应的 UIKit 代码
这种路径的风险最低,团队可以在实践中学习 SwiftUI,同时保持产品稳定。
核心启发
-
渐进式 SwiftUI 迁移:现有 UIKit 项目不需要等待重写,可以从一个设置页面或新功能模块开始引入 SwiftUI。用
UIHostingController包装 SwiftUI 视图,像普通 View Controller 一样使用。入口 API 是UIHostingController(rootView:)。 -
视频动作分析应用:利用 Vision 的光流计算,分析运动视频中的动作轨迹。可以用于体育训练(分析投篮姿势)、宠物行为分析、或者安全监控。入口 API 是
VNGenerateOpticalFlowRequest。 -
多人同步观影应用:用 SharePlay 和 Group Activities 框架,做一个多人同步观影平台。用户可以邀请朋友一起看电影,播放进度自动同步,还能实时语音聊天。入口 API 是
GroupActivity和GroupSession。 -
iPad 多窗口文档应用:利用 SwiftUI 的多窗口支持,做一个支持多文档并行编辑的 iPad 应用。每个文档独立窗口,支持从外部链接直接打开特定文档。入口 API 是
WindowGroup和onOpenURL。
关联 Session
- SwiftUI on iPad: Organize your interface — 用 SwiftUI 构建 iPad 界面
- Bring SwiftUI to UIKit — 在 UIKit 中集成 SwiftUI
- What’s new in Vision — Vision 框架新特性
- Design compelling SharePlay experiences — SharePlay 体验设计
评论
GitHub Issues · utterances