ES
@Singleton
@Component
interface AppComponent {
fun getMainViewModel(): MainViewModel
}
@Singleton
class MainViewModel @Inject constructor() : ViewModel() {
//FIRST_ACTIVITIY
@Inject lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = App.dagger.getMainViewModel()
//TWO_ACTIVITIY
val viewModel:MainViewModel by lazy { App.dagger.getMainViewModel() }
В чем разница между двумя способами инициализации и зачем нужен Dagger, когда можно заюзать как
object