More

Cómo usar Aisladores en Flutter con Back4app para manejar el procesamiento de datos pesados

13min

Introducción

Flutter es un marco poderoso para construir aplicaciones multiplataforma, pero como muchos marcos móviles, ejecuta todo el código en un solo hilo por defecto. Este hilo, conocido como el hilo de la interfaz de usuario, es responsable de renderizar la interfaz de tu aplicación. Cuando tareas pesadas como el procesamiento de datos o el manejo de archivos ocurren en el hilo de la interfaz de usuario, pueden hacer que la aplicación se retrase o "jankee", lo que lleva a una mala experiencia de usuario.

Para abordar esto, Dart proporciona una característica llamada Isolates. Los isolates te permiten ejecutar cálculos costosos en un hilo separado, manteniendo tu interfaz de usuario receptiva. En este tutorial, exploraremos cómo usar isolates en una aplicación Flutter para manejar tareas pesadas de procesamiento de datos, como deserializar grandes archivos JSON obtenidos de un backend de Back4app.

Requisitos previos

Para completar este tutorial, necesitarás:

  • Una cuenta de Back4app. Regístrate para obtener una cuenta gratuita en Back4app.com.
  • Un entorno de desarrollo de Flutter configurado en tu máquina local. Sigue la guía de instalación de Flutter si aún no lo has configurado.
  • Conocimientos básicos de Dart, widgets de Flutter y programación asíncrona.

Paso 1 – Configurando tu Backend de Back4app

  1. Crea un Proyecto de Back4app: Inicia sesión en tu cuenta de Back4app y crea un nuevo proyecto.
  2. Crea Clases de Parse: Para este tutorial, crea una Clase de Parse llamada Registro que almacene grandes cantidades de datos:
    • título (String): El título del registro.
    • descripción (String): Una descripción del registro.
    • metadatos (JSON): Contenido de metadatos grande asociado con el registro.
  3. Poblar la Clase con Datos de Ejemplo: Agrega varios registros a la Clase de Registro con grandes objetos JSON en el campo de metadatos. Esto simulará el tipo de procesamiento de datos que podría causar retrasos en una aplicación real.
  4. Obtén tus Credenciales de Back4app: Navega a la configuración de tu proyecto para recuperar tu ID de Aplicación y Clave de Cliente, que necesitarás para conectar tu aplicación Flutter a Back4app.

Paso 2 – Configurando tu Proyecto Flutter

  1. Crea un Nuevo Proyecto Flutter: Abre tu terminal o símbolo del sistema y ejecuta:
Bash

  1. Agregar Dependencias: Abre pubspec.yaml y agrega las siguientes dependencias:
YAML


Ejecuta flutter pub get para instalar estas dependencias.

  1. Inicializa Parse en tu Aplicación: En lib/main.dart, importa el SDK de Parse y inicialízalo en la función:
Dart


Reemplace 'YOUR_BACK4APP_APP_ID' y 'YOUR_BACK4APP_CLIENT_KEY' con sus credenciales reales de Back4app.

Paso 3 – Recuperando Datos de Back4app

  1. Cree el Widget RecordScreen: En lib/main.dart, cree una nueva pantalla que recupere datos de Back4app:
Dart


Este código recupera todos los registros de la Record clase en Back4app y los muestra en una lista.

Paso 4 – Descargando el Procesamiento Pesado de Datos a un Aislado

  1. Usando Aislado para Deserializar JSON Grande: Suponga que el metadata campo en cada registro contiene un gran objeto JSON que necesita ser deserializado. Para evitar bloquear el hilo de la interfaz de usuario, utilizaremos un aislado para realizar esta tarea.
Dart

  1. Integrar el procesamiento aislado en la aplicación: Actualizar el RecordScreen widget para procesar los metadatos de cada registro utilizando el aislado:
Dart


Esta implementación obtiene registros de Back4app, descarga la pesada tarea de deserialización de JSON a un aislado y actualiza la interfaz de usuario una vez que el procesamiento se completa.

Paso 5 – Pruebas y Ejecución de Tu Aplicación

  1. Ejecuta tu aplicación usando flutter run. Deberías ver una lista de registros obtenidos de Back4app. Los metadatos de cada registro se procesan en un isolate separado, asegurando que la interfaz de usuario se mantenga fluida y receptiva.
  2. Verifica el rendimiento probando con archivos JSON grandes en el campo de metadatos. Observa cómo el uso de isolates previene el retraso y mantiene la interfaz de usuario receptiva.

Conclusión

En este tutorial, aprendiste cómo usar isolates en Flutter para manejar tareas de procesamiento de datos pesados, como deserializar archivos JSON grandes. Al descargar estas tareas a un isolate, mantienes el hilo de la interfaz de usuario libre para manejar el renderizado, lo que resulta en una aplicación más fluida y receptiva. Integrar Back4app como el backend te permite gestionar y recuperar datos de manera eficiente, mientras que el modelo de isolate de Dart asegura que tu aplicación siga siendo eficiente incluso al manejar operaciones complejas.

Para más información sobre cómo usar Flutter con Back4app, consulta la documentación de Back4app y documentación de Flutter. ¡Feliz codificación!