본문 바로가기
Developer/iOS, Swift

[Swift] 이미지 라이브러리, KingFisher와 AlamofireImage

by Doony 2020. 2. 19.

기존에는 AlamofireImage를 이용해서 주로 웹 이미지를 따왔습니다만, 쓰다보니 캐시처리를 할 필요가 있더라구요. Kingfisher은 Alamofire 대비 기본 캐싱을 제공하는 것 같습니다.


캐시 처리를 하지 않을 경우, 여러 이미지 셋을 불러올 때 뷰가 버벅거리게 됩니다. AlamofireImage는 캐시처리가 다소 어렵고 불편하게 되어 있는 반면, KingFisher은 자체 내장하고 있어 사용이 매우 편리합니다.


Kingfisher

  • import Kingfisher
    1
    imgProfile.kf.setImage(with: url!)
    cs

    기본 이미지뷰에 위와 같이 바로 처리가 가능합니다. 다만, AlamofireImage처럼 response에 따른 처리까지 가능한지는 아직 모르겠습니다. 분명 방법은 있을 것으로 보입니다.

AlamofireImage

  • import AlamofireImage
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Alamofire.request(url!).responseImage { response in
                        
          if response.data == nil {
                            
                Alamofire.request("basic_image_URL").responseImage { response in
                                
                imgView.image = UIImage(data: response.data!, scale:1)
                  }
          } else {
                imgView.image = UIImage(data: response.data!, scale:1)
          }
                        
    }
    cs

    AlamofireImage는 response에 따라 위와 같이 처리를 할 수 있습니다만, 기본 캐싱이 되지 않아 별도의 캐시처리가 필요합니다. 경우에 따라서는 alamofire가 좋을 수도 있고, 또 때로는 kingfisher가 좋을 수도 있겠네요.

사실 이 두 라이브러리는 단순히 이미지 주소로부터 이미지를 다운받는 것 뿐만 아니라 이미지 처리에 있어서도 탁월한 기능을 자랑합니다만, 제가 이 부분은 쓸 일이 아직까진 없어서 이만 줄이도록 하겠습니다.

댓글