Sobes.tech
Junior — Middle

¿Cómo se puede garantizar la conservación del objeto asociado con el componente activo en Koin?

sobes.tech AI

Respuesta de la IA

En Koin, para guardar un objeto asociado con un componente activo (por ejemplo, una Activity o Fragment), se utiliza un ámbito (scope) vinculado al ciclo de vida de ese componente.

Para asegurar la conservación del objeto durante la vida del componente, se debe:

  1. Crear un scope vinculado al componente.
  2. Definir las dependencias dentro de ese scope.
  3. Utilizar el scope para obtener instancias que vivirán tanto como el componente.

Ejemplo para Activity:

val activityModule = module {
    scope<Activity> {
        scoped { MyScopedDependency() }
    }
}

// En la Activity
class MyActivity : AppCompatActivity() {
    private val myDependency: MyScopedDependency by currentScope.inject()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
    }
}

De esta forma, el objeto MyScopedDependency será creado y guardado dentro del ciclo de vida de MyActivity y destruido junto con ella.