About
•
Kingfisher를 이용해서 원격 저장소에서 이미지 다운로드 후 캐싱하여 앱의 반응 속도와 데이터 관리 효율성을 증가시킴
•
ViewAnimator를 이용해서 사용자에게 보다 매력적인 인터페이스를 경험할 수 있도록 함
사용된 오픈소스라이브러리
•
Kingfisher
•
ViewAnimator
주요 코드
[ 이미지 다운로드 및 캐싱 ]
func configure(_ item: Category) {
if let imageUrl = URL(string: item.backgroundImage) {
let processor = DownsamplingImageProcessor(
size: backgroundImageView.bounds.size
)
backgroundImageView.kf.indicatorType = .activity
backgroundImageView.kf.setImage(
with: imageUrl,
options: [
.processor(processor),
.scaleFactor(UIScreen.main.scale),
.transition(.fade(0.2)),
.cacheOriginalImage
]
)
}
titleLabel.text = item.title
titleLabel.textColor = item.titleColor
}
Swift
복사
•
DownsamplingImageProcessor 를 사용하여 ‘backgroundImageView ‘의 크기에 맞게 다운샘플링하였고 이를 통해 메모리 사용을 줄이고 앱의 성능이 향상된다. → 특히, 대용량 이미지를 다룰 때 유용함
•
.scaleFactor(UIScreen.main.scale) 은 이미지를 현재 디바이스 스크린 스케일에 맞게 조정한다. 이를 통해 다양한 해상도를 가진 디바이스에서 이미지가 깨지지 않고 선명하게 보일 수 있도록 도와준다.
•
.transition(.fade(0.2)) 를 사용하여 이미지가 로드될 때 사용자에게 부드러운 시각적 경험을 제공하였다.
•
.cacheOriginalImage 는 ‘Kingfisher’기 이미지를 다운로드한 후 원본 이미지를 캐시에 저장하게 한다. 나중에 같은 이미지를 다시 요청할 때 캐시에서 빠르게 로드할 수 있어서 네트워크 사용을 줄이고 더 빠른 이미지 로딩을 가능하게 한다.