OSS探訪

Kotlin Coroutinesを使ってAndroid・Compose Multiplatformへ画像を読み込み、cache・resize・request lifecycleを統合する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
11,912
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

CoilはAndroidとCompose Multiplatform向けのKotlin-first image loading libraryです。memory/disk cache、downsampling、requestの自動pause/cancel等を組み込み、ComposeではAsyncImageから画像を表示できます。network取得はOkHttpやKtor等のmoduleを別途選択します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

ComposeのAsyncImageから画像requestをUIへ組み込む

coil-composeを追加するとAsyncImage composableからmodelを指定して画像を読み込めます。Composeのlifecycleに合わせたrequest管理をlibrary側へ寄せられます。

出典:[1]

memory・disk cacheとdownsamplingで画像loadを最適化する

READMEはmemory/disk caching、downsampling、requestの自動pause/cancel等を主要な最適化として挙げています。大量画像を扱う画面で共通のloading policyを構成できます。

出典:[1]

network layerをOkHttpやKtorのmoduleとして選択する

Coil 3ではCompose packageとは別にnetwork implementationを追加する構成で、Quick Startはcoil-network-okhttpを例示しています。applicationのHTTP stackに合わせてnetwork moduleを選びます。

出典:[1]

向いている用途

Android・Compose Multiplatformで画像表示を共通化したい場合に向く

Kotlin/Composeを中心に、画像fetch・decode・cache・表示を同じAPIで扱いたいmobileおよびmultiplatform applicationに適します。

出典:[1]

導入前の確認

network dependencyを明示的に追加する

coil-composeだけではHTTP画像を取得するnetwork layerがありません。READMEのQuick StartのようにOkHttp等のnetwork artifactを用途に合わせて追加します。

出典:[1]

AndroidではminSdk 23以上を前提にする

3.6.3のgradle.propertiesはAndroidのminSdkを23、compile/target SDKを37に設定しています。既存applicationのminimum OS要件と一致するか確認します。

出典:[2]

3.6.3へ固定しbuild toolchainとの互換性を確認する

2026年9月18日公開の3.6.3はAndroid Gradle Plugin 9.4.0とR8に関するbuild failureを修正したpatch releaseです。Kotlin・Compose・AGP更新時はimage loadingだけでなくbuild互換性も回帰確認します。

出典:[3][4]

参考にした公式資料

  1. [1]Coil 3.6.3 README(2026-10-03)
  2. [2]Coil 3.6.3 gradle.properties(2026-10-03)
  3. [3]Coil 3.6.3 changelog(2026-10-03)
  4. [4]Coil 3.6.3 release(2026-10-03)
  5. [5]Coil Apache-2.0 license(2026-10-03)
編集部からの補足

Compose UIへ画像loadingを自然に組み込みたい場合に扱いやすく、network実装も用途に合わせて選べます。placeholderやcacheだけでなく、画面破棄時のrequest cancellation、画像size、通信層まで含めて実機performanceを確認してください。

3ステップで試す

  1. 1

    Coil 3.6.3のComposeとnetwork moduleを追加する

    Compose用artifactとHTTP画像取得用のOkHttp network artifactを同じversionで追加します。

    implementation("io.coil-kt.coil3:coil-compose:3.6.3") implementation("io.coil-kt.coil3:coil-network-okhttp:3.6.3")
  2. 2

    AsyncImageで画像を表示する

    Compose UIからURLをmodelとして渡し、Coilへfetch・decode・cache・request lifecycleを任せます。

    AsyncImage(model = "https://example.com/image.jpg", contentDescription = null)
  3. 3

    Android buildでintegrationを確認する

    既存projectのminSdk、Compose、AGP/R8構成で3.6.3がbuildできることを確認します。

    ./gradlew assembleDebug
公式READMEで確認

成長

成長の推移 · 直近30日

11,912 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
36
Open PR
20

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • android
  • kotlin
  • kotlin-coroutines
  • coroutines
  • image-loader
  • images
  • okio
  • androidx
  • compose
  • compose-multiplatform
Stars
11,912
Forks
794
Watchers
107
Open Issues
53
Contributors
117
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?