SuperAPI AI 工具集

image-loading

设计与创作

查看项目

更新于 10-16 09:52

技能介绍

用途:该技能为 Swift 项目生成一套生产级图片加载管线,解决 AsyncImage 无缓存的问题,提供内存与磁盘缓存、请求去重、图片处理和可直接替换的 SwiftUI 视图。

主要能力:生成 ImageCache 协议、基于 NSCache 的 MemoryImageCache、带过期策略的 FileManager LRU DiskImageCache、基于 Actor 且支持去重与取消的 ImageDownloader、负责缓存→下载→处理→存储的 ImagePipeline,以及 CachedAsyncImage SwiftUI 视图。按配置可选生成 ImageProcessor(缩放、缩略图)和 ImagePrefetcher(集合预取)。

使用方式:技能激活条件包括用户要求添加图片缓存、替换 AsyncImage、提及图片加载管线或懒加载、图片下载或预取、缩略图或缩放。生成前会检测 Swift 版本(需 5.9+)、部署目标(iOS 16+/macOS 13+)、@Observable 支持(iOS 17+/macOS 14+),并搜索已有图片加载代码;若发现 Kingfisher、SDWebImage、Nuke 等第三方库会询问替换或保留,保留则不生成。随后通过 AskUserQuestion 询问缓存大小(小 50MB 内存/100MB 磁盘、中 100MB/250MB 推荐、大 200MB/500MB)、图片处理方式、附加功能(预取、占位与错误图、下载进度)及平台(iOS/macOS/跨平台)。生成文件默认放入 Sources/ImageLoading/、App/ImageLoading/ 或 ImageLoading/。

适用场景:SwiftUI 列表头像、集合图片预取、需要缩略图或缩放、替换无缓存的 AsyncImage。

限制:需 Swift 5.9+,部署目标 iOS 16+/macOS 13+;@Observable 需 iOS 17+/macOS 14+。若保留第三方库则不生成代码。具体缓存实现细节与模板见其 image-loading-patterns.md 与 templates.md 参考文件。