SwiftUI’s AsyncImage is handy, but every time your view appears, it refetches the image—leading to flicker, delays, and unnecessary network use. What if you could fetch once, then reuse instantly? That's exactly what the Cached Async Image delivers: a memory-powered caching layer that keeps SwiftUI image loading smooth, snappy, and resilient. First a simple in-memory cache without disk persistence. This will be thread-safe and auto-purges under memory pressure. A Singleton wrapping NSCache for URL → UIImage caching as follows : final class ImageCache { static let shared = ImageCache() private init() {} private let cache = NSCache<NSURL, UIImage>() func image(for url: URL) -> UIImage? { cache.object(forKey: url as NSURL) } func insertImage(_ image: UIImage?, for url: URL) { guard let image else { return } cache.setObject(image, forKey: url as NSURL) } func clearAll() { ...