メインコンテンツまでスキップ

Extension Manager (拡張機能マネージャー)

KoinExtensionマネージャーの簡単な説明です。これは、Koinフレームワーク内に新しい機能を追加するために使用されます。

拡張機能の定義

Koin拡張機能は、KoinExtensionインターフェースを継承するクラスを持つことで構成されます。

interface KoinExtension {

var koin : Koin

fun onClose()
}

このインターフェースを使用すると、Koinインスタンスが渡されることが保証され、Koinが閉じるときに拡張機能が呼び出されます。

拡張機能の開始

拡張機能を開始するには、システムの適切な場所を拡張し、Koin.extensionManagerに登録します。

以下は、coroutinesEngine拡張機能を定義する方法です。

fun KoinApplication.coroutinesEngine() {
with(koin.extensionManager) {
if (getExtensionOrNull<KoinCoroutinesEngine>(EXTENSION_NAME) == null) {
registerExtension(EXTENSION_NAME, KoinCoroutinesEngine())
}
}
}

以下は、coroutinesEngine拡張機能を呼び出す方法です。

val Koin.coroutinesEngine: KoinCoroutinesEngine get() = extensionManager.getExtension(EXTENSION_NAME)