ナビゲーション コンポーネントを使用して、単一のアクティビティと複数のフラグメント スタイルのアプリケーションがあります。
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 にクラスのインスタンスを提供し、その後それを使い始める方法はありますか?