# RemoteDataSource

La fuente de datos remota es aquella que almacena la información en un medio externo al dispositivo móvil, por ejemplo, un servidor.

Esta información puede provenir de una API, Firebase, etc.

La responsabilidad de la fuente de datos remota, es proveer o almacenar datos en un medio externo.

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

Ejemplos de tipos una fuente remota:

  • Uso para la gestión de la información en una base de datos remota como Firestore o Realtime (Firebase).
  • Uso para la gestión de la información a través de una API REST.

WARNING

Si la feature a desarrollar solo tiene una fuente de datos remota (ejemplo: Firebase), se suele obviar la interfaz RemoteDataStore y se referencia a la clase directamente desde el repositorio.

La abstracción RemoteDataSource definirá todas las funciones necesarias para trabajar con la gestión de datos remota 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 RemoteDataSource.

Por ejemplo: No devolveremos de DbRemoteDataSource modelos exclusivos de FireStore.

DANGER

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

# Naming

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

TipoFuenteRemoteDataSource + RemoteDataSource  
1

Ejemplos:

  • Para bases de datos: DbRemoteDataSource
  • Para una API: ApiRemoteDataSource

# Tipos

# Diagrama

Capa de Datos