Injete em ViewModels e repositórios
Resolva dependências de forma limpa por toda a aplicação
Injete em ViewModels e repositórios é uma aula grátis de Kotlin Multiplatform Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
From Declared to Used
You registered dependencies and started Koin. Now comes the payoff: injecting those objects into your repositories and view models without building them by hand.
Constructor Injection First
The cleanest style is constructor injection: list what a class needs as parameters, and Koin fills them via get() in the module.
single { UserRepository(api = get()) }A Repo That Takes Deps
Your repository simply declares its needs in the constructor. It never touches Koin, which keeps it easy to test in isolation.
class UserRepository(private val api: ApiClient)Inject into a ViewModel
A shared ViewModel takes the repository through its constructor too, so all of its data comes from one injected source.
class UserViewModel(private val repo: UserRepository)Register the ViewModel
Add the view model to your module. A factory fits well, giving each screen its own fresh instance.
factory { UserViewModel(get()) }Resolve from Android Compose
On Android the koinViewModel() helper hands a Compose screen the wired-up view model in a single call.
val vm: UserViewModel = koinViewModel()Resolve from iOS
From Swift you ask Koin for the same view model through a small bridge function, so SwiftUI gets an identically wired object. 🍏
Avoid the Service Locator Trap
Prefer constructor injection over calling get() deep inside classes. Hidden lookups make code harder to read, reuse, and test.
Inject Interfaces, Not Classes
Depend on an interface and let Koin supply the implementation. Swapping in a fake for tests then becomes a one-line module change.
single<UserRepository> { UserRepositoryImpl(get()) }The Whole Chain
Notice the chain Koin assembles for you: client builds repo, repo builds use case, use case builds view model, all from constructors.
factory { UserViewModel(get(), get()) }Testing Becomes Easy
Because everything arrives through constructors, your tests just pass fakes directly, no Koin required, keeping unit tests fast and predictable.
Quick Check
Choose the cleanest injection style.
Recap
You injected dependencies through constructors into repos and view models, resolved them per platform, and saw why interfaces plus constructor injection make testing a breeze. 🎯
Perguntas Frequentes
A aula “Injete em ViewModels e repositórios” é grátis?
Sim — o texto completo de “Injete em ViewModels e repositórios” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.
O que vou aprender em “Injete em ViewModels e repositórios”?
Resolva dependências de forma limpa por toda a aplicação Você pratica Kotlin Multiplatform Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Multiplatform Academy?
Nenhuma experiência prévia é necessária. Kotlin Multiplatform Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Injete em ViewModels e repositórios”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Multiplatform Academy?
Sim. Cada aula de Kotlin Multiplatform Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Declare um módulo Koin compartilhado
- Scopes single versus factory
- Inicie o Koin no Android e no iOS
- Injete em ViewModels e repositórios