# 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
Ejemplos:
- Para bases de datos: DbLocalDataSource
- Para SharedPreferences: XmlLocalDataSource
- Para Memoria: MemLocalDataSource
# Tipos
# Diagrama
