Saltar al contenido principal

5 publicaciones etiquetados con "dart"

Ver Todas las Etiquetas

Flutter Tip: Multiplicar en vez de dividir

· 2 min de lectura
Yayo Arellano
Software Engineer
Youtube video player

Youtube video player

Hay veces que queremos calcular el ancho o la altura de un widget y tomamos como referencia el espacio de pantalla disponible. Por ejemplo en el siguiente fragmento de código, la altura de cada Container es la mitad del tamaño de la pantalla o MediaQuery.of(context).size.height / 2.

Column(
children: [
Container(
color: Colors.blue,
height: MediaQuery.of(context).size.height / 2,
),
Container(
color: Colors.green,
height: MediaQuery.of(context).size.height / 2,
)
],
)

Como podemos ver cada container ocupa la mitad de la pantalla:

¿Qué hay de nuevo en Dart 3? Expresión switch, patterns, records, modificadores de clases, etc.

· 9 min de lectura
Yayo Arellano
Software Engineer

Dart, el lenguaje de programación desarrollado por Google, ha experimentado importantes mejoras y novedades con el lanzamiento de su versión 3. Esta actualización trae consigo características y funcionalidades que hacen de Dart un lenguaje más eficiente, moderno y fácil de usar para el desarrollo de aplicaciones web y móviles.

Dart 3 fue presentado por Google durante el Google I/O 2023 y fue anunciado como el lanzamiento más grande hasta la fecha.

100% Verificación de nulos (100% Sound null safety)

A partir de Dart 2.12, se introdujo una nueva característica llamada verificación de nulos (null safety). Esta característica tiene como objetivo principal mejorar la seguridad y la estabilidad del código al proporcionar verificaciones de nulos más sólidas. Si intentas asignar un valor nulo a una variable no nula, el compilador generará un error en tiempo de compilación. Esto ayuda a reducir la posibilidad de errores relacionados con nulos y a mejorar la robustez del código.

Ahora en Dart 3 el lenguaje ahora cuenta con un 100% de verificación de nulos.

Records

Una nueva característica de Dart 3 son los Records que permiten que un solo objeto pueda contener varios objetos. Un caso de uso es cuando queremos regresar dos o más valores de una función.

Anteriormente, cuando queríamos regresar más de un objeto de una función teníamos que crear una clase extra o agregar un paquete como Tuple.

El siguiente fragmento de código muestra que para regresar la edad y el nombre de una función tenemos que crear una clase llamada Usuario:

// Ejemplo sin usar records
void main() {

final usuario = obtenerInformacion();

print('Edad: ${usuario.edad}');
print('Nombre: ${usuario.nombre}');
}

Usuario obtenerInformacion() {
return Usuario(18, 'Yayo');
}

class Usuario {
final int edad;
final String nombre;

Usuario(this.edad, this.nombre);
}

Flutter Challenge: La mejor arquitectura | Flutter Taiwan

· 14 min de lectura
Yayo Arellano
Software Engineer
Youtube video player

Youtube video player

En este artículo vamos a resolver el reto propuesto en la página de Facebook Flutter Taiwán que básicamente dice:

El objetivo de este reto es reescribir el proyecto en la que tu creas es la mejor arquitectura (bloc, mvvm, mvc, mvp, etc.). Puedes usar cualquier paquete, debes incluir pruebas unitarias (unit test) y pruebas de widgets (widget tests). El proyecto se puede descargar de GitHub

note

Quiero aclarar que no existe una arquitectura que sea mejor que otra, en programación podemos llegar al mismo resultado de diferentes formas.

Analizando el proyecto actual (Sin arquitectura)

Primero vamos a ver la app corriendo:

Podemos ver que tenemos un app bar con el texto FlutterTaipei:), también hay un Listview con una serie de ítems que vienen de JsonPlaceHolder, el app bar también tiene unas opciones para ordenar la lista por id o por el titulo del artículo.

¿Flutter - Es GetX un mal gestor de estados?

· 3 min de lectura
Yayo Arellano
Software Engineer

Alguna vez has visto en las redes sociales a alguien comentar que está usando GetX y recibe cientos de comentarios negativos: "No uses GetX, es el peor gestor de estados", "Google no recomienda GetX", "GetX es para perdedores", etc.

Y al preguntar por qué GetX es un mal gestor de estados la mayoría de esas personas que comentan se quedan calladas, ¿por qué será?. Bueno muchas de estas personas que comentan cosas negativas solo repiten lo que otros dicen sin ponerse a investigar.

Entonces, ¿GetX es un mal gestor de estados?

Desde mi punto de vista No GetX no es un mal gestor de estados. Pero es un gestor de estados que yo no recomiendo usar para los principiantes porque GetX hace tantas cosas "Mágicamente" que en realidad no están aprendiendo Flutter y se convierten en fanáticos de GetX y después es muy difícil sacarlos de su zona de confort. En otras palabras "Para aprender a correr, primero debes aprender a caminar".

Y si eres una persona con conocimientos avanzados de Flutter probablemente no estés usando GetX.

¿Qué podría mejorar GetX?

  • El sitio web: Como poder confiar en un paquete que te envía a un sitio web inexistente, por lo menos los últimos 6 meses el sitio web no existe.

Arquitectura y pruebas en Flutter usando cubit

· 14 min de lectura
Yayo Arellano
Software Engineer

Hola, este artículo es la introducción de una aplicación muy sencilla que realice en una presentación para la comunidad de Flutter Taiwán en Inglés. Pueden ver paso a paso la implementación en este video de youtube y el código fuente lo pueden descargar de github. Nota: El video está en Inglés

El propósito del videotutorial es:

  • Aprender cubit como gestor de estados
  • Crear una arquitectura sencilla que sea escalable y con la que podamos agregar pruebas unitarias, pruebas de widgets, etc.
  • Hacer peticiones a una Rest APi usando http
  • Inyección de dependencias con GetIt (no confundir con GetX)

Prerrequisitos (Opcional)

Imágenes de la app

InicioError