Coil alternatives and similar packages
Based on the "Image Loading" category.
Alternatively, view Coil alternatives based on common mentions on social networks and blogs.
-
Android-Universal-Image-Loader
Powerful and flexible library for loading, caching and displaying images on Android. -
glide-transformations
An Android transformation library providing a variety of image transformations for Glide. -
picasso-transformations
An Android transformation library providing a variety of image transformations for Picasso -
MediaPicker
DISCONTINUED. Media Picker is an Android Libary that lets you to select multiple images or video
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Coil or a related project?
README
[Coil](logo.svg)
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.
- Lightweight: Coil adds ~2000 methods to your APK (for apps that already use OkHttp and Coroutines), which is comparable to Picasso and significantly less than Glide and Fresco.
- Easy to use: Coil's API leverages Kotlin's language features for simplicity and minimal boilerplate.
- Modern: Coil is Kotlin-first and uses modern libraries including Coroutines, OkHttp, Okio, and AndroidX Lifecycles.
Coil is an acronym for: Coroutine Image Loader.
Made with ❤️ at Instacart. Translations: [한국어](README-ko.md), [中文](README-zh.md), [Türkçe](README-tr.md), [日本語](README-ja.md)
Download
Coil is available on mavenCentral()
.
implementation("io.coil-kt:coil:2.2.2")
Quick Start
ImageViews
To load an image into an ImageView
, use the load
extension function:
// URL
imageView.load("https://www.example.com/image.jpg")
// File
imageView.load(File("/path/to/image.jpg"))
// And more...
Requests can be configured with an optional trailing lambda:
imageView.load("https://www.example.com/image.jpg") {
crossfade(true)
placeholder(R.drawable.image)
transformations(CircleCropTransformation())
}
Jetpack Compose
Import the Jetpack Compose extension library:
implementation("io.coil-kt:coil-compose:2.2.2")
To load an image, use the AsyncImage
composable:
AsyncImage(
model = "https://example.com/image.jpg",
contentDescription = null
)
Image Loaders
Both imageView.load
and AsyncImage
use the singleton ImageLoader
to execute image requests. The singleton ImageLoader
can be accessed using a Context
extension function:
val imageLoader = context.imageLoader
ImageLoader
s are designed to be shareable and are most efficient when you create a single instance and share it throughout your app. That said, you can also create your own ImageLoader
instance(s):
val imageLoader = ImageLoader(context)
If you do not want the singleton ImageLoader
, depend on io.coil-kt:coil-base
instead of io.coil-kt:coil
.
Requests
To load an image into a custom target, enqueue
an ImageRequest
:
val request = ImageRequest.Builder(context)
.data("https://www.example.com/image.jpg")
.target { drawable ->
// Handle the result.
}
.build()
val disposable = imageLoader.enqueue(request)
To load an image imperatively, execute
an ImageRequest
:
val request = ImageRequest.Builder(context)
.data("https://www.example.com/image.jpg")
.build()
val drawable = imageLoader.execute(request).drawable
Check out Coil's full documentation here.
Requirements
- Min SDK 21+
- Java 8+
R8 / Proguard
Coil is fully compatible with R8 out of the box and doesn't require adding any extra rules.
If you use Proguard, you may need to add rules for Coroutines, OkHttp and Okio.
License
Copyright 2022 Coil Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*Note that all licence references and agreements mentioned in the Coil README section above
are relevant to that project's source code only.