• Saltar a la navegación principal
  • Saltar al contenido principal

CARLOSZR.COM

Mi blog personal, CarlosZR

  • Blog
  • Contacto
  • Curso de SwiftUI por CarlosZR

Curso de Flutter / 15/07/2021

Data Classes en Dart, Freezed, transferencia de datos

Data Classes en Dart ¿Cuál es su objetivo? ¿Qué función tiene?

Pues la función de las data classes en Dart es la misma que en Kotlin. Son clases dedicadas a la transferencia de datos. Lo que importa es las propiedades que tiene (los datos), no sus funciones. Grábate esto en la cabeza: en las data classes si dos objetos tienen las mismas propiedades con los mismos valores, entonces son iguales. Y, sí, son iguales porque tienen el mismo hashcode.

En una data class lo que importa y lo que contiene son los atributos que queremos guardar.

Ejemplo de crear una Data Class en Dart

A muchos les puede sorprender que en un lenguaje nuevo como es Dart no se hayan implementado de forma nativa. En Kotlin, para crear una data class simplemente añadimos la palabra reservada data antes de class.

data class Coche(
///
)

Pues nosotros nos lo vamos a tener que trabajar un poco más. Pero tranquilidad, que no es para tanto.

¿Cómo crear la data class?

Para crearla he usado el paquete freezed. Puedes verlo en pub.dev clicando aquí. El vídeo que he creado tiene un ejemplo muy sencillito. En el te muestro cómo se instalan los paquetes y cómo se crean las clases.

Cuando lo veas te darás cuenta de la utilidad que tienen las data classes en Dart. Cómo los datos pasan a ser lo que verdaderamente importa.

La importancia de los datos

Aquí los datos son lo que importa. En la siguiente captura de pantalla puedes ver cómo difrentes objetos, al tener los mismos datos, tienen el mismo hashcode. Sí, ¡al tener los mismos datos en realidad son el mismo objeto!

varias instancias de la clase coche
Varias instancias de la clase Coche
Print para ver el hash code de cada instancia
resultado de la ejecución de la app. El hascode es el mismo para objetos con los mismos valores.
Resultado de la ejecución de la app

Para que lo veas y entiendas mejor mira el vídeo.

Snippet para crear la Data Class

Como te prometí en el vídeo, aquí te dejo el snippet para crear la clase de datos mucho más rápido. Ta sabes, tienes que añadirlo en el archivo dart.json en Visual Studio Code.

"Freezed Data Class": {
		"prefix": "fdataclass",
		"body": [
		  "@freezed",
		  "class ${1:DataClass} with _$${1:DataClass} {",
		  "  const ${1:DataClass}._();",
		  "  const factory ${1:DataClass}(${2:{}}) = _${1:DataClass};",
		  "}"
		],
		"description": "Clase de Datos con Freezed"
	  },

Código del ejemplo

En el siguiente enlace te paso el código el código del ejemplo de mi repositorio de github.

Publicado en: Curso de Flutter

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carlos ZR

  • Sígueme en Twitter
  • Política de Cookies
  • Política de Privacidad
  • Aviso Legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

CARLOSZR.COM
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.