SuperAPI AI 工具集

tipkit-generator

部署与运维

查看项目

更新于 10-16 08:10

技能介绍

用途:为 SwiftUI/UIKit 项目生成完整的 TipKit 上下文提示与功能发现代码,包括提示定义、规则、展示频率、内联与弹出式呈现,以及测试辅助工具。当需要“添加 TipKit”“上下文提示”“功能发现”“气泡提示”“内联提示”“引导提示”“高亮新功能”时触发。

生成前检查:确认部署目标满足 TipKit 要求(iOS 17+/macOS 14+);识别 SwiftUI 还是 UIKit;定位 App 入口以放置 Tips.configure();通过 Glob **/Tip.swift 与 Grep "import TipKit"、"Tips.configure" 检测已有实现,若存在则询问是扩展还是替换。

配置询问:需要提示的功能或 UI 元素;呈现方式(内联 TipView、弹出 .popoverTip()、两者);规则类型(参数式、事件式、两者);展示频率(immediate、hourly、daily、weekly、monthly);提示顺序(独立或使用 TipGroup 顺序展示)。

生成流程:读取 templates.md 模板;创建 Tips/ 目录下每个提示一个文件(如 SearchTip.swift、FilterTip.swift)、Tips/TipEvents.swift 集中事件定义、Tips/TipsConfiguration.swift 负责 Tips.configure() 与测试工具;按项目结构选择 Sources/Tips/、App/Tips/ 或 Tips/;在 App 入口加入 Tips.configure(),在视图处加入 TipView 或 .popoverTip(),在动作点 donate 事件,在适当时机 invalidate。

必要用法示例:在 App body 的 .task 中调用 try? Tips.configure([.displayFrequency(.daily), .datastoreLocation(.applicationDefault)]);内联用 TipView(searchTip);弹出用 .popoverTip(filterTip);事件用 SearchTip.searchPerformed.donate();失效用 searchTip.invalidate(reason: .actionPerformed)。

测试:可用 try? Tips.resetDatastore() 重置数据存储,Tips.showAllTipsForTesting() 忽略规则与频率展示全部,Tips.showTipsForTesting([SearchTip.self]) 展示指定提示;测试场景包括首次启动按频率展示、事件达阈值后展示、关闭后不再出现、程序化失效后不再出现。

限制与注意:未调用 Tips.configure() 前提示不会出现;参数式规则必须显式设置参数值;单元测试与 App 并发可能共享 DataStore,可用 .datastoreLocation(.url(...)) 隔离;.displayFrequency(.daily) 会阻止当日新提示,开发时可用 .immediate;失效必须针对已展示的提示实例调用;TipGroup 中若前一提示规则不满足会阻塞后续。提示内容应可操作、可记忆,不用于推广、错误消息或纯信息内容。事件规则支持日期修饰,如 $0.donations.donatedWithin(.days(5)).count >= 3;可用 IgnoresDisplayFrequency(true) 绕过频率,MaxDisplayCount(n) 限制展示次数。资料未提供更多平台版本或价格信息。