# LocalDataSource

La fuente de datos local es aquella que almacena la información en el dispositivo móvil.

Esta información puede provenir de un fichero, una base de datos, sensores, etc.

La responsabilidad de la fuente de datos local, es proveer o almacenar datos en el dispositivo móvil.

LocalDataSource es una abstracción (interfaz) que es implementada por un tipo de fuente de datos en concreto (clase).

Ejemplos de tipos una fuente local:

  • Uso para la gestión de la información en una base de datos local como Room.
  • Uso para la gestión de la información en ficheros como SharedPreferences.
  • Uso para la gestión de datos a través de un sensor: Bluetooth, GPS, etc.

WARNING

Si la feature a desarrollar solo tiene una fuente de datos local (ej: bases de datos), se suele obviar la interfaz LocalDataStore y se referencia a la clase directamente desde el repositorio.

La abstracción LocalDataSource definirá todas las funciones necesarias para trabajar con la gestión de datos locales y estas funciones, siempre devolverán modelos de dominio. Por norma general, no devolveremos los modelos creados específicamente en cada una de las concreciones que implementan LocalDataSource.

Por ejemplo: No devolveremos de DbLocalDataSource modelos exclusivos de Room.

DANGER

Los métodos definidos en LocalDataSource devuelven modelos de dominio o valores relacionados con ellos.

# Naming

Las concreciones (clases) que implementan LocalDataSource (interfaz) siguen esta regla para el naming:

TipoFuenteLocalDataSource + LocalDataSource  
1

Ejemplos:

  • Para bases de datos: DbLocalDataSource
  • Para SharedPreferences: XmlLocalDataSource
  • Para Memoria: MemLocalDataSource

# Tipos

# Diagrama

Capa de Datos