0Pricing
Android Academy · Lección

¿Por qué usar inyección de dependencias?

Haga que el código sea comprobable y modular

¿Por qué usar inyección de dependencias? es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 1 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 Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.

¿Qué es la inyección de dependencias?

La inyección de dependencias (DI) consiste en proporcionar a un objeto lo que necesita desde el exterior, en lugar de permitir que lo cree por sí mismo.

El problema: dependencias rígidas

Cuando una clase construye sus propias dependencias, queda estrechamente acoplada y resulta difícil modificarla o probarla.

class UserViewModel {
    private val repo = UserRepository(
        ApiClient(), AppDatabase.get()
    ) // tightly coupled
}

La solución: inyectarlas

Pase las dependencias mediante el constructor. Así, la clase deja de preocuparse por cómo se crean.

class UserViewModel(
    private val repo: UserRepository
) {
    // repo supplied from outside
}

Ventaja 1: facilidad de prueba

En las pruebas puede pasar un repositorio falso o simulado, de modo que pruebe el ViewModel sin una red ni una base de datos reales.

val vm = UserViewModel(FakeUserRepository())

Ventaja 2: modularidad

Como las clases dependen de abstracciones, puede cambiar las implementaciones —por ejemplo, una API real por un stub sin conexión— sin modificar el consumidor.

Depender de interfaces

Haga que las clases dependan de una interfaz, no de un tipo concreto. Esta es la clave para sustituir implementaciones fácilmente.

interface UserRepository {
    suspend fun getUsers(): List<User>
}

class NetworkUserRepository(
    private val api: ApiService
) : UserRepository { /* ... */ }

Ventaja 3: responsabilidad única

Las clases se centran en su tarea, no en construir sus colaboradores. La creación de objetos pasa a un lugar específico.

La DI manual se vuelve complicada

Puede implementar la DI manualmente, pero a medida que el grafo crece, termina conectando muchos objetos de forma manual y pasándolos a través de los constructores. Es tedioso y propenso a errores.

val db = AppDatabase.get(context)
val api = ApiService.create()
val repo = NetworkUserRepository(api)
val vm = UserViewModel(repo)
// ...repeated everywhere

Entra en escena un framework de DI

Un framework automatiza esta conexión. Usted declara una sola vez cómo construir cada dependencia y el framework construye todo el grafo por usted.

¿Por qué Hilt?

Hilt es el framework de DI recomendado para Android. Basado en Dagger, proporciona componentes estándar con alcance adaptado a las clases de Android (Application, Activity, ViewModel), con mucho menos código repetitivo.

Qué le ofrece Hilt

  • Generación automática del grafo de dependencias.
  • Ámbitos conscientes del ciclo de vida.
  • Inyección sencilla en Activities, Fragments y ViewModels.

Las siguientes lecciones lo configuran.

Comprobación rápida

Compruebe cuánto ha comprendido sobre la inyección de dependencias.

Resumen

Ha aprendido lo siguiente:

  • La DI proporciona las dependencias desde el exterior en lugar de crearlas internamente.
  • Mejora la facilidad de prueba, la modularidad y la separación de responsabilidades.
  • Haga que el código dependa de interfaces.
  • La DI manual no escala bien; Hilt la automatiza.

Preguntas frecuentes

¿La lección «¿Por qué usar inyección de dependencias?» es gratis?

Sí — el texto completo de «¿Por qué usar inyección de dependencias?» 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 Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.

¿Qué aprenderé en «¿Por qué usar inyección de dependencias?»?

Haga que el código sea comprobable y modular Practicas Android 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 Android Academy?

No se requiere experiencia previa. Android 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 1 de 4.

¿Cuánto tiempo toma la lección «¿Por qué usar inyección de dependencias?»?

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 Android Academy?

Sí. Cada lección de Android 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. ¿Por qué usar inyección de dependencias?
  2. Configurar Hilt
  3. Módulos y proveedores
  4. Inyectar en ViewModels
← Volver a Android Academy