Integración de widget de fotografía con patrón Bloc en Flutter

Clase 27 de 29Curso de Integración Módulos Nativos iOS/Android para Flutter

Resumen

La integración efectiva entre widgets y patrones de gestión de estado como Bloc permite crear aplicaciones robustas y dinámicas en Flutter. En este contenido, entenderás cómo conectar una interfaz de usuario (UI) que toma fotografías con funcionalidades del patrón Bloc, utilizando estados que escuchan cambios constantemente.

¿Qué es la función del widget para tomar fotografías?

Se utiliza un widget tipo modal que separa claramente la lógica para tomar fotografías y extraer información, como el monto de ingresos o gastos desde una imagen. Esta separación facilita el manejo de la UI y las funcionalidades al permitir llamadas independientes mediante contextos específicos.

¿Cómo se implementa correctamente el patrón Bloc?

Es importante realizar la llamada adecuada desde la interfaz hacia el Bloc, utilizando contextos:

  • Haciendo una llamada directa al método 'take picture'.
  • Usando el 'context' para hacer lecturas del Bloc.
  • Agregando paths específicos a métodos del Bloc.

Este procedimiento realiza:

  • Apertura automática del modal.
  • Extracción automática del monto desde la imagen tomada.

¿Cómo controlar el estado del modal con Bloc?

Se crea un estado tipo 'show transaction modal state' para controlar la visualización del modal basado en la existencia de un monto válido:

  • Crea el estado en el Bloc asignándole un monto.
  • Envía este monto a través de propiedades.
  • Elimina el uso innecesario de overrides.

¿Cómo escuchar cambios de estado con Bloc listener?

Utiliza el widget 'BlocListener' en la UI para escuchar constantemente los cambios de estado:

  • Configura BlocListener para vigilar específicamente un estado particular.
  • Define condiciones para abrir automáticamente el modal:
  • Convierte tipos, por ejemplo, de 'double' a 'stream', según lo requiera Flutter.

Esto facilita que la aplicación responda dinámicamente cuando se obtiene un monto válido desde una fotografía tomada.

¿Cuáles son los permisos requeridos para Android e iOS?

Antes de finalizar el proyecto, considera agregar cuidadosamente los permisos para utilizar la cámara tanto en Android como en iOS:

  • Para Android: Modifica el archivo en la ruta 'app > source > main'. Configura permisos para:
  • Tomar fotos.
  • Acceder al almacenamiento de la galería.
  • Escribir y guardar fotografías.

  • Para iOS: Agrega los permisos específicos en el archivo plist, indicando claramente que se utilizará la cámara.

Estos permisos son indispensables para el funcionamiento adecuado de la aplicación respecto a funcionalidades visuales relacionadas con imágenes.