[SwiftUI] AsyncImage 간단하게 사용해보기

beeeen·2023년 8월 5일
0

iOS

목록 보기
5/15

원래 URLImage 서드파티를 통해 이미지를 불러왔었는데, 계속 nil 값이 떠서 앱이 죽는 현상이 발생했습니다 🥲
문제가 무엇인지 찾고는 있으나 앱 죽는 현상을 빨리 해결하고 싶어서 다른 방안을 찾던 중, Apple이 제공하는 AsyncImage를 발견했습니다.
URLImage와 동일하게 URL을 넘겨주면 Image로 보여주는 View입니다!

placeholder 또한 커스텀이 가능하기 때문에, 제 프로젝트 내에서 충분히 URLImage를 대체할 수 있다고 판단되어 대체 작업을 시작했습니다!

저는 크게 커스텀을 원하지 않고 프레임 설정, placeholder 설정만 하면 됐기에 코드가 아주 간단해용

import SwiftUI

func fetchImage(url: String) -> some View {
	AsyncImage(url: URL(string: url)) { image in
    	image.resizable()
    } placeholder: {
    	ProgressView()
    }
    .frame(width: 75, height: 105)

짜잔 ! 완전 간단하죠 😊

결과를 살펴보면, 로딩 중일 때는 첫번째처럼 ProgressView가 보이고 이미지 로드가 끝나면 두번째처럼 이미지가 뜹니다!


아 참고로 예시 코드처럼 클로저를 열게 되면 placeholder 커스텀을 안하더라도 꼭 작성해주셔야 하고 내부를 비워두면 아무 것도 안뜹니다!
저처럼 progress view를 띄우고 싶으시다면 꼭 작성해주시고 그 외에 네모를 넣기, 색 지정 등 다양한 커스텀 전부 가능합니닷.


AsyncImage | Apple Developer Documentation

profile
iOS developer 👩🏻‍💻

0개의 댓글