코딩하는 일용직 노동자

Coil - 안드로이드 이미지로더 본문

안드로이드

Coil - 안드로이드 이미지로더

bacass 2020. 10. 25. 14:53

Coil - android image loader

# Coil은 무엇인가?

이번 포스팅은 새로나온 이미지 로딩 라이브러리 Coil에 대해 알아보겠습니다.

요즘 실무에서 가장 많이쓰이는 이미지 라이브러리라면 Glide를 꼽을 수 있겠습니다.
하지만 Coil은 Glide 보다도 더 가볍게 만들어져 있기에 간단한 앱에 사용해보기에 괜찮을 듯 합니다.

Coil은: Coroutine Image Loader의 약자입니다.
Coil은 Kotlin Coroutines으로 만들어진 Android 백앤드 이미지 로딩 라이브러리입니다. 
코루틴 자체가 내장이 되어있기 때문에 코루틴을 별도로 생성하지 않아도됩니다.


공식 사이트에서 소개하는 Coil 장점은 아래와 같습니다.

빠르다: Coil은 메모리와 디스크의 캐싱, 메모리의 이미지 다운 샘플링, Bitmap 재사용, 일시정지/취소의 자동화 등등 수 많은 최적화 작업을 수행합니다.
가볍다: Coil은 최대 2000개의 method들을 APK에 추가합니다(이미 OkHttp와 Coroutines을 사용중인 앱에 한하여), 이는 Picasso 비슷한 수준이며 Glide와 Fresco보다는 적습니다.
사용하기 쉽다: Coil API는 심플함과 최소한의 boilerplate를 위하여 Kotlin의 기능을 활용합니다.
현대적이다: Coil은 Kotlin 우선이며 Coroutines, OkHttp, Okio, AndroidX Lifecycles등의 최신 라이브러리를 사용합니다.


최소 Android SDK 14버전부터 사용이 가능하고 Kotlin 환경에서 사용해야 하는것은 단점일수 있겠습니다.

# 사용방법
Project 레벨 build.gradle 파일에 다음과 같이 mavenCentral() 을 추가해줍니다.

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}



Module 레벨 build.gradle 파일에 라이브러리를 적용해줍니다.

implementation("io.coil-kt:coil:1.0.0")

 

사용방법은 굉장히 간단합니다.

// URL
imageView.load("https://www.example.com/image.jpg")

// Resource
imageView.load(R.drawable.image)

// File
imageView.load(File("/path/to/image.jpg"))

// And more...

 

이미지를 후처리 하거나 placeholder 를 적용하려면 아래처럼 적용하면 됩니다.

imageView.load("https://www.example.com/image.jpg") {
    crossfade(true)
    crossfade(400)
    placeholder(R.drawable.ic_placeholder)
    transformations(CircleCropTransformation())
}

 

이밖에도 다양한 사용방법들이 있으니 아래 링크로 가셔서 확인해보시기 바랍니다.
https://coil-kt.github.io/coil/

 

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, re-using bitmaps, automatically pausing/cancelling re

coil-kt.github.io