OSS探訪

Kotlin・Android・Kotlin MultiplatformでDSL中心の軽量dependency injectionを構成する

スコアの見方

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

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

概要

KoinはKotlin向けのdependency injection frameworkで、module DSLにsingletonやfactoryを宣言し、startKoinからdependency graphを起動します。AndroidとKotlin Multiplatformを対象にし、classic DSLに加えてCompiler Pluginによるcompile-safeなdependency解決も提供します。

特徴と向いている用途

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

主な特徴

module DSLでdependency definitionを宣言する

module内にsingleやfactory等のdefinitionを置き、constructor dependencyをKoin containerから解決できます。KotlinらしいDSLでconfigurationを記述できます。

出典:[4][2]

Android・KMPとcompile-safe DIへ展開する

coreからAndroid、Compose、Kotlin Multiplatformへpackageを追加でき、Compiler Pluginを使う構成ではmissing binding等をcompile時に検出できます。

出典:[2][4]

向いている用途

Kotlin applicationでDI boilerplateを抑えつつ構成を明示したい場合に向く

annotation生成だけに依存せずDSLでmodule構造を読みやすく保ち、AndroidやKMPまで同じDI conceptを持ち込みたいprojectに向きます。

出典:[2][4]

導入前の確認

4.2.2のcoreと関連moduleを同一release lineへ揃える

repositoryのcurrent koinVersionとlatest releaseはいずれも4.2.2です。Android、Compose等の関連artifactも同じrelease lineに揃えてdependency mismatchを避けます。

出典:[3][5]

Compiler Plugin DSLはplugin setupを前提にする

READMEとquickstartはcompile-safeなCompiler Pluginを案内していますが、plugin未設定で同じDSLを使えるわけではありません。まずclassic DSLで始めるか、Compiler Pluginをprojectへ明示的に設定します。

出典:[2][4]

参考にした公式資料

  1. [1]InsertKoinIO/koin repository(2026-09-30)
  2. [2]Koin README(2026-09-30)
  3. [3]Koin gradle.properties(2026-09-30)
  4. [4]Koin Kotlin quickstart(2026-09-30)
  5. [5]Koin 4.2.2 release(2026-09-30)
  6. [6]Koin Apache 2.0 license(2026-09-30)
編集部からの補足

Koin 4.2.2はKotlin/Kotlin Multiplatform向けの軽量DI frameworkです。classic DSLでruntime injectionを始められる一方、Compiler Pluginを使うとdependency graphをcompile時に検証できます。Compiler Plugin DSLは別途plugin setupが必要なので、採用時はclassic DSLとの境界を明確にしてください。

3ステップで試す

  1. 1

    Koin 4.2.2 coreを追加

    Kotlin applicationへcurrent stable coreを追加します。

    implementation("io.insert-koin:koin-core:4.2.2")
  2. 2

    moduleへdependencyを定義

    まずclassic DSLでsingleton definitionを1つ作ります。

    val appModule = module { single { UserService() } }
  3. 3

    Koinを起動して取得

    main entrypointでmoduleを読み込み、containerからinstanceを解決します。

    startKoin { modules(appModule) } val service = KoinPlatform.getKoin().get<UserService>()
公式READMEで確認

成長

成長の推移 · 直近30日

10,021 Stars

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

Built with

カテゴリとタグ

GitHubデータ

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

GitHub Topics

  • android
  • dependency-injection
  • injection
  • kotlin
  • kotlin-multiplatform
  • kotlin-multiplatform-library
  • library
Stars
10,021
Forks
790
Watchers
105
Open Issues
73
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/20

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

情報の誤りを報告

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

このページを読んで、次に何をすればよいか分かりましたか?
Koinとは?Kotlin・KMP向け軽量Dependency Injectionフレームワーク | OSS探訪