외부 패키지인 KingFisher를 사용해 이미지를 불러오려고 했다.
원래는 카카오맵에서 식당사진을 불러오고 싶었지만, 카카오 REST API에서는 사진은 개인 재산권이기 때문에 REST API로는 받아올 수 없다고 했다.
그래서 사진은 개인적으로 다운 받아서 GitHub Repository에 저장해서 Repository에서 불러오기로 했다.
처음에는 이미지 파일을 SVG파일로 저장해서 불러오고 싶었는데, KingFisher를 이용해서는 SVG파일을 불러올 수 없어서 SVGKit도 같이 사용해서 이미지를 불러와야 했다. 하지만 왜인지 모르게 GitHub Repository에 SVG 이미지 파일을 업로드 하면 이미지파일이 깨져서 파일을 불러올 수 없었다.
결국 SVG이미지 파일로 받아오는 것은 포기하고 PNG파일로 이미지를 받아오도록 수정했다.
func downloadImage(placeName: String, completion: @escaping (UIImage?) -> Void) {
guard let url = URL(string: "https://raw.githubusercontent.com/5ttuki-Curry/ImageStorage/main/\(placeName).png") else {
print("Invalid URL")
completion(nil)
return
}
KingfisherManager.shared.retrieveImage(with: url, options: nil, progressBlock: nil) { result in
switch result {
case .success(let value):
// 이미지 다운로드 성공, UIImage 반환
DispatchQueue.main.async {
completion(value.image)
}
case .failure(let error):
// 이미지 다운로드 실패
print("Error downloading image: \(error)")
DispatchQueue.main.async {
completion(UIImage(named: "NoImage"))
}
}
}
}