Implementación de función para capturar transacciones desde imágenes
Clase 23 de 29 • Curso de Integración Módulos Nativos iOS/Android para Flutter
Resumen
En la creación de aplicaciones móviles con Flutter, desarrollar métodos eficientes para registrar transacciones es esencial. Integrar la lectura de montos desde imágenes utilizando la metodología Block permite mejorar significativamente esta experiencia de usuario.
¿Cómo agregar una transacción desde una imagen en un proyecto Flutter?
La implementación de esta característica se inicia creando un nuevo evento dentro del bloque (block) encargado de administrar las transacciones. A continuación, te explicamos los pasos esenciales:
- Define una función asíncrona denominada transaction from image.
- Esta función emitirá inicialmente un estado de carga, indicando al usuario que se realiza un proceso.
- Utiliza un bloque
try-catch
para manejar la extracción del monto.
¿Cómo se establece la lógica para extraer y validar montos desde imágenes?
En la parte lógica del bloque, es importante validar y gestionar datos del monto capturado desde la imagen:
- La extracción del monto quedará pendiente a través de una función que posteriormente agregarás al repositorio, llamada
extraer monto de imagen
. - Valida que el monto extraído sea mayor a cero para asegurar su validez.
- Emite un mensaje de error específico en caso de no obtener un monto válido, indicando al usuario que el monto no fue identificado correctamente.
¿Qué elementos necesitas configurar adicionalmente para registrar correctamente la transacción?
Utiliza el modelo previamente creado Income Expense
para estandarizar y estructurar la información de la transacción:
- Convierte el monto extraído para corresponder al tipo de datos esperado (en este caso un entero).
- Agrega una descripción de la transacción indicando que fue "autodetectado".
- Captura automáticamente la fecha y hora actual asignando
datetime.now
. - Define el tipo de ingreso o gasto; en este caso específico, al tratarse de recibos, se clasificará como
expense
. - Realiza finalmente una función de repositorio (
agregar transacción
) para registrar efectivamente esta información.
Al final de estos pasos, realiza una actualización de la lista de transacciones mediante el método fetch
y actualiza correctamente el estado utilizando el evento transaction loaded
. Además, asegura la captura de errores para ofrecer retroalimentación clara al usuario sobre posibles problemas en el procesamiento.