https://github.com/SDWebImage/SDWebImage
SDWebImage
이 라이브러리는 url을 받아서 비동기적으로 이미지를 받아오고, 받아온 이미지를 캐싱하여 사용할 수 있게 해주는 라이브러리이다.
SDWebImage는 비동기 이미지 다운로드 및 캐싱을 위해 iOS 앱에서 사용되는 인기 있는 라이브러리이다.
Cocoapods를 사용하여 SDWebImage 라이브러리를 설치합니다.또는 공식 GitHub 리포지토리에서 소스 코드를 다운로드하여 수동으로 설치할 수 있다.
pod 'SDWebImage'
클래스 파일에서 SDWebImage 모듈을 가져온다.
import SDWebImage
1. UIImageView 클래스의 sd_setImage 메서드를 사용하여 URL에서 이미지를 다운로드하고 표시한다.
여기서 imageView는 UIImageView 클래스의 인스턴스이다.
다운로드하려는 이미지의 URL을 sd_setImage 메소드에 매개변수로 전달할 수 있다
completed 매개변수는 이미지가 다운로드되고 표시된 후에 실행될 클로저다.
imageView.sd_setImage(with: URL(string: "https://example.com/image.jpg"), completed: nil)
2. SDWebImageManager 클래스를 사용하여 이미지를 다운로드하고 나중에 사용할 수 있도록 캐시할 수 있다.
여기에서 SDWebImageManager 클래스의 loadImage 메서드는 URL에서 이미지를 다운로드하는 데 사용된다.
options 는 이미지를 다운로드하고 캐시하는 방법을 제어하는 옵션의 배열이다.
progress 는 이미지가 다운로드될 때 실행될 선택적 클로저.
최종 클로저는 이미지가 다운로드된 후 실행되며 다운로드된 이미지, 데이터, 오류, 캐시 유형 및 이미지 URL을 매개 변수로 전달한다.
SDWebImageManager.shared.loadImage(with: URL(string: "https://example.com/image.jpg"), options: [], progress: nil) { (image, data, error, cacheType, finished, imageURL) in
if let image = image {
// use the downloaded image
}
}
3. SDImageCacheConfig 클래스에서 옵션을 설정하여 SDWebImage의 캐싱 동작을 사용자 지정할 수 있다.
예를 들어 캐시의 최대 크기를 설정하거나 디스크 캐싱을 활성화할 수 있다.
여기서 SDImageCacheConfig 클래스의 인스턴스는 캐시 옵션을 설정하는 데 사용된다. 구성을 사용하여 새 캐시가 생성되고 키를 사용하여 캐시에 이미지가 저장된다.
let cacheConfig = SDImageCacheConfig()
cacheConfig.diskCacheEnabled = true
cacheConfig.maxCacheSize = 100 * 1024 * 1024 // 100 MB
let imageCache = SDImageCache(config: cacheConfig)
imageCache.store(image, forKey: "myImage")
SDWebImage 라이브러리를 사용하면 iOS앱에서 이미지를 쉽게 다운로드하고 캐시하여 성능을 향상하고 네트워크 사용량을 줄일 수 있다.
* 캐싱
나중에 빠르고 효율적으로 액세스할 수 있도록 장치의 로컬 저장소에 이미지 데이터를 임시로 저장하는 프로세스를 말한다. 이는 사용자가 오프라인이거나 인터넷 연결이 느린 경우에도 이미지를 빠르게 로드할 수 있으므로 이미지 표시에 크게 의존하는 모바일 애플리케이션에 특히 유용하다.