Start Debugging

Etiqueta: dart

116 posts · Página1de12

Migra una app de Flutter de Color.withOpacity a Color.withValues (Flutter 3.27+)
Reemplaza los obsoletos Color.withOpacity, opacity, value, red, green, blue y alpha por withValues, .a/.r/.g/.b y toARGB32. Qué reescribe dart fix por ti, los cuatro getters que deja sin tocar, por qué se rompen las aserciones de color exacto y las búsquedas en Map<Color, T> tras el cambio, y cómo withOpacity descarta Display P3 en silencio. Medido en Flutter 3.44.8 con Dart 3.12.2.
2026-10-19 flutterdarttheming
Cómo definir design tokens personalizados con ThemeExtension y animarlos entre los temas claro y oscuro en Flutter
Crea una subclase de ThemeExtension, registra una instancia por ThemeData mediante la lista extensions, léela con Theme.of(context).extension<T>() y escribe un lerp real para que el AnimatedTheme de MaterialApp interpole tus tokens durante el cambio entre claro y oscuro. Cubre colores, radios, sombras, estilos de texto y booleanos, el fallo por extensión ausente, la trampa de copyWith que descarta todas las demás extensiones y por qué necesitas == y hashCode, todo verificado con pruebas de widgets en Flutter 3.44.8.
Cómo hacer que AnimatedSwitcher anime cuando el tipo del widget hijo no cambia en Flutter
AnimatedSwitcher solo hace una transición cuando Widget.canUpdate indica que el nuevo hijo es un widget distinto, así que de Text a Text sin key simplemente se actualiza en su lugar. Aquí está la solución de una línea, dónde debe ir la key, por qué UniqueKey es una trampa, el error de dirección del slide causado por un transitionBuilder estático y el salto de layout del Stack por defecto, todo verificado con widget tests en Flutter 3.44.8.
2026-10-19 flutterdartandroid
Cómo restaurar el estado de la interfaz tras la muerte del proceso en Android con Flutter y RestorationMixin
Android mata las apps de Flutter en segundo plano para recuperar memoria, y cuando el usuario regresa cada StatefulWidget empieza desde cero. Así se activa la restauración con restorationScopeId, RestorationMixin y las propiedades Restorable, cómo restaurar campos de texto, posiciones de scroll y rutas, cómo escribir un RestorableValue personalizado y cómo probarlo todo con restartAndRestore y adb, verificado en Flutter 3.44.8 y un emulador de Android 16.
2026-10-18 dartflutterstreams
Cómo reemitir el último valor a los suscriptores tardíos de un Stream de Dart sin el BehaviorSubject de rxdart
Un StreamController broadcast descarta todos los eventos que ocurrieron antes de que te suscribieras. Aquí tienes un reemplazo de BehaviorSubject sin dependencias basado en Stream.multi, una extensión replayLatest() para streams existentes, el atajo con async* que pierde eventos en silencio y el detalle de initialData en StreamBuilder, todo verificado en Dart 3.12.2.
Siguiente