RiverPod is a compile-safety dependency injector for Dart that works perfectly with Flutter by Remi Rousselet. Despite being powerful as a state manager, it will suffer some breaking changes in the next weeks (these changes are still under development).

The completed explanation of the change is in the RFC 335 in its GitHub repository.

Basically, the main update is how ConsumerWidget , Consumer and useProvider will work.

In consequence, the Consumer widget will work as…


This question appears very often in many groups of Dart and Flutter (in many languages, not only in english) and almost all comments compare Dart with Kotlin and TypeScript.

Let’s review a little of history. Flutter was released in May 2017 during the Google I/O. In the same event, Kotlin was presented as an official language for Android apps development. But one thing is the release and other is the start of the development.

The beginning

The development of Flutter was started in 2014 under the name of Sky and in October of the same year was renamed to … wait for…


Hello, I’m Frank Moreno. From time to time I work as a frontend developer, sometimes as a backend and other times as a mobile developer. So when somebody ask me about what I do, I don’t know how to explain it. But if something represent a challenge, I take it.

This article is about a proposal to make GraphQL more efficient in the transport layer between client and server. …


En marzo del 2019, en el artículo Announcing — Dash se anunciaba un gestor de estados inspirado en BLoC. Indicando una ventaja en velocidad de lectura de los estados de nuestra aplicación. Dicho artículo puedes encontrarlo traducido al español en Anunciando — Dash gracias a Cesar Vega.

Haciendo un resumen, este partía de la premisa de que Flutter BLoC accedía a los estados con una complejidad linean O(N) y proponía una forma en la que podía acceder con una complejidad constante O(1).

En este artículo haremos una autopsia a este gestor de estados y veremos porqué usarlo o no.

¿Realmente…


La experiencia de desarrollo de aplicaciones web, desktop y móvil nos ha acostumbrado a manejar la especificación de la UI (User Interface) mediante un archivo XML (o derivados como HTML, QML, etc). En algunos casos, dicho XML era traducido a código imperativo sin que llegáramos a manipular o, en algunos casos, llegar a verlo.

Uno de los primeros Frameworks en acercarse a dejar atrás fue React (y React Native) con JSX, el cual hacía convivir a JS (Javascript) con HTML en un mismo archivo. …


En Flutter solemos usar tipo StatelessWidget y StatefulWidget , pero rara vez alguien se acuerda de InheritedWidget . Este permite que un widget descendiente pueda acceder a la data de este como se muestra en la siguiente imagen.

Diagrama de acceso de data de un InheritedWidget

Uno puede preguntarse “¿Si es tan importante, por qué no lo usamos?”. Y la verdad es que sí lo usamos, pero no directamente en la mayoría de las veces. …


He estado recibiendo preguntas de cómo pueden iniciar a programar en Dart, y si bien este lenguaje se ha hecho popular por su framework de desarrollo de apps móviles, a muchos les ha entrado curiosidad por probar Angular Dart (AD). Aquí veremos un poco de historia de Dart y cómo funciona su ecosistema de trabajo para resolver dudas de los que desean iniciarse en el desarrollo con este maravilloso lenguaje.

Los inicios

Dart es un lenguaje que nació como alternativa a JavaScript (JS)en el 2011. Hay que recordar en esa época JS no era muy agradable y Dart aparecía como un lenguaje…


Los algoritmos recursivos son aquellos que se pueden definir empleanse así mismo más un conjunto de casos base. Esto permite simplificar la implementación de estos, pero si no se tiene cuidado, su uso puede ser contraproducente, tanto por el tiempo de cómputo como por consumo de memoria, pero eso ya es conocido y ámpliamente difundido, no obstante, lo que muchos no tienen en cuenta es la memoria de call stack .

Comprendiendo el Call Stack

Las funciones son subrutinas que son llamadas y que pueden o no retornar un valor para luego seguir ejecutando las siguientes líneas.

Para explorar esto…


Hace unos días, mientras buscaba código de ejemplo en un archivo extenso, me topé con 7 líneas de código que resumen el patrón de todo el código en el archivo que estaba leyendo en Node.JS.

Para iniciar, esta sección de código es un método de una clase en JS que funciona perfectamente. Sin embargo, la pregunta latente es: ¿Si funciona perfectamente bien, cúal es el problema?

Si no logras encontrar por lo menos 3 malos usos del lenguaje…


En la última publicación vimos como Android (y el ecosistema de teléfonos inteligentes) fue evolucionando. No obstante, al ver como avanzan las versiones de Android alfabéticamente, podemos inferir que tarde o temprano llegará a su fin, es decir, llegará a la versión Z (actualmente estamos en la P).

Logo de Fucshia OS

Es así que Fuchsia OS parece ser el sistema operativo con el que Google piensa reemplazar a Android en, aparentemente, 5 años. ¿Pero qué beneficios nos trae Fuchsia sobre Android? Para entender esto, primero analicemos sus necesidades del gigante de Mountain View.

Estado de los sistemas operativos de Google

Google tiene dos…

Frank Moreno

Rust, Node.js, Go and Flutter developer. I want to create tools for better developer experience with good performance.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store