Start Debugging

dart

122 posts · Página1de13

shared_preferences vs un archivo JSON con path_provider para guardar ajustes en Flutter

Usa shared_preferences (SharedPreferencesWithCache) para un puñado de flags planos y un archivo JSON en getApplicationSupportDirectory para un objeto de ajustes estructurado. Cubre el patrón de escritura atómica, la condición de carrera de los guardados concurrentes, la trampa de la carpeta Documentos en Windows y Linux, el soporte web y costos de escritura medidos en Flutter 3.44.8.

Cómo llamar a la API de OpenAI desde una app web de Flutter sin exponer la clave de API

Todo lo que compilas en una build web de Flutter, incluidos los valores de --dart-define, llega al navegador en texto plano. El único patrón seguro es un pequeño proxy de backend que guarda la clave, autentica al usuario, fija el modelo y devuelve el SSE de la Responses API en streaming. Proxy completo con Dart shelf y cliente Flutter, probado con Flutter 3.44, Dart 3.12 y http 1.6.
2026-10-25 flutterdartios

Cómo bloquear la orientación de una sola pantalla en Flutter (y por qué el multitarea del iPad la ignora)

Bloquea una ruta de Flutter en horizontal o vertical con SystemChrome.setPreferredOrientations sin romper el resto de la app: un bloqueo basado en pila que sobrevive a pushReplacement y se restaura al hacer pop, por qué la lista vacía es el reinicio equivocado, por qué el multitarea del iPad y las pantallas grandes de Android 16 ignoran el bloqueo, y qué significa UIRequiresFullScreen después de iPadOS 26 y el SDK de iOS 27. Probado en Flutter 3.47.8 con Dart 3.13.7 y Xcode 27.1.

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.
Siguiente