sábado, 20 de marzo de 2021

Flutter: Arquitectura con Flutter Bloc

En este curso nos vamos a enfocar en la libreria Flutter Bloc. La siguiente documentacion la pueden encontrar en ingles en la pagina de Flutter Bloc

El codigo se puede descargar en Github

Objetivos

  • Utilizar flutter bloc para manejar los estados
  • Separar la aplicacion en diferentes capas (presentacion, logica de negocios & datos)
  • Hacer peticiones a una Rest API usando http
  • Pruebas unitarias y pruebas a widgets (unit test & widget test)
  • Manejo de excepciones

Prerequisitos

  • Obtener un API key de https://newsapi.org/
  • Agregar el API key en la clase NewsProvider
  • Correr el commando pub run build_runner watch --delete-conflicting-outputs para generar el codigo

Imagenes

Respuesta exitosa API key no es valida API key no encontrada

Flutter bloc nos permite separar nuestro codigo en diferentes capas:
  • Presentacion
  • Logica de negocios (News Cubit)
  • Datos
    • Proveedores (NewsProvider)
    • Repositorios (NewsRepository)


La capa de datos

Esta es la capa mas baja y se divide en 2: proveedores de datos y repositorios. Se encarga de interactuar con la base de datos, APIs, etc. 

Proveedor (Data provider)

Es el que se encarga de proveer data al Repositorio, normalmente el data provider es quien se comunica directamente con las bases de datos, Apis, etc. 

Repositorios (Repository)

Encapsula uno o mas proveedorers (data providers). Por ejemplo puede encapsular en proveedor de una REST API y un proveedor de la base de datos local. El repositorio se comunica directamente con el Bloc.

Logica de negocios (Business logic)

Esta capa se encarga de procesar los eventos que vienen de la capa de presentacion y despues de procesar los eventos regresa un nuevo estado a la capa de presentacion.

Capa de presentacion

La responsabilidad de esta capa es mostrar de una forma amigable la informacion que obtenemos desde los estados de la logica de negocios.


Video curso




0 comments:

Publicar un comentario

Entradas populares