Saltar al contenido principal

Notas de la versión de Flutter 1.9.1

Notas de la versión de Flutter 1.9.1.

Hola y bienvenidos a otra versión estable de Flutter. En lo que va de año, hemos estado justo en el objetivo con una versión estable en cada trimestre, según nuestro plan (bueno, más que un plan es un objetivo, pero aún así, nos ha estado funcionando bastante bien hasta ahora...). Esta versión es la más grande hasta la fecha, con 620 Pull Requests integradas de 116 colaboradores. Como siempre, los PRs interesantes se enumeran a continuación. Y hay muchas cosas interesantes que discutir en esta versión, incluyendo:

  • Una regresión solucionada pero también una añadida
  • Algunos cambios importantes en la API
  • Algunos problemas graves detectados y solucionados
  • Soporte para macOS Catalina e iOS 13
  • Una serie de nuevas características
  • ¡Y más!

Y para dejarlo claro, cuando digo "nosotros", me refiero a la comunidad de Flutter en su conjunto. El equipo de Flutter no podría seguir escalando como lo hemos hecho sin todos nuestros colaboradores, no importa quién sea tu empleador. ¡Gracias a todos por sus contribuciones!

Regresiones

#

En esta versión, solucionamos una regresión (37955 Update shader warm-up for recent Skia changes) y causamos otra (38167 Incremental compiler re-issuing of errors from constant evaluator). La nueva regresión se solucionó después del lanzamiento estable de 1.9.1 (00d14e7 [CFE] Always start constant evaluation error where we are asked to evaluate), por lo que si la ves, puedes elegir una versión más reciente para incorporarla a tus aplicaciones de Flutter.

Cambios de API disruptivos (Breaking Changes)

#

Hacemos todo lo posible para no realizar cambios disruptivos, pero tampoco queremos crear APIs poco intuitivas a medida que avanzamos con Flutter hacia nuevos escenarios y nuevas plataformas. Estos son los cambios disruptivos en esta versión. Consulta los anuncios asociados para que puedas actualizar tu código.

33281 (anuncio) Update TextStyle and StrutStyle height docs

34019 (anuncio) Selectable Text

34665 (anuncio) Selection handles position is off

35110 (anuncio) Always test semantics

35136 (anuncio) Update Dark Theme disabledColor to White38

35785 (anuncio) Remove reverseDuration from implicitly animated widgets, since it's ignored.

36030 (anuncio) [Material] Implement TooltipTheme and Tooltip.textStyle, fix Tooltip debugLabel, update Tooltip defaults

36106 (anuncio) Updated ColorScheme.dark() colors to match the Material Dark theme specification

36217 (anuncio) Split Mouse from Listener

36402 (anuncio) Teach render objects to reuse engine layers

36856 (sin anuncio) [Material] Implement TooltipTheme and Tooltip.textStyle, update Tooltip defaults

36964 (anuncio) Constante de tamaño interactivo

37338 (anuncio) Actualizar las API de constructores de TooltipTheme, ToggleButtonsTheme, PopupMenuTheme

37341 (sin anuncio) ocultando hero original después de la transición de hero

37544 (anuncio) Reemplazar el método ButtonBar.bar con ButtonBarTheme

37652 (anuncio) Cambiar RenderObject.getTransformTo para incluir ancestro.

37736 (anuncio) Añadida API de extensión/Driver waitForCondition compaginable

Graves: Correcciones de fallos (crashes), problemas críticos de clientes y rendimiento

#

En Flutter, intentamos añadir un poco de calidad a cada versión. En esta ocasión, corregimos varios problemas graves, incluyendo crashes, problemas críticos de clientes y de rendimiento.

34907 Corregido LicensePage para cerrar página antes de que la carga de la licencia cause un error

35223 Corrección en Navigator pushAndRemoveUntil

36097 Corregir que la vista de desplazamiento anidada pueda reconstruirse sin layout

37033 corregir crash en pintura de depuración cuando la dirección del eje está invertida

37254 Limitar la altura máxima del cuerpo de Scaffold cuando extendBody es verdadero

34298 Preservando SafeArea : Parte 2

37718 Añadiendo physicalDepth a MediaQueryData y TestWindow

35297 Corregir la lógica del primer frame en el rastreo y driver

Nuevas características

#

Esta versión también trae consigo dos nuevos widgets de Material Design: el widget ToggleButtons (llamado un control segmentado (segmented control) en iOS) y un widget ColorFilter (descrito a continuación en la sección de Texto y Accesibilidad). Para ver estos widgets en acción, echa un vistazo a las breves muestras de ToggleButtons y ColorFilter. Además, el widget SelectableText permite al usuario seleccionar texto de solo lectura.

34599 [Material] ToggleButtons

34019 Texto seleccionable

35207 refactorizar y extraer manejadores de selección

36030 [Material] Implementar TooltipTheme y Tooltip.textStyle, corregir debugLabel de Tooltip, actualizar valores predeterminados de Tooltip

36411 Implementar copyWith, ==, hashCode en InputDecorationTheme

36856 [Material] Implementar TooltipTheme y Tooltip.textStyle, actualizar valores predeterminados de Tooltip

36963 Añadir márgenes a los tooltips

37266 Cambiar el valor de kMaxUnsignedSMI para la Web

37341 ocultando hero original después de la transición de hero

37492 Mejoras en el ancho de arrastre del borde del Drawer

Soporte para macOS Catalina

#

Con el lanzamiento de macOS Catalina a la vuelta de la esquina, nos hemos asegurado de que nuestras herramientas sigan funcionando sin problemas a medida que migras a Catalina, iOS 13 y Xcode 11. Cabe señalar que querrás actualizar a la versión estable Flutter 1.9.1 antes de actualizar a Catalina. El otro orden también funciona, pero verás un error cuando lo hagas de esa manera (el error es benigno, pero aun así...).

38325 refactorizar actualización de flutter para ser en 2 partes, con la segunda parte reentrante

cd70b Usar MAP_JIT al hacer mmap para páginas ejecutables (necesario para macOS Catalina).

38662 Cambiar el uso de defaults a plutil para el análisis (parsing) de Plist

2856 Actualizar configuración de rutas en "Primeros pasos" para admitir la shell zsh (soporte para macOS Catalina)

2857 Actualizar la página "Configuración de iOS" para reflejar la actualización de la interfaz de usuario de Xcode 11

37733 Admitir nombres de certificados de firma al estilo de macOS Catalina

10010 Usar simarm_x64 cuando el objetivo sea arm

37407 Eliminar comprobación de multi-arquitectura en builds de iOS

37445 Cambiar gen_snapshot de iOS de binario multi-arquitectura a múltiples binarios

37647 Cambiar prioridad de las rutas de búsqueda de gen_snapshot

iOS

#

Con más de 50 PRs en esta versión, el soporte para iOS sigue siendo un gran enfoque para Flutter, incluyendo una implementación de barra de desplazamiento para iOS 13 (que incluye soporte para pulsación larga, arrastrar desde la derecha y retroalimentación de vibración), una actualización para el widget CupertinoSwitch para coincidir con iOS 13 y experimentación continua con bitcode.

35829 Barra de desplazamiento de iOS 13

37724 Vibración de la barra de desplazamiento de iOS 13

36087 Actualizar estilo visual de CupertinoSwitch para coincidir con iOS 13

38587 Mejorar la comprobación de bitcode

36471 Habilitar compilación de bitcode para AOT

36093 Volver a aplicar empaquetado de dependencias de ios

34676 Habilitar selección por defecto para campo de texto de contraseña y exponer api para…

34723 Alineación vertical de CupertinoTextField

34964 CupertinoTextField.onTap

35303 corregir artefactos predeterminados para excluir ios y android

35307 Limpiar ajustes de compilación de Profile de host_app_ephemeral

35731 Mantener viva la conexión LLDB con el dispositivo iOS mientras se ejecuta desde la CLI.

35749 añadir benchmarks de compilación de iOS

35756 Eliminar la opción de compilación de inferencia @objc

35763 UIApplicationLaunchOptionsKey -> UIApplication.LaunchOptionsKey

35833 Deshabilitar rutas de entrada y salida de CocoaPods en la fase de compilación de Xcode para proyectos add-to-app efímeros

36174 [cupertino_icons] Añadir referencias de glifos para el brillo #16102

36194 Mantener viva la conexión LLDB con el dispositivo iOS mientras se ejecuta desde la CLI.

36498 Limpiar ajustes de compilación de Profile de host_app_ephemeral_cocoapods

36793 Distribuir el módulo de Flutter App.framework como un pod local de CocoaPods para ser instalado por una aplicación host

36887 Corregir cálculo del tamaño del indicador (thumb)

37026 Añadir soporte para el locale de Kannada (kn)

37048 usar SizedBox en lugar de Container para construir selección colapsada

37276 Hacer de podhelper.rb una plantilla para evitar pasar el nombre del módulo

37319 resizeToAvoidBottomInset Cupertino sin NavBar

37449 Si el script xcode_backend.sh falla o faltan variables sustitutas, hacer fallar la compilación de Xcode del host

37738 Usar rutas relativas al instalar pods de módulo

37809 Añadir parámetro autofocus a los widgets que usan el widget Focus internamente

37906 Instalar siempre la copia del engine efímero en lugar de obtenerla de las especificaciones de CocoaPods

38593 Corregir factor de escala de texto para componentes que no son de contenido de scaffolds Cupertino

38629 Manejar el caso de un dispositivo iOS conectado y no emparejado

38645 Renombrar arch de iOS para el modo de lanzamiento de macOS (modo de lanzamiento de macOS 2 de 3)

9075 Transformación/recorte de la vista de plataforma (Platform view) de iOS

9464 Añadidos shebangs a los scripts de prueba unitaria de ios.

9478 Ruta de recorte (clip path) de PlatformView de iOS

9491 Purgar cachés cuando hay poca memoria en iOS

9636 Añadidos shebangs a los scripts de prueba unitaria de ios. (#9464)

9667 Opacidad de la vista de plataforma de iOS

9722 Transmite el rasgo (trait) de modo oscuro de iOS al framework de Flutter (#34441).

9819 Permitir la fusión dinámica de hilos en iOS para mutaciones de vistas embebidas

9952 ios: Se corrigió el callback para el primer frame para que no dependa de tener una pantalla de inicio.

10186 Garantizar que las aplicaciones en modo debug estén siempre vinculadas (attached) en iOS.

10381 Corregir rango de composición vacío en iOS

10386 No usar DBC para Hot Reload en iOS.

10645 No usar DBC para Hot Reload en iOS.

10656 corregir crash del teclado en iOS : -[__NSCFString substringWithRange:], range o…

10662 actualizar la versión objetivo de despliegue de iOS en el podspec local de 7.0 a 8.0

10777 Actualizar manualmente Skia para incluir la solución al fallo de compilación en iOS armv7.

10891 Vuelve a aplicar el soporte para el brillo de la plataforma en iOS

10820 Soporte JIT en iOS y mejoras para la aplicación de escenarios

10949 Corregir referencias de iOS a PostPrerollResult

11006 En iOS, reportar los fotogramas por segundo preferidos a las herramientas mediante el protocolo de servicio.

Android

#

La mayor adición a Android en esta versión es el soporte para un nuevo comando de flutter: 'flutter build aar'. Este nuevo comando de construcción funciona igual que 'flutter build apk' o 'flutter build appbundle', pero para plugins y proyectos de módulos. Al construir los plugins como AARs, el plugin de Android Gradle puede usar Jetifier para traducir librerías de soporte a librerías de AndroidX para todo el código nativo del plugin, lo que reduce la tasa de errores al usar AndroidX en aplicaciones.

35217 Añadir flutter build aar

36732 Flutter build aar

10778 Compilar JARs que contienen las fuentes de incrustación (embedding) de Android y la biblioteca nativa del engine

34573 Asegura que el jar de flutter se añada a todos los tipos de compilación en proyectos de plugins

36695 Soporte para tipo de entrada de contraseña visible de Android

36805 Permitir flavors y tipos de compilación personalizados en la aplicación host

37194 [flutter_tool] Manejar de forma más elegante el fallo del sdkmanager de Android

37405 Añadir .android/Flutter/flutter.iml a la plantilla del módulo.

37752 Eliminar flag obsoleto gradle-dir en flutter config

9206 Refactorización 31 de la incrustación de Android: Integrar vistas de plataforma con la nueva incrustación y el shim del plugin.

9360 Simplificar la carga de app bundles en Android

9476 corregir NPE cuando se envía un evento táctil a una vista de plataforma de Android desconocida

9501 [android] Las texturas externas deben reescalarse para llenar el lienzo (canvas)

9525 Refactorización de la integración de Android PR36: Añadir soporte para pantalla de inicio.

9895 Integración de Android PR37: Se separaron FlutterActivity y FlutterFragment a través de FlutterActivityAndFragmentDelegate

9999 Añadir soporte para el tipo de entrada de contraseña visible de Android

10250 Refactorización 38 de la incrustación (embedding) de Android: Eliminado AssetManager de DartEntrypoint.

10413 Pasar insets.systemGestureInsets de Android Q a Window

10424 Corregir advertencias de obsolescencia (deprecation) en la incrustación de Android

10481 Refactorización de la integración de Android pr40: añadir caché de motor estática

10771 No usar el demonio de gradle para compilar

11001 Evitar búsquedas dinámicas de los símbolos de la biblioteca del engine en Android

11015 Eliminar el prefijo del directorio de salida del nombre de archivo JAR del engine de Android

Material

#

Por supuesto, el lenguaje de diseño Material Design también sigue siendo un enfoque principal para Flutter.

34869 [Material] Llamar correctamente a onChangeStart y onChangeEnd en Range Slider

34872 [Material] Soporte para color de borde al pasar el cursor (hovered), enfocado (focused) y presionado (pressed) en OutlineButtons

34906 Corregir propiedad sin usar [applicationIcon] en [showLicensePage]

34932 Añadida la propiedad onChanged a TextFormField

35075 Permitir la personalización del TextStyle del contenido de SnackBar en su tema

35282 Añadir alternativa (fallback) de Container al método de construcción de Ink

35496 [Material] Correcciones de escala de texto y etiquetas anchas para la forma del indicador de valor de Slider y Range Slider

35499 Añadido MaterialApp.themeMode para controlar qué tema se utiliza.

35560 Soporte para el color de superposición del tema oscuro basado en la elevación en el widget Material

35878 Añadir flag para usar el navegador raíz para showModalBottomSheet

36028 Corregir la altura preferida del slider

36088 Añadir PopupMenuTheme para permitir tematizar el color, la forma, la elevación y el estilo de texto del menú

36409 Añadir searchFieldLabel a SearchDelegate para mostrar una sugerencia (hint) personalizada

36880 [Material] Crear el componente Banner de material

37038 Actualizar SnackBar a las últimas especificaciones de Material.

37259 [Material] Añadir soporte para el color de texto al pasar el cursor, presionado, enfocado y seleccionado en Chips.

37269 [Material] Refactorización de FAB - eliminar IconTheme innecesario

37355 Añadido el método ThemeData.from() para construir un tema a partir de un ColorScheme

37403 añadir ontap a textformfield

37436 Ocultar el control de selección de texto después de ingresar texto

37556 [Material] Hacer RawChip.selected no nulo (non-nullable).

37636 Añadir checkColor a CheckboxListTile

37715 Corregir formato de enlace en markdown

37825 Modo de resaltado de foco automático para FocusManager

37870 eliminar flag Header de los elementos de BottomNavigationBar

37877 Añade el ancestro DefaultTextStyle al Overlay de Tooltip

37882 Añadir propiedad dense a AboutListTile

38467 [Material] Añadir splashColor a FAB y ThemeData de FAB

38621 [Material] Crear tema para Dividers para permitir la personalización del grosor

38636 Añade la opción arrowColor a UserAccountsDrawerHeader (#38608)

Texto y accesibilidad

#

El mayor cambio en texto y accesibilidad para esta versión es el nuevo soporte de ColorFilter, que te permite volver a colorear un árbol de widgets completo, por ejemplo, para ajustar tu aplicación para usuarios con daltonismo rojo/verde. Para verlo en acción, echa un vistazo a esta muestra de ColorFilter.

35468 Añadir colorFilterLayer/Widget

9641 Permitir que pushColorFilter acepte todos los tipos de ColorFilters

9668 Refactorizar ColorFilter para tener un envoltorio (wrapper) nativo

9789 corregir la constancia de ColorFilter.matrix

34515 OutlineInputBorder se ajusta para borderRadius que es demasiado grande

35100 Añadir el manejo del mensaje 'TextInput.clearClient' desde la plataforma al framework (#35054).

35219 Casos de mostrar/ocultar menú de selección de texto

35493 No usar la línea base ideográfica para la línea base de RenderParagraph

36974 Error de posición del menú de selección multilínea

37042 Corregir que el menú de selección no se muestre después de limpiar

38573 Limitar scrollOffset para evitar el rebote del campo de texto

35487 Corregir RenderFittedBox cuando child.size.isEmpty

36243 Permitir que las etiquetas de semántica sean más cortas o más largas que el texto sin formato

36303 Añadir casos de benchmark para sync star

37158 Corregir TextFields en el Depurador de Semántica

37828 hacer que android_semantics_testing use adb desde el sdk de android proporcionado por ENV

Web (preview técnica)

#

El trabajo continúa añadiendo al preview técnico del soporte de la plataforma Web en Flutter en esta versión, incluyendo una marca para saber si una aplicación se está ejecutando en la web. Para verlo en acción, echa un vistazo a main.dart en la muestra flutter_mazegen. Para obtener más información, consulta Flutter for web.

36135 añadir una constante kIsWeb a foundation

34252 Integrar dwds en flutter tool para soporte web

34896 Permitir compilaciones web multiraíz

35221 Ajustar flag para excluir dev y beta de desktop y web

36297 Añadir flag multilínea a la semántica

36465 Usar FlutterFeatures para configurar dispositivos web y desktop

36548 Corregir las compilaciones web revirtiendo el incremento de versión de build_modules

36549 corregir la codificación de números en los códecs de mensajes para la Web

37515 Soporte web ascendente (upstream) para IterableProperty

37637 no llamar a Platform.operatingSystem en diagnósticos de RenderView

37638 [web][upstream] Corregir debugPrintStack para plataforma web

37658 corregir ruta de windows para compilaciones de dwds/web

37712 [web][upstream] Optimizar la desactivación de InactiveElements

37812 [web][upstream] No registrar exit/saveCompilationTrace para plataforma web ya que no están disponibles

37815 Reestructurar el uso del ejecutador web residente para evitar usuarios de SDK que no admitan dwds

38499 Actualizar compiladores web de build y configurar bibliotecas

Desktop (experimental)

#

Seguimos avanzando con el soporte experimental para la plataforma de escritorio (Desktop) en Flutter. Si deseas participar en el experimento, consulta Flutter Desktop shells.

32770 Descartar modal con cualquier pulsación de botón

34660 Añadir soporte --target para Windows y Linux

34712 Corregir FocusTraversalPolicy que causa la pérdida de foco

34752 [linux] Recibe los caracteres sin modificar obtenidos de GLFW

35495 marcar el modo de desarrollo de chrome en windows y macos como inestable (flaky)

36197 Corregir en windows, excluir widgets de otros

36722 Omitir prueba inestable (flaky) en windows

36784 [flutter_tool] Mejorar mensaje de error de flutter clean en Windows

36845 Mejorar mensaje de fallo de compilación en Windows

36987 ¡Flutter assemble para macos, segundo intento!

37211 No habilitar rueda de desplazamiento cuando el desplazamiento está desactivado

37342 Corregir crash en mouse region al usar closures

37344 Corregir doble renderizado en mouse region

37351 corregir errores detectados por la actualización de macOS assemble

37365 solo compilar kernel de macOS en modo debug

37425 Soporte para modo de lanzamiento de macOS (1 de 3)

37509 Usar directorio efímero de macOS para script de entorno de Pod

37664 Reversión parcial de macOS assemble

37891 Depuración de foco

38651 Actualizar la versión de la plataforma en la plantilla Podfile de macOS

9654 Comenzar a separar el engine de macOS del controlador de vista (view controller)

9672 Añadir FLEDartProject para la incrustación de macOS

9745 Corregir prueba de windows no intentando abrir un directorio como archivo.

9799 Actualizar buildroot a c4df4a7b para incluir MSVC 2017 Update 9 en Windows.

9835 [Windows] Implementación de plataforma shell alternativa para Windows

9953 [macos] Añadir respuesta al mensajero binario (binary messenger)

10009 [macos] Revertir comprobación en FlutterCodecs y refactorizar función de mensaje

10189 [macos] Reaplicar refactorización de función

11010 Renombrar clases FLE* de macOS a Flutter*

36546 Reanudar date_picker_test en Windows ya que el problema subyacente 19696 fue corregido.

Framework

#

El framework principal de Flutter recibió varias características importantes en esta versión, incluyendo soporte para 24 nuevas configuraciones regionales (locales) adicionales (que van desde afrikáans hasta zulú).

36589 Actualizar Localizaciones: añadidos 24 nuevos locales (reiteración)

33936 Nuevo parámetro para RawGestureDetector para personalizar el mapeo de semántica

34202 Eliminar afirmaciones _debugWillReattachChildren de _TableElement

34626 Lanzar excepción en AsyncSnapshot.data si hay un error o no hay datos

34895 Eliminar soporte de flutter_tools para la creación antigua de snapshots AOT

34919 Eliminar partes de error duplicadas

35132 Reducir asignaciones reutilizando una matriz para transformaciones transitorias en _transformRect

35143 Más correcciones de Uint8List en HttpClientResponse

35149 More HttpClientResponse implements Stream fixes

35232 Nuevo benchmark: Semántica de gestos

35233 Intentar omitir la fragmentación (shard) de cobertura si las herramientas no cambiaron

35245 Más preparación para que HttpClientResponse implemente Uint8List

35246 intento de no omitir la cobertura en post commit

35263 eliminar ..toList() innecesario

35280 benchmarkWidgets.semanticsEnabled por defecto en false.

35288 Aplicar el cálculo de omisión de cobertura correctamente

35408 Eliminar print

35482 Usar los nuevos nombres de mensajes del protocolo de servicio

35491 Incluir etiquetas (tags) en las propiedades de depuración de SemanticsNode

35646 Preparar para que Socket implemente Stream

35725 Actualizar la implementación findAll de annotated region para usar Iterables directamente.

35750 usar estilo de frase (sentence case) en los títulos de mensajes de error

35762 Refactorizar el mapeo de teclas para resident_runner

35828 Limpieza de widgets/sliver_persistent_header.dart con la resolución de dart-lang/sdk#31543

35913 Cambiar el ejemplo de foco para que sea más canónico (y correcto)

35932 Paquetes del framework actualizados con 'flutter update-packages --force-upgrade'.

35979 Optimiza el reconocedor de gestos, corrige #35658

36262 Previene un bucle infinito en Table._computeColumnWidths

36302 Issues/30526 gc

36333 corregir appbar fijada en sliver

36496 Optimizar los métodos transformRect y transformPoint en matrix_utils.

36482 Aceleró el calentamiento de shaders dibujando solo en una superficie de 100x100

36493 Corregido que la lista sliver no hace layout del primer hijo cuando el hijo se reordena

36503 Deshabilitar prueba de humo de Firebase Test Lab para desbloquear autoroller

36698 corrige crashes al seleccionar con el teclado mediante presión fuerte en iPhone

36768 añadir un campo de recuento de errores al evento Flutter.Error

36857 Garantizar que los errores lanzados por el usuario tengan nodos ErrorSummary

36867 Añadir referencia a StrutStyle desde TextStyle

36955 Extraer funcionalidad común de PlatformView: Pintado y Semántica

37187 usar FlutterError en MultiChildRenderObjectWidget

37275 Optimizar los métodos transformRect y transformPoint en matrix_utils…

37479 Eliminar código falso/erróneo en ContainerParentDataMixin.detach

37497 Extraer funcionalidad común de PlatformView: Gestos y PointerEvent

37703 PlatformViewLink, gestionando la creación de PlatformViewSurface y la eliminación (dispose) de PlatformViewController

37790 Doc: Image.memory solo acepta formato comprimido

37880 reducir carga de trabajo en mac

38441 Corregir getOffsetToReveal para growthDirection invertido y AxisDirection hacia abajo o derecha

38463 No construir argumentos para _focusDebug al ejecutar en modos que no son debug

38639 PlatformViewLink: la superficie en caché debe ser de tipo Widget

38686 Renombrar archivo de patente

38704 Añade el conmutador canRequestFocus a FocusNode

38710 PlatformViewLink: Renombrar CreatePlatformViewController a CreatePlatformViewCallback

35335 Usando clase de excepción personalizada para error de carga de red

35574 Corregir semántica para app bar flotante y fijada en sliver

35810 SliverFillRemaining tiene en cuenta el tamaño del hijo cuando hasScrollBody es falso

35941 SliverLayoutBuilder

Motor

#

El motor (engine) principal sigue viendo muchas mejoras a nivel general en esta versión.

9041 Propiedad TextStyle.height como un múltiplo del tamaño de la fuente en lugar de un múltiplo de ascent+descent+leading.

9089 Conectar la interoperabilidad del bucle de eventos personalizado para el embedder de GLFW.

9329 Corregida fuga de memoria debido a una retención accidental de self implícito

9403 Eliminar variantes de ParagraphBuilder::AddText que no se usan dentro del engine

9419 Tiene un mensajero binario

9423 No quedarse enganchado a la conexión de entrada de una vista de plataforma después de desecharla (disposed)

9424 Enviar tiempos del primer frame sin procesamiento en lotes (batching)

9431 Generar punteros débiles (weak pointers) solo en el hilo de la plataforma

9436 Añadir la funcionalidad para fusionar y separar MessageLoopTaskQueues

9439 Eliminar importación no utilizada en FlutterView

9452 Convertir RRect.scaleRadii a método público

9456 Asegurarse de que el script run_tests devuelva el código de error correcto.

9459 Eliminar constructor de shell no utilizado/no implementado

9460 Corregido fallo en el filtro logLevel para que el filtro funcione como se espera.

9461 Añade API para retener capas intermedias del engine

9463 Eliminadas importaciones no utilizadas en la nueva incrustación (embedding).

9466 Volver a habilitar el decodificador GIF de Wuffs

9468 Dibujar manualmente la curva restante para decoraciones onduladas

9485 Añadir el interruptor --observatory-host

9486 Reelaborar la gestión de imágenes y texturas para usar colas de mensajes concurrentes.

9489 Manejar la direccionalidad ambigua del espacio en blanco final en texto bidi mixto

9490 Corregir un fallo donde la transformación de la vista de plataforma no se reinicia antes de establecer el frame

9493 Ejecutar benchmarks en trabajos de prueba (try jobs).

9495 Corregir la rotura de compilación en PlatformViews.mm

9498 Notificar al framework para limpiar la conexión de entrada cuando la aplicación pasa a segundo plano (#35054).

9503 Mejorar los límites de almacenamiento en caché para Skia

9506 Sincronizar el hilo principal y el hilo de la GPU para el primer frame de renderizado

9508 Admitir filtro de imagen al pintar

9532 Corregir que FlutterOverlayView no se elimina de la supervista en algunos casos

9556 Integración mínima con el módulo de conformado de texto de Skia

9561 libtxt: corregir el recuento de referencias de SkFontStyleSets mantenidos por proveedores de recursos de fuentes

9585 Corregir una condición de carrera en la prueba unitaria de accesibilidad del embedder

9589 Corrige un error de sobrescritura de plugin en el sistema shim de plugins.

9590 Aplicar parches que se han incorporado a topaz desde que portamos los ejecutores al repositorio del engine

9591 Documentar varias clases en //flutter/shell/common.

9632 Añadido Doxyfile.

9633 Seleccionar parches (cherry-pick) para corregir flutter/flutter#35291

9640 Hacer que EmbeddedViewParams sea un puntero único (unique ptr)

9642 Corregir advertencia sobre la configuración no disponible del argumento GN build_glfw_shell

9651 Mover el manejo de la pila de mutadores a preroll

9652 El pipeline permite continuaciones que pueden producir al frente

9653 El embedder de vistas externas puede determinar si las vistas embebidas se han mutado

9655 Permitir a los embedders añadir callbacks para respuestas a mensajes de plataforma desde el framework.

9660 ExternalViewEmbedder puede ejecutar CancelFrame después de pre-roll

9661 Raster ahora devuelve un enum en lugar de un booleano

9663 Refactorización de la pila de mutadores (Mutators Stack)

9685 corregir la comprobación del tipo de retorno de Picture.toImage y la prueba de conformidad de la api.

9698 Garantizar que los mensajes de plataforma sin manejadores de respuesta se puedan enviar.

9713 Explicar por qué OpacityLayer tiene un campo de desplazamiento (offset)

9717 Corregido fallo en el filtro logLevel para que el filtro funcione como se espera. (#9460)

9721 Añadir comentarios para diferenciar dos rutas de caché

9725 Hacer el script de licencia compatible con las API de flujo de E/S de Dart cambiadas recientemente

9727 Añadir ganchos (hooks) para el bloqueo y desbloqueo de InputConnection

9734 Corregir crash de la tecla retroceso en dispositivos chinos

9737 Usar la variante libc++ de string view y eliminar la variante FML.

9741 Hacer que la vista de FLEViewController sea un detalle interno

9747 Eliminar la obtención del engine (get engine)

9750 Cambios en la API de FLEViewController/Engine

9758 Incluir encabezados de SkParagraph solo cuando el flag enable-skshaper esté activado

9762 Usar como alternativa una ruta completamente cualificada a libapp.so si la biblioteca no se puede cargar por nombre

9767 Anular la obsolescencia (un-deprecated) de binaryMessenger de FlutterViewController.

9769 Documentar //flutter/shell/common/engine.

9772 corregir la generación de objcdoc

9781 SendPlatformMessage permite un valor de mensaje nulo

9797 Eliminar afirmaciones (asserts) disruptivas

9808 Documentar la clase FontFeature

9809 Documentar //flutter/shell/common/rasterizer

9813 Hacer que Picture::toImage ocurra en el hilo de E/S (IO thread) sin necesidad de una superficie en pantalla.

9815 Hacer que el directorio de la caché persistente sea un puntero const.

9816 Solo liberar los datos de la imagen en la prueba unitaria una vez que Skia haya aceptado la propiedad de los mismos.

9825 En un códec de un solo frame, liberar el búfer de imagen codificado después de entregarlo al decodificador

9828 Hacer translúcida la ventana de la pantalla virtual (virtual display)

9847 Comenzó a añadirse el hash del engine al Info.plist de los frameworks.

9849 Preservar el alfa para el contenido de VD configurando un fondo transparente.

9850 Añadir flag multilínea a la semántica

9851 Añadir una macro para prefijar símbolos de embedder.h

9855 Corregir la asignación faltante a _allowHeadlessExecution

9859 Corregir justificación para párrafos RTL.

9867 Corregido error en el xml Info.plist generado.

9873 Añadir versión de clang a Info.plist

9875 Simplificar buildtools

9890 Registrar errores de dlopen solo en modo debug

9893 Se movió la lógica desde FlutterAppDelegate hacia FlutterPluginAppLifeCycleDelegate

9894 Añadir el flag de semántica isMultiline a los valores

9896 Capturar stderr para el comando ninja

9901 Manejar imágenes descomprimidas en InstantiateImageCodec

9905 Respetar la información EXIF al descomprimir imágenes.

9906 Actualizar libcxx y libcxxabi a HEAD en preparación para la actualización del compilador.

9919 Eliminado método no utilizado.

9920 Corregir el almacenamiento en caché de Locale.toString

9922 Separar el protocolo de ciclo de vida

9923 Corregir el fallo de la prueba del gancho (hook) de ventana onReportTimings

9924 No intentar usar la opción assets_dir no configurada

9925 Corregir la prueba de geometría para reflejar que los operadores de comparación de OffsetBase son un ordenamiento parcial

9927 Actualizar versión de Buildroot

9929 Actualizar la excepción lanzada para datos no válidos en la prueba del códec

9931 Corregir el manejo de reentrabilidad en SingleFrameCodec

9932 Salir de flutter_tester con un código de error ante una excepción no controlada

9934 Actualizaciones al script ejecutor de pruebas del engine

9935 Corregir crash de la tecla retroceso en dispositivos chinos (#9734)

9936 Mover development.key desde buildroot

9937 [platform view] no hacer clipToBounds en la vista de recorte y la vista interceptora

9938 Eliminadas sentencias if de PlatformViewsController de TextInputPlugin (#34286).

9939 Añadido hasRenderedFirstFrame() al antiguo FlutterView para Espresso (#36211).

9948 [glfw] Habilita respuestas en mensajero binario en el embedder de glfw

9958 Limpiar un poco el archivo cirrus.yml

9961 Corregir tipo de retorno de la función assert en gradient_test

9977 Corregir flutter/flutter #34791

9987 Actualizar GN a git_revision:152c5144ceed9592c20f0c8fd55769646077569b

10012 Recuperar método no utilizado eliminado previamente

10021 Añadida una API de DartExecutor para consultar la cantidad de callbacks de canal pendientes

10056 Actualizar .cirrus.yml

10063 Rastrear clusters y devolver límites de cluster en getGlyphPositionForCoordinates (corrección de emoji)

10064 Deshabilitar DartLifecycleTest::ShuttingDownTheVMShutsDownAllIsolates en runtime_unittests.

10068 Corregida fuga de memoria con registradores del engine.

10069 Habilitar constantes desde el entorno en DDK para flutter_web

10073 Estructura básica para flutter_jit_runner far

10074 Cambiar ParagraphBuilder para reemplazar las familias de fuentes del estilo padre con las familias de fuentes del estilo hijo

10075 Cambiar objetivo del ejecutador de flutter para LUCI

10078 Una corrección más para luci

10109 Guardar en caché búsquedas de familias de fuentes que no logran obtener una colección de fuentes

10127 Rastrear métricas detalladas de LibTxt

10128 Comenzó la vinculación de los objetivos de prueba contra Flutter.

10151 [fuchsia] corregir nombre para reflejar el archivo cmx

10155 src/third_party/dart a2aec5eb06...86dba81dec

10172 [dart_runner] Renombrar dart a dart runner

10176 Añadir cambios de Java sugeridos del roll de flutter

10178 Eliminada llamada innecesaria para encontrar App.framework.

10179 [dart_runner] dart jit runner y dart jit product runner

10195 Permitir composición de capas de Flutter controlada por el embedder.

10235 Marcar como obsoleta FlutterView#enableTransparentBackground

10242 Eliminar ruta de código de recorte de Scenic obsoleta.

10265 [dart-roll] Actualizar el sdk de dart a 80c4954d4d1d2a257005793d83b601f3ff2997a2

10273 Eliminar una última llamada final a AddPart()

10282 Exportar FFI desde sky_engine.

10295 Corregir desbordamiento de memoria en parche de minikin

10296 corregir CI

10297 Garantizar que SingleFrameCodec permanezca vivo hasta que ImageDecoder invoque su callback

10298 Corregir compilación en rojo de nuevo

10303 Hacer el árbol verde de verdad esta vez, lo prometo.

10414 exponer profundidad máxima en Window

10419 Hacer que el compilador de kernel use el toolchain del host

10423 Corregir cargador gen_snapshot de mac

10430 Añadir herramienta copy_gen_snapshots.py

10477 Añadir comentarios condicionales #else, #endif

10479 Eliminar script create_macos_gen_snapshot.py no utilizado

10485 Eliminar try-jobs semi-redundantes.

10629 Corregir fuga de platformviewscontroller del engine

10637 Documentar el fixture de prueba de hilos.

10644 [flutter_runner] Adaptación: Añadir connectToService, envolviendo fdio_ns_connect.

10652 Permitir a los embedders controlar el ciclo de vida de la VM de Dart al apagar el engine.

10674 Al configurar snapshots AOT desde referencias de símbolos, hacer opcionales los tamaños de búfer.

10675 Mejoras al script GDB de flutter

10773 Eliminar el uso de la API obsoleta AccessibilityNodeInfo boundsInParent

10776 renombrar stub_ui a web_ui

10780 [flutter_runner] Mejorar programación de frames

10781 [flutter] Crear el contexto del compositor en el ejecutor de tareas GPU (GPU task runner).

10782 Actualizar script de licencias para manejar ANGLE

10783 Hacer la prueba de firebase más amigable para LUCI

10786 Eliminar 3 try-jobs semi-redundantes

10787 Cambiar llamada a |AddPart| por |AddChild|

10788 Conectar un SkExecutor respaldado por un bucle de mensajes concurrente para Skia.

10797 Renombrar artefactos para que coincidan con la convención de Maven

10799 Añadir una prueba para crear imágenes a partir de bytes.

10808 Eliminar script de dart flutter_kernel_sdk

10809 [dart:zircon] Adaptación de objetos de espera de manejadores reutilizables de caché

10815 Devolver un mapeo vacío para un recurso de archivo (file asset) vacío

10816 Añadir firstFrameDidRender a FlutterViewController

10823 Exponer isolateId para el motor

10941 Reportar fallos de pruebas en run_tests.py

10952 Cambiar las listas children de SemanticsNode para que no sean nulas

10955 Corregir formato

10956 Aumentar el escaneo del bloque de licencias de 5k a 6k

11002 Eliminar una macro de rastreo con un puntero colgante (dangling pointer)

11004 Rastrear RasterCacheResult::Draw

11005 Eliminar prueba de firebase de Cirrus

11007 Actualizar README.md

11011 Inicializar el engine en estado de ejecución para coincidir con el estado predeterminado del animador

11012 Eliminar la clase ParagraphImpl de la API de texto

11013 Eliminar la capacidad de sobrescribir mac_sdk_path en flutter/tools/gn

11024 Añadir versiones _glfw de las bibliotecas de escritorio de GLFW

11027 Corregir lógica del primer frame

11029 Deshabilitar advertencia de obsolescencia por el uso de un constructor de TaskDescription en plataformas más antiguas

11033 eliminar versión del SO

11034 Mostrar todas las diferencias de licencias

11038 Hacer que JIT funcione en iPhone armv7

11040 Ocultar snapshot verboso de dart durante run_test.py

11041 Agregar un BroadcastStream a FrameTiming

11046 Añadir archivos de configuración ccls a .gitignore

11052 Eliminar argumento dstColorSpace no utilizado en MakeCrossContextFromPixmap

11056 Ordenar los tipos de letra (typefaces) de Skia en un conjunto de estilos de fuentes en un orden consistente

11062 Proporcionar un ID de cola marcador de posición para el ejecutor de tareas del incrustador personalizado.

11067 Actualización menor al arnés de pruebas de Robolectric

11068 Más actualizaciones al arnés de pruebas de Robolectric

11075 [dynamic_thread_merging] Volver a enviar solo en el frame donde ocurre la fusión

Herramientas

#

Como siempre, la experiencia de extremo a extremo para Flutter se apoya en gran medida en sus herramientas. Con eso en mente, además de los PRs listados a continuación, que se centran en la herramienta de CLI de flutter, también deberías consultar las siguientes versiones para el plugin de Flutter para IntelliJ/Android Studio, el plugin de Flutter para VSCode y DevTools de Dart:

Además, esta versión también incluye muchas mejoras internas para brindarte mensajes de error mejores y más procesables. Puedes leer sobre esos detalles en esta publicación del blog del equipo de Experiencia de Usuario de Flutter.

32511 Los errores de renderizado con causas raíz en la capa de widgets deben tener una referencia al widget

28090 Garantizar que los directorios y archivos de caché tengan los permisos adecuados

32816 Añadir implementación inicial de flutter assemble

34624 Desglosar validaciones y resultados de flutter doctor

34785 Ajustar el nombre de visualización de los emuladores

34794 Añadir campo emulatorID a los dispositivos en el demonio (daemon)

35084 Mover findTargetDevices a DeviceManager

35092 Añadir FlutterProjectFactory para que pueda ser sobrescrito internamente.

35186 Hacer la recolección de cobertura de la herramienta resistente a datos de cobertura centinela

35188 asegurar que el isolate de prueba esté pausado antes de recolectar la cobertura

35192 no bloquear ningún presubmit en la cobertura

35231 Corregir recolección de cobertura

35367 Añadir tipo a StreamChannel en código de prueba generado.

35392 Añadir comprobación de temporizador y cliente http de prueba (fake) al banco de pruebas (testbed)

35406 Refactorizar el manejador de señales y línea de comandos desde resident runner

35465 Marcar update-packages como no experimental

35467 Marcar update-packages como no experimental

35480 Actualizar el mensaje de ayuda en el comando precache para evitar confusiones

35681 Deshabilitar compilador incremental en dartdevc

35765 Usar RPC pública _registerService en flutter_tools

35767 establecer objetivos de cero por ciento para codecoverage de herramientas

35839 usar pub run para crear pruebas y eliminar registros [INFO]

35846 mover la gestión de recarga y reinicio a la terminal

36017 Mover archivos de informes a reporting/

36082 Añadir mejor manejo de excepciones JSON-RPC

36084 manejar la versión google3 de pb

36105 [flutter_tool] Capturar un fallo de análisis de yaml durante la creación del proyecto

36109 Capturar excepciones lanzadas por runChecked* cuando sea posible

36122 Asegurarse de que el paquete de compilación add-to-app desde xcodebuild/gradlew externo envíe analíticas

36138 Implementar sistema de flags de características (feature flags) para flutter tools

36199 No intentar flutterExit si el isolate aún está en pausa

36208 [flutter_tool] Permitir analíticas sin una terminal conectada

36213 Usar DeviceManager en lugar de dispositivo para determinar si el dispositivo admite el proyecto.

36218 liberar bloqueo en el contexto de flutter pub

36237 Recomendar el uso de la versión final del soporte CDN para el repositorio de especificaciones trunk.

36240 Reorganizar la implementación de flutter assemble

36288 Lanzar excepción si se instancia IOSDevice en una plataforma que no sea macOS

36289 Mejoras en FakeHttpClientResponse

36318 Incluir flutter_runner en los artefactos de precache.

36327 Corregir invocaciones de ideviceinstaller que no pasan DYLD_LIBRARY_PATH

36331 Correcciones menores al texto de ayuda de precache (intento #2)

36434 Limpiar la detección de dispositivos en flutter driver.

36481 Eliminar código no probado

36490 [flutter_tool] Enviar comando de analítica antes de que el comando se ejecute

36507 Incrementar la versión del engine

36513 Corregir flutter pub -v

36556 Corregir prueba de uso para emplear el uso local

36560 [flutter_tools] Añadir algunos comandos útiles al README.md

36564 Asegurarse de que fx flutter attach pueda encontrar dispositivos

36569 Alguna limpieza menor para flutter_tools

36570 Algunas correcciones menores a la herramienta tool_coverage

36585 Colocar las salidas de compilación bajo dart tool

36598 Exponer funcionalidad para compilar dart a kernel para la VM

36679 añadir line-length a la línea de comandos de flutter format

36727 Añadir configuración faltante a create

36773 Exponer la opción de configuración build-dir

36774 Parametrizar CoverageCollector con un predicado de nombre de biblioteca

36785 [flutter_tool] Limpiar eventos de uso y dimensiones personalizadas

36787 Comprobar si es un directorio en lugar de buscar un separador de ruta

36832 Eliminar comprobación inestable (flaky) del mensaje del analizador.

37036 El número de compilación (parte después de +) está documentado como opcional; usar toda la versión de la aplicación si no está presente

37044 [flutter_tool] Hacer síncronas un par de operaciones de archivo

37186 [flutter_tool] Limpieza y refactorización del uso

37196 [flutter_tool] Capturar ProcessException de 'adb devices'

37198 [flutter_tool] Reintentar el envío del primer informe de crash

37210 no despojar (strip) símbolos al compilar profile

37217 ocultar símbolos de spotlight para App.framework

37331 [flutter_tool] Añadir toString() faltante

37345 [flutter_tool] Incluir la zona horaria local en la marca de tiempo de analítica

37378 Deshabilitar indexación de xcode en CI a través del argumento COMPILER_INDEX_STORE_ENABLE=NO

37422 [flutter_tool] Validación adicional del yaml del manifiesto de flutter

37440 Imprimir mensaje cuando se lanza HttpException después de ejecutar flutter run

37457 Encontrar el app bundle cuando el flavor contiene guiones bajos

37500 Evitar matar el proceso de la herramienta Flutter (#37471)

37512 Habilitar el seguimiento de la creación de widgets en compilaciones debug

37514 [flutter_tool] Eliminar envío no intencionado de pantalla de analítica

37521 hacer que xcodeSelectPath también capture ArgumentError

37595 Cierra #37593 Añadir flutter_export_environment.sh a gitignore

37654 Añadir biblioteca faltante a BUILD.gn de flutter tools

37731 Añadir metadatos para indicar si la aplicación host contiene un módulo de Flutter

37735 Eliminar flag no-build sin usar del comando flutter run

37743 Manejar mapas y rechazos lanzados desde el servidor fe (frontend server)

37792 Deshabilitar la barra de progreso al descargar el Dart SDK a través de Invoke-WebRequest

37863 Exponer los nombres de eventos de la línea de tiempo para que puedan ser usados en otros sistemas de rastreo

37871 Capturar fallo al crear directorio en caché

37900 Escuchar ExtensionEvent en lugar de TimelineEvent

37958 Capturar FormatException causada por una salida errónea de simctl

37966 Eliminar directorios efímeros durante flutter clean

37994 Eliminar no-constant-update-2018, el problema subyacente ha sido resuelto.

38101 Capturar excepción del sistema de archivos desde flutter create

38102 Corregir error de tipo oculto por conversiones implícitas descendentes (implicit downcasts)

38296 usar lista común de emuladores/dispositivos

38339 [flutter_tool] Cambiar los lenguajes predeterminados al crear a Swift y Kotlin

38342 eliminar bsdiff de BUILD.gn

38353 [flutter_tool] Limpieza del manejo de errores de conexión de Observatory

38472 [flutter_tool] Corregir error en la validación del yaml del manifiesto

38486 Capturar errores lanzados a la Zone por json_rpc

38490 Corregir comando publish

38497 manejar salida inesperada del servidor fe (frontend server)

38575 corregir excepción rpc de verdad

38586 No recargar si la compilación tiene errores

38637 [flutter_tool] Lanzar salida de herramienta ante una sobrescritura de URL de almacenamiento mal formada

38652 Eliminar código muerto

36860 Eliminar análisis conciso (terse parsing) de Chain

36874 Ajustar la redacción de las características

36884 Reparar build_runner

Lista completa de PRs

#

Puedes ver la lista completa de PRs integradas en esta versión aquí.