Search
Duplicate

Kingfisher

Created
2023/10/30 10:21
Tags
Library
태그

 Kingfisher

Kingfisher 는 웹에서 이미지를 다운로드하고 캐싱 할 수 있는 Swift 라이브러리이다.
보통 XCode 프로젝트 Asset에 이미지를 추가하여 이미지를 로드하는 경우도 있지만,
네트워킹을 통해 웹의 이미지를 로드하는 경우는 일일이 이미지를 저장하여 불러오는 것이 불가능하다.
→ 이때 Kingfisher 라이브러리를 사용하면 웹 이미지를 보여줄 수 있다.

Kingfisher 특징

비동기로 이미지를 다운로드하고 캐싱한다.
URLSession 기반 네트워킹 또는 로컬 제공 데이터에서 이미지를 로드한다.
이미지 프로세서와 필터가 제공된다.
메모리와 디스크를 위한 다중 계층 하이브리드 캐시이다.
캐시 동작을 상세하게 제어한다 (만료 날짜 및 크기 제한 등 사용자 지정이 가능하다)
독립적인 구성요소로 필요에 따라 다운로더, 캐싱 시스템, 이미지 프로세서를 별도로 사용할 수 있다.
이미지를 미리 가져오고 캐시에 표시할 수 있다.
URL에서 직접 이미지를 설정할 수 있도록 UIImageView, NSImageView, NSButton, UIButton을 지원한다.
이미지 설정 시 전환 애니메이션을 제공한다.
이미지를 로드하는 동안 자리 표시자와 표시기를 사용자 지정할 수 있다.
쉽게 확장 가능한 이미지 처리와 이미지 형식을 제공한다.
낮은 데이터 모드를 지원한다.
SwiftUI를 지원한다.

Kingfisher 사용해보기

import Kingfisher let imageURL = "https://cdn.clien.net/web/api/file/F01/3026181/26c0c7097b4545faa89.JPG" let url = URL(string: imageURL) imageView.kf.setImage(with: url)
Swift
복사
Kingfisher는 URL에서 이미지를 다운로드하고 메모리 캐시와 디스크 캐시에 모두 보낸 후, imageView에 표시한다.
나중에 같은 URL로 이미지를 로드할 경우, 캐시에서 이미지를 가져와 바로 보여준다.
→ 장점!!
또한

어려운 작업을 간단하게 수행할 수 있다는 장점!

고해상도 이미지 다운로드하기
이미지 보기 크기와 일치하도록 다운 샘플링하기
주어진 반경으로 모서리를 둥글게 만들기
다운로드 하는 동안 시스템 표시기와 자리 표시자 이미지를 표시하기
fade-in 애니메이션 효과 주기
큰 이미지는 나중에 사용할 수 있도록 디스크에 캐시되어 상세 보기에서 다시 다운로드하지 않기
작업 완료시 성공 여부에 관계없이 콘솔 로그 프린트하기