TipKit 是一份面向 iOS 17+ 应用的技能文档,用途是在 App 中加入功能发现提示、上下文提示和引导教练标记。它基于 Apple 的 TipKit 框架,由框架负责管理显示频率、生效规则和持久化,使提示在合适时机出现、并在用户了解功能后不再重复。
主要能力:通过实现 Tip 协议定义提示(标题、说明、图标、动作按钮、规则、显示选项);支持 TipView 内联卡片与 .popoverTip() 锚定气泡两种展示形式,并可自定义 TipViewStyle;支持基于 @Parameter 的状态规则与 Tips.Event 的事件规则,多个规则同时满足才生效;支持 TipGroup 按顺序一次只显示一条,避免提示堆叠;支持动作按钮处理、invalidate(reason:) 控制失效、CloudKit 跨设备同步状态,以及开发期的测试工具。
使用方式:需在 App.init 中、任何视图渲染前调用一次 Tips.configure(),可设置 datastoreLocation 与 cloudKitContainer 等选项;接着定义 Tip 结构体并以 TipView 或 .popoverTip() 展示;用规则、options 和 TipGroup 控制出现时机与顺序。测试工具如 showAllTipsForTesting()、resetDatastore() 必须放在 #if DEBUG 或启动参数判断内,不可进入生产环境。
适用场景:功能发现、渐进式引导、首屏上手流程等。限制与注意事项:提示一经失效不会自动重现(除非重置数据存储);不应同时显示过多提示;用户执行了提示所述操作后应及时失效;标题需简短(约 40 字符以内);提示可被随时关闭,不能承载关键或安全信息,此类信息应改用警告或内联提示。自定义 Tip 需满足 Sendable 并在 @MainActor 上配置。文档还附有完整实现模式的参考文件路径 references/tipkit-patterns.md。