NSAsyncCachedImage is a lightweight package which provides the main thing that is missing from Apple AsyncImage API, Caching!. This package will let you download and cache images asynchronously in SwiftUI views.
NSAsyncCachedImage supports iOS 13
, macOS 10.15
, tvOS 13
and watchOS 6
.
NSAsyncCachedImage can be installed with the Swift Package Manager:
https://github.com/nssina/NSAsyncCachedImage.git
import SwiftUI
import NSAsyncCachedImage
struct ContentView: View {
var body: some View {
VStack {
NSAsyncCachedImage("https://example.com/icon.png") { image in
image
.resizable()
} placeHolder: {
ProgressView()
}
.frame(width: 200, height: 200)
.cornerRadius(12)
}
.padding()
}
}
The project is available under MIT Licence