0Pricing
Kotlin Multiplatform Academy · Lección

Inyecte dependencias en ViewModels y repositorios

Resuelva las dependencias de forma limpia en toda la aplicación

Inyecte dependencias en ViewModels y repositorios es una lección gratuita de Kotlin Multiplatform Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Multiplatform Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en 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. 🎯

Preguntas frecuentes

¿La lección «Inyecte dependencias en ViewModels y repositorios» es gratis?

Sí — el texto completo de «Inyecte dependencias en ViewModels y repositorios» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Multiplatform Academy, actualiza a CoddyKit PRO. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Inyecte dependencias en ViewModels y repositorios»?

Resuelva las dependencias de forma limpia en toda la aplicación Practicas Kotlin Multiplatform Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Multiplatform Academy?

No se requiere experiencia previa. Kotlin Multiplatform Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Inyecte dependencias en ViewModels y repositorios»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Multiplatform Academy?

Sí. Cada lección de Kotlin Multiplatform Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Declare un módulo Koin compartido
  2. Scopes single frente a factory
  3. Inicie Koin en Android e iOS
  4. Inyecte dependencias en ViewModels y repositorios
← Volver a Kotlin Multiplatform Academy