Code Base/Image Download

[iOS] 이미지 다운로드 속도 개선하기

Minny27 2022. 2. 4. 15:55

오늘의 결과 화면입니다.

url로부터 다운로드한 이미지를 imageView에 할당하는 방법은 이전 글에서 설명했습니다.

하지만 이 방법은 다운로드 속도가 매우 느립니다.

Image View의 확장을 통해서 이미지 다운로드 속도를 개선해보겠습니다.

 

 

 

[Step 1] UIImageView 파일 생성하기

 

 

 

[Step 2] Image View 확장하기

 

코드

extension UIImageView {
    func downloadImage(url: URL) {
        DispatchQueue.global().async {
            if let data = try? Data(contentsOf: url) {
                if let image = UIImage(data: data) {
                    DispatchQueue.main.async {
                        self.image = image
                    }
                }
            }
        }
    }
}

 

 

 

[Step 3] 확장한 코드 적용하기

// url 변수의 타입은 URL입니다.
imageView.downloadImage(url: url)

// 예시
homeTeamImageView.downloadImage(url: leagueScheduleTableViewCellModel.homeTeamImageUrl)

 

이 방법이 속도가 더 빠른 이유는 멀티스레드 환경에서의 각각의 이미지를 병렬로 다운로드했기 때문입니다.

이 부분은 차후에 다시 정리하겠습니다.

 

 

 

※ 참고 출처

hongssup

 

[Swift iOS] url 이용하여 image 받아오기

url로 이미지 불러오는 일이 이렇게 복잡한 지 처음 알았다... 그냥 대충 setImage에 url 인자 넣으면 되는 줄 알았더니 생각보다 아주 까다롭구만.. 다음과 같이 UIImageView에 extension으로 url로 이미지

hongssup.tistory.com

'Code Base > Image Download' 카테고리의 다른 글

[iOS] url로 부터 이미지 다운로드하기  (0) 2022.02.04