상세 컨텐츠

본문 제목

안드로이드 compose에서 Image 최적화하여 노출하기 (coil)

Android 자료실/오픈 소스

by Victorywskim 2023. 11. 25. 15:39

본문

반응형

 

 

Coil

Overview An image loading library for Android backed by Kotlin Coroutines. Coil is: Fast: Coil performs a number of optimizations including memory and disk caching, downsampling the image in memory, automatically pausing/cancelling requests, and more. Ligh

coil-kt.github.io

 

안드로이드 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,
)

 

위 적용 방법은 기본적인 적용 방법이고 추가적인 옵션도 많이 제공하고 있으니 상단에 첨부한 링크에 들어가셔서 다양한 기능들도 사용해보시길 바랍니다.

 

감사합니다.

 

반응형

관련글 더보기