안드로이드 xml 방식에서는 Glide 를 애용하였는데 Compose 에서는 Glide 가 조합이 좀 안맞다는 것이 느껴졌습니다.
Glide 도 Compose 용으로도 나와 있고, 사용하시는 분들도 충분히 많다고 생각하지만 저는 Glide 를 버리고 Coil 로 갈아타게 되었습니다.
많은 자료들을 찾아보면 정리한 내용은 다음과 같습니다.
기능 | Glide | Coil |
인기도 | 높음 | 낮음 |
문서화 | 뛰어남 | 보통 |
기능 | 다양 | 기본 |
성능 | 뛰어남 | 뛰어남 |
메모리 사용량 | 많음 | 적음 |
최신 API 지원 | 보통 | 뛰어남 |
어떤 라이브러리를 사용해야 할까요?
두 라이브러리 모두 이미지를 로드하고 표시하는 데 훌륭한 작업을 수행합니다. 선택하는 라이브러리는 앱의 특정 요구 사항에 따라 다릅니다.
- 성능이 중요하고 메모리 사용량을 최소화하려면 Coil을 사용하는 것이 좋습니다.
- 다양한 기능이 필요하고 잘 문서화된 라이브러리를 원하면 Glide를 사용하는 것이 좋습니다.
다음은 두 라이브러리의 몇 가지 구체적인 사용 사례입니다.
- 성능이 중요한 앱: 슬라이드쇼, 게임 또는 기타 그래픽이 많이 사용되는 앱의 경우 Coil을 사용하는 것이 좋습니다.
- 저장 공간이 제한된 앱: 모바일 앱 또는 wearable 앱의 경우 Coil을 사용하여 이미지 캐싱을 최적화할 수 있습니다.
- 다양한 이미지 형식을 지원해야 하는 앱: Glide는 Coil보다 더 많은 이미지 형식을 지원합니다.
- 복잡한 이미지 조정이 필요한 앱: Glide는 Coil보다 더 많은 이미지 조정 기능을 제공합니다.
저에게 필요한 것은 다양한 기능보다도 가볍고 성능이 뛰어난 라이브러리가 필요했고 그에 따라 Coil 을 선택하게 되었습니다. (Compose 의 선언형 프로그래밍 방식에도 Coil 과 같은 가벼운 라이브러리가 더 적합하다고 생각합니다.)
사용 방법은 다음과 같습니다.
1. dependency 추가
implementation("io.coil-kt:coil-compose:2.5.0")
2. 이미지 로드
AsyncImage(
model = ImageRequest.Builder(LocalContext.current).data("https://example.com/image.jpg")
.build(),
placeholder = null,
contentDescription = "",
contentScale = ContentScale.FillWidth,
)
위 적용 방법은 기본적인 적용 방법이고 추가적인 옵션도 많이 제공하고 있으니 상단에 첨부한 링크에 들어가셔서 다양한 기능들도 사용해보시길 바랍니다.
감사합니다.
안드로이드 compose에서 pinch to zoom 만들기 (zoomable) (1) | 2023.11.25 |
---|---|
안드로이드(ANDROID) - 알아두면 유용할 오픈 소스 모음 (0) | 2020.03.31 |