Skip to main content

5 posts tagged with "dart"

View All Tags

Flutter Tip: Multiplicar en vez de dividir

· 2 min read
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:

What is new in Dart 3? Exploring the new features: Switch Expressions, Patterns, Records, Class Modifiers, and More

· 8 min read
Yayo Arellano
Software Engineer

Dart has experienced significant improvements and innovations with the release of its version 3. This update brings features and functionalities that make Dart a more efficient, modern, and user-friendly language for web and mobile application development.

Dart 3 was introduced by Google during Google I/O 2023 and was announced as the largest release to date.

100% Sound Null Safety

Starting from Dart 2.12, a new feature called null safety was introduced. This feature aims to improve code safety and stability by providing stronger null checks. If you attempt to assign a null value to a non-nullable variable, the compiler will generate a compile-time error. This helps reduce the possibility of null-related errors and enhances code robustness.

In Dart 3, the language is 100% sound null safety.

Records

A new feature in Dart 3 is Records, which allows a single object to contain multiple objects. One use case is when we want to return two or more values from a function.

Previously, when we wanted to return more than one object from a function, we had to create an extra class or use a package like [Tuple][1].

The following code snippet shows that to return the age and name from a function, we had to create a class called User:

// Example without using records
void main() {
final user = getUserInfo();

print('Age: ${user.age}');
print('Name: ${user.name}');
}

User getUserInfo() {
return User(18, 'Yayo');
}

class User {
final int age;
final String name;

User(this.age, this.name);
}

Flutter Challenge: La mejor arquitectura | Flutter Taiwan

· 14 min read
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 read
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 read
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