Start Debugging

Blog

Página 5 de 91

Cómo marcar la respuesta de una acción de controlador como anulable en el documento OpenAPI integrado de ASP.NET Core

Microsoft.AspNetCore.OpenApi solo marca una respuesta como anulable cuando la acción devuelve un T? simple (y, en .NET 10, ni siquiera con Task<T?>). ActionResult<T?> e IActionResult pierden la anotación tanto en .NET 10 como en .NET 11 RC2. Aquí está el porqué, un transformador de operación probado que lo arregla y la trampa del 204 No Content que hace que la especificación mienta si no cambias también el formatter de MVC.
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.

Cómo formatear números con la agrupación de dígitos india lakh/crore en .NET (NumberGroupSizes)

Usa la cultura en-IN o asigna NumberFormatInfo.NumberGroupSizes a [3, 2] para imprimir 12,34,56,789 en lugar de 123,456,789 en C#. Medido en .NET 10 y .NET 11 RC1: cómo funciona el arreglo, por qué CurrencyGroupSizes es independiente, la trampa del modo de globalización invariante que imprime en silencio la agrupación occidental y un helper para lakh/crore en palabras.
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.