Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Inyección de Dependencias con Koin

Inyección de Dependencias con Koin

Talks for the Android Dev Perú community.

Jose Flavio Quispe Irrazábal

November 28, 2018
Tweet

More Decks by Jose Flavio Quispe Irrazábal

Other Decks in Programming

Transcript

  1. Principio de Inversión de Dependencias ◆ Módulos importantes de tu

    app no tienen que depender de frameworks de UI, librerías, repositorios de datos, red, etc ◆ Se logra gracias a abstracción (usas interfaces)
  2. Principio de Inversión de Dependencias UI Layer UI Layer Data

    Layer Business Layer Data Layer Business Layer Flujo Dependencia
  3. Inyección de dependencias ◆ Patrón de diseño ◆ Permite desacoplamiento

    ◆ Facilita el cumplimiento del principio de inversión de dependencias ◆ “Las clases no crean objetos a utilizar, un contenedor se las pasa (inyecta)”
  4. Inyección de dependencias ◆ El reemplazo de la implementación de

    un componente se hace sumamente fácil ◆ Las piezas de software se hacen independientes y se comunican por interfaces ◆ Se extraen estas responsabilidades a un...
  5. Inyección de dependencias: Contenedor IOC ◆ Contenedor de Inversión de

    Control ◆ Inyectará las dependencias ◆ Las dependencias se registran en el contenedor ◆ Un framework puede decidir cuando se instancian estas dependencias en función de cuando se utilicen
  6. De manera simple class Auto (private val motor: Motor) class

    Auto { private lateinit var motor: Motor fun injectMotor(motor: Motor){ this.motor = motor } } Por el constructor Por un método (puedes crear otra clase que lo inyecte)
  7. Koin ◆ Conceptos básicos: ◆ applicationContext: contexto de aplicación Koin

    ◆ single: una única instancia (singleton) ◆ factory: instancia por demanda ◆ get: obtiene un componente
  8. Koin ◆ Inyección usando la función inject() o a través

    del constructor de la clase que requiere el componente ◆ Fácil integración con ViewModel (Architecture Components) ◆ Fácil de hacer testing
  9. Alguna referencias • Koin Samples - https://github.com/Ekito/koin-samples • Jorge Sánchez

    - https://blog.kirei.io/iny-depen • Jorge Sánches - http://xurxodev.com/profundizando-en-la-inversion-de-dependencia/ • Alvaro Blazquez - https://medium.com/@alvarob25/inyecciones-de-dependencias • Tran Solutions - http://www.tss.com.pe/blog/que-es-inyeccion-depen