Sobes.tech
Junior — Middle

¿Cómo se define el ámbito de dependencias en Dagger y para qué sirve?

sobes.tech AI

Respuesta de la IA

En Dagger, el alcance (Scope) define el ciclo de vida y la unicidad de las dependencias creadas. Es necesario para gestionar la duración de los objetos y evitar la creación innecesaria de nuevas instancias.

Por ejemplo, si se marca un componente y un proveedor de dependencias con el mismo alcance, Dagger creará una única instancia de esa dependencia durante toda la vida del componente.

El alcance ayuda a:

  • Reutilizar objetos dentro de un mismo ámbito (por ejemplo, sesión o pantalla).
  • Controlar la creación y destrucción de dependencias.
  • Evitar fugas de memoria y consumo excesivo de recursos.

Ejemplo de definición de alcance:

@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}

@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
    // dependencias
}

Aquí, ActivityScope garantiza que todas las dependencias con esta anotación se creen una sola vez durante el ciclo de vida del componente.