3

ナビゲーション コンポーネントを使用して、単一のアクティビティと複数のフラグメント スタイルのアプリケーションがあります。

DIにKoinを使用しています。クリーンなアーキテクチャの前提に従って、アプリケーションに Navigator クラスを作成したいと考えていました。

この仮想クラスは次のようになります。

class Navigator(private val navHostFragment: NavHostFragment)
{

    fun toStudentsProfile():Unit
    {
        val action = HomeFragmentDirections.toStudentsProfile()
        navHostFragment.findNavController().navigate(action)
    }

    fun toTeachersProfile():Unit
    {
        val action = HomeFragmentDirections.toTeachersProfile()
        navHostFragment.findNavController().navigate(action)
    }
}

私の問題は、Koin コンテナーの下でこれをどのように作成すればよいですか?

val platformModule = module {

    single { Navigator("WHAT CAN BE DONE HERE") }
    single { Session(get()) }
    single { CoroutineScope(Dispatchers.IO + Job()) }

}

さらに、Koin コンポーネントは navhostfragment の準備が整う前に準備が整うため、そもそも依存関係を満たすことができません。

Koin にクラスのインスタンスを提供し、その後それを使い始める方法はありますか?

4

1 に答える 1