Skip to main content
Version: 0.11.4

ViewModels

Once you've added Tangle as a dependency, implementing ViewModel injection is easy.

1. Annotate your ViewModels

ViewModel injection is done through the @VMInject constructor annotation.

class MyViewModel @VMInject constructor(
val myRepository: MyRepository
) : ViewModel() {
// ...
}

2. Tell Tangle about the AppComponent

TangleGraph must be initialized as early as possible -- typically in Application.onCreate().

import android.app.Application
import tangle.inject.TangleGraph

class MyApplication : Application() {

override fun onCreate() {
super.onCreate()

val myAppComponent = DaggerAppComponent.factory()
.create(this)

TangleGraph.init(myAppComponent)
}
}

3. Use the tangleViewModel delegate

class MyFragment : Fragment() {
val viewModel by tangleViewModel<MyViewModel>()

// ...
}