Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coil-kt/coil
Image loading for Android and Compose Multiplatform.
https://github.com/coil-kt/coil
android androidx compose compose-multiplatform coroutines image-loader images kotlin kotlin-coroutines okio
Last synced: 6 days ago
JSON representation
Image loading for Android and Compose Multiplatform.
- Host: GitHub
- URL: https://github.com/coil-kt/coil
- Owner: coil-kt
- License: apache-2.0
- Created: 2019-08-10T21:28:21.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-21T18:37:20.000Z (6 months ago)
- Last Synced: 2024-05-22T19:36:27.394Z (6 months ago)
- Topics: android, androidx, compose, compose-multiplatform, coroutines, image-loader, images, kotlin, kotlin-coroutines, okio
- Language: Kotlin
- Homepage: https://coil-kt.github.io/coil/
- Size: 119 MB
- Stars: 10,342
- Watchers: 104
- Forks: 637
- Open Issues: 45
-
Metadata Files:
- Readme: README-ja.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: docs/code_of_conduct.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-android - Coil - Image loading for Android backed by Kotlin Coroutines. (Libraries / GUI)
- awesome-kotlin - coil - Image loading for Android backed by Kotlin Coroutines. (Libraries)
- StarryDivineSky - coil-kt/coil
- awesome-list - coil-kt/coil - Image loading for Android and Compose Multiplatform. (Kotlin)
- awesome - Coil
README
![Coil](logo.svg)
Coil は Kotlin Coroutines で作られた Android 用の画像読み込みライブラリです。 Coil は:
- **高速**: Coil は、メモリとディスクのキャッシング、メモリ内の画像のダウンサンプリング、リクエストの一時停止/キャンセルの自動化など、多くの最適化を実行します。
- **軽量**: Coil は ~2000 のメソッドを APK に追加します (すでに OkHttp と Coroutines を使用しているアプリの場合)。これは Picasso に匹敵し、Glide や Fresco よりも大幅に少ない数です。
- **使いやすい**: Coil の API は、ボイラープレートの最小化とシンプルさのために Kotlin の言語機能を活用しています。
- **現代的**: Coil は Kotlin ファーストで、Coroutines、OkHttp、Okio、AndroidX Lifecycles などの最新のライブラリを使用します。Coil は **Co**routine **I**mage **L**oader の頭字語です。
## ダウンロード
Coil は `mavenCentral()` で利用できます。
```kotlin
implementation("io.coil-kt:coil:2.5.0")
```## クイックスタート
#### ImageViews
画像を `ImageView` に読み込むには、 `load` 拡張関数を使用します。
```kotlin
// URL
imageView.load("https://example.com/image.jpg")// File
imageView.load(File("/path/to/image.jpg"))// And more...
```Requests は、 trailing lambda 式を使用して追加の設定を行うことができます:
```kotlin
imageView.load("https://example.com/image.jpg") {
crossfade(true)
placeholder(R.drawable.image)
transformations(CircleCropTransformation())
}
```#### Jetpack Compose
[Jetpack Compose](https://developer.android.com/jetpack/compose) 拡張ライブラリをインポートします:
```kotlin
implementation("io.coil-kt:coil-compose:2.5.0")
```画像を読み込むには、`AsyncImage` composable を使用します:
```kotlin
AsyncImage(
model = "https://example.com/image.jpg",
contentDescription = null,
)
```#### Image Loaders
`imageView.load` と `AsyncImage` はシングルトンの `ImageLoader` を使用して画像リクエストを実行します。 シングルトンの `ImageLoader` には `Context` 拡張関数を使用してアクセスできます:
```kotlin
val imageLoader = context.imageLoader
````ImageLoader` は共有できるように設計されており、単一のインスタンスを作成してアプリ全体で共有すると最も効率的です。 また、独自の `ImageLoader` インスタンスを作成することもできます:
```kotlin
val imageLoader = ImageLoader(context)
```シングルトンの `ImageLoader` が必要ない場合は、 `io.coil-kt:coil` の代わりに `io.coil-kt:coil-base` を使用してください。
#### Requests
画像をカスタムターゲットにロードするには、 `ImageRequest` を `enqueue` してください:
```kotlin
val request = ImageRequest.Builder(context)
.data("https://example.com/image.jpg")
.target { drawable ->
// Handle the result.
}
.build()
val disposable = imageLoader.enqueue(request)
```画像を命令的にロードするには、 `ImageRequest` を `execute` してください:
```kotlin
val request = ImageRequest.Builder(context)
.data("https://example.com/image.jpg")
.build()
val drawable = imageLoader.execute(request).drawable
```[こちらで Coil の完全なドキュメント](https://coil-kt.github.io/coil/getting_started/) を確認してください。
## R8 / Proguard
Coil は R8 と完全に互換性があり、追加のルールを追加する必要はありません。
Proguardを使用している場合は、[Coroutines](https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro)、[OkHttp](https://github.com/square/okhttp/blob/master/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro)にルールを追加する必要があるかもしれません。
## ライセンス
Copyright 2023 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 athttps://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.