El fin de nuestro recorrido hacia el desarrollo de la IU multiplataforma en teléfonos, computadoras de escritorio y la Web


Nos complace anunciar el lanzamiento de Flutter 3 como parte de la presentación de Google I/O. Flutter 3 completa nuestro paso de un marco de trabajo centrado en dispositivos móviles a uno multiplataforma, con compatibilidad con apps de escritorio macOS y Linux, además de mejoras en la integración de Firebase, nuevas funciones de productividad y rendimiento, y compatibilidad con Apple Silicon. 



El recorrido hacia Flutter 3

Comenzamos Flutter como un intento de revolucionar el desarrollo de apps: combinamos el modelo de desarrollo repetitivo de la Web con la renderización de gráficos acelerada por hardware y el control a nivel de píxeles, que antes eran exclusivos de los juegos. Durante los últimos cuatro años desde la versión beta de Flutter 1.0, compilamos de forma gradual sobre esta base, agregando nuevas capacidades de marco de trabajo y nuevos widgets, una integración más profunda con las plataformas subyacentes, una gran biblioteca de paquetes y muchas mejoras de rendimiento y herramientas.



A medida que el producto maduraba, más desarrolladores comenzaron a usarlo para compilar apps. Hoy en día, existen más de 500 000 apps publicadas con Flutter. Los análisis de empresas de investigación como data.ai, junto con los testimonios públicos, demuestran que una amplia lista de clientes usan Flutter en muchos ámbitos: desde apps de redes sociales como WeChat hasta apps financieras y bancarias como Betterment y Nubank; desde apps comerciales como SHEIN y trip.com hasta apps de estilo de vida como Fastic y Tabcorp; desde apps complementarias como My BMW hasta instituciones públicas como el gobierno de Brasil


https://www.youtube.com/watch?v=8RmsstcNE1Y


Los desarrolladores nos cuentan que Flutter ayuda a compilar apps atractivas de forma más rápida para más plataformas. Nuestro estudio de usuarios reciente demostró lo siguiente:

  • 91% de los desarrolladores coincidieron en que Flutter redujo el tiempo de compilación y publicación de una app.

  • 85% de los desarrolladores coincidieron en que Flutter hizo que sus apps se vieran más atractivas que antes.

  • 85% coincidió en que les permitió publicar sus apps para más plataformas que antes.


En una entrada de blog reciente de Sonos sobre su experiencia de configuración renovada, se recalcó este segundo punto.

“No es una exageración decir que [Flutter] desbloqueó un grado ‘premium’ diferente a todo lo que nuestro equipo entregó antes. Lo más importante para nuestros diseñadores es la facilidad con la que se pueden crear nuevas IU, ya que significa que nuestro equipo dedica menos tiempo a decir ‘no’ a las especificaciones y más tiempo a aplicar iteraciones en ellas. Si esto parece valer la pena, te recomendamos que pruebes Flutter. Nosotros nos alegramos de haberlo hecho”.

Presentación de Flutter 3

Hoy presentamos Flutter 3, que es el fin de nuestro recorrido para completar las plataformas compatibles con Flutter. Con Flutter 3, puedes compilar experiencias atractivas para seis plataformas a partir de una sola base de código, brindar a los desarrolladores una productividad sin precedentes y permitir que las startups aporten nuevas ideas al mercado accesible desde el primer día. 


En versiones anteriores, complementamos iOS y Android con la Web y la compatibilidad con Windows, y ahora Flutter 3 agrega compatibilidad estable con las apps de macOS y Linux. Agregar compatibilidad con la plataforma no es tan solo renderizar píxeles: incluye nuevos modelos de entrada e interacción, compatibilidad con la recopilación y compilación, accesibilidad e internacionalización e integración específica de la plataforma. Nuestro objetivo es brindarte flexibilidad para que aproveches el sistema operativo subyacente mientras compartes tantos elementos de IU y lógica como quieras. 


En macOS, invertimos en la compatibilidad con Intel y Apple Silicon, con la compatibilidad con Universal Binary, que permite a las apps empaquetar ejecutables que se ejecutan de forma nativa en ambas arquitecturas. En Linux, Canonical y Google colaboraron para ofrecer la mejor opción de desarrollo altamente integrada. 


Un buen ejemplo de cómo Flutter permite disfrutar de experiencias de escritorio atractivas es Superlist, cuya versión beta se lanza hoy. Superlist brinda colaboración sobrealimentada mediante una nueva app que combina listas, tareas y contenido de forma libre en una nueva versión de las listas de tareas pendientes y la planificación personal. El equipo de Superlist eligió Flutter por su capacidad para ofrecer una experiencia de escritorio rápida y de gran marca, y creemos que su progreso hasta la fecha acredita por qué demostró ser una excelente opción. 


https://www.youtube.com/watch?v=YRuQj7mlH2I&feature=youtu.be 


Flutter 3 también mejora muchos de los aspectos básicos, gracias al rendimiento mejorado, la compatibilidad con Material You y las actualizaciones de productividad. 


Además del trabajo ya mencionado, con esta versión Flutter es totalmente nativa en Apple Silicon para el desarrollo. Si bien Flutter es compatible desde su lanzamiento con dispositivos Apple con tecnología M1, ahora aprovecha al máximo la compatibilidad de Dart con Apple Silicon, lo que permite una compilación mucho más rápida en dispositivos con tecnología M1 y compatibilidad con binarios universales para apps de macOS. 


Nuestro trabajo para Material Design 3 está prácticamente completo en esta versión, lo que permite a los desarrolladores aprovechar un sistema de diseño multiplataforma adaptable que ofrece esquemas de colores dinámicos y componentes visuales actualizados:


En nuestra entrada de blog técnica y detallada se explican estas y muchas otras funciones nuevas en Flutter 3. 


Flutter funciona con Dart, un lenguaje portátil de alta productividad para el desarrollo multiplataforma. En este ciclo, nuestro trabajo en Dart incluye nuevas funciones de lenguaje que reducen el código estándar y ayudan a la legibilidad, compatibilidad con RISC-V experimental, un linter actualizado y nueva documentación. Para obtener más detalles sobre todas las nuevas mejoras en Dart 2.17, consulta el blog.

Firebase y Flutter

Desde luego, la compilación de una app no es solo un marco de trabajo de IU. Las personas que publican apps necesitan un paquete completo de herramientas que les sirvan para compilar, lanzar y operar tus apps, incluidos servicios como autenticación, almacenamiento de datos, funciones en la nube y pruebas de dispositivos. Existe una variedad de servicios compatibles con Flutter, como Sentry, AppWrite y AWS Amplify


Google ofrece Firebase para servicios de apps y estudios de análisis comparativos de desarrolladores realizados por SlashData demuestran que el 63% de los desarrolladores de Flutter usan Firebase en sus apps. Entonces, en las últimas versiones, trabajamos con Firebase para expandir e integrar mejor a Flutter como una integración de primera clase. Por ejemplo, pasamos los complementos de Firebase para Flutter a la versión 1.0, agregamos mejores documentación y herramientas e incluimos nuevos widgets, como FlutterFire UI, que brindan a los desarrolladores una IU reutilizable para las pantallas de autenticación y perfil.


Hoy anunciamos la graduación de la integración de Flutter/Firebase a una parte central totalmente compatible de la oferta de Firebase. Transferiremos el código fuente y la documentación al repositorio y al sitio principal de Firebase, y puedes contar con que desarrollaremos la compatibilidad de Firebase para Flutter al mismo tiempo que Android e iOS. 


Además, realizamos importantes mejoras para compatibilizar las apps de Flutter mediante Crashlytics, el popular servicio de informes de fallas en tiempo real de Firebase. Con las actualizaciones del complemento de Crashlytics para Flutter, puedes hacer un seguimiento de errores fatales en tiempo real, con el mismo conjunto de funciones que están disponibles para otros desarrolladores de iOS y Android. Esto incluye alertas y métricas importantes como “usuarios sin fallas”, que te ayudan a estar al tanto de la estabilidad de tus apps. El flujo de procesamiento del análisis de Crashlytics se actualizó para mejorar la agrupación de las fallas de Flutter, lo que agiliza la clasificación, priorización y solución de problemas. Y, por último, optimizamos el proceso de configuración de los complementos para que en tan solo un par de pasos puedas comenzar a usar Crashlytics, directamente desde tus códigos Dart.

Kit de herramientas de juegos casuales en Flutter

Para la mayoría de los desarrolladores, Flutter es un marco de trabajo de apps. Sin embargo, también existe una comunidad creciente en torno al desarrollo de juegos casuales, que aprovecha la compatibilidad con gráficos acelerados por hardware que brinda Flutter, junto con motores de juegos de código abierto como Flame. Queremos que para los desarrolladores de juegos casuales sea más fácil comenzar su trabajo, por lo que hoy en I/O presentamos el Kit de herramientas de juegos casuales, que incluye un kit inicial de plantillas y prácticas recomendadas junto con créditos para anuncios y servicios en la nube.



Aunque Flutter no está diseñado para juegos de acción en 3D de alta intensidad, incluso algunos de esos juegos recurrieron a Flutter por una IU que no es de juego, por ejemplo, títulos populares como PUBG Mobile, que tienen cientos de millones de usuarios. Y para I/O pensamos que veríamos hasta dónde podíamos impulsar nuestra tecnología, por lo que creamos un divertido juego de pinball que funciona con Firebase y la compatibilidad web de Flutter. I/O Pinball ofrece una mesa personalizada que se diseñó en torno a cuatro de las mascotas favoritas de Google: Dash de Flutter, Sparky de Firebase, el robot de Android y el dinosaurio de Chrome, y te permiten competir con otros jugadores por la puntuación más alta. Creemos que es una gran manera de demostrar la versatilidad de Flutter.

https://ashehwkdkdjruejdnensjsjdne.web.app/#/

Comunidad

Algo que nos encanta de Flutter es que no es solo un producto de Google, es un producto de “todos”. El código abierto implica que todos podemos participar e interesarnos en su éxito, ya sea contribuir con código o documentación nuevos, crear paquetes que brindan nuevos superpoderes al marco de trabajo central, escribir libros y cursos de capacitación para enseñar a otros, o ayudar a organizar eventos y grupos de usuarios. 


Para demostrar lo mejor de la comunidad, hace poco patrocinamos en colaboración con DevPost un desafío de Puzzle Hack, que ofrece a los desarrolladores la oportunidad de mostrar sus habilidades reinventando el clásico rompecabezas deslizante con Flutter. Resultó ser una demostración fantástica de cómo la Web, la computadora de escritorio y el dispositivo móvil se unen: ahora todos podemos jugar en línea o mediante las tiendas. 


Hicimos este video para mostrar algunas de nuestras presentaciones favoritas y los ganadores de premios; creemos que te gustará:

https://www.youtube.com/watch?v=l6hw4o6_Wcs


Gracias por apoyar a Flutter y ¡bienvenido a Flutter 3!



El fin de nuestro recorrido hacia el desarrollo de la IU multiplataforma en teléfonos, computadoras de escritorio y la Web


Nos complace anunciar el lanzamiento de Flutter 3 como parte de la presentación de Google I/O. Flutter 3 completa nuestro paso de un marco de trabajo centrado en dispositivos móviles a uno multiplataforma, con compatibilidad con apps de escritorio macOS y Linux, además de mejoras en la integración de Firebase, nuevas funciones de productividad y rendimiento, y compatibilidad con Apple Silicon. 



El recorrido hacia Flutter 3

Comenzamos Flutter como un intento de revolucionar el desarrollo de apps: combinamos el modelo de desarrollo repetitivo de la Web con la renderización de gráficos acelerada por hardware y el control a nivel de píxeles, que antes eran exclusivos de los juegos. Durante los últimos cuatro años desde la versión beta de Flutter 1.0, compilamos de forma gradual sobre esta base, agregando nuevas capacidades de marco de trabajo y nuevos widgets, una integración más profunda con las plataformas subyacentes, una gran biblioteca de paquetes y muchas mejoras de rendimiento y herramientas.



A medida que el producto maduraba, más desarrolladores comenzaron a usarlo para compilar apps. Hoy en día, existen más de 500 000 apps publicadas con Flutter. Los análisis de empresas de investigación como data.ai, junto con los testimonios públicos, demuestran que una amplia lista de clientes usan Flutter en muchos ámbitos: desde apps de redes sociales como WeChat hasta apps financieras y bancarias como Betterment y Nubank; desde apps comerciales como SHEIN y trip.com hasta apps de estilo de vida como Fastic y Tabcorp; desde apps complementarias como My BMW hasta instituciones públicas como el gobierno de Brasil


https://www.youtube.com/watch?v=8RmsstcNE1Y


Los desarrolladores nos cuentan que Flutter ayuda a compilar apps atractivas de forma más rápida para más plataformas. Nuestro estudio de usuarios reciente demostró lo siguiente:

  • 91% de los desarrolladores coincidieron en que Flutter redujo el tiempo de compilación y publicación de una app.

  • 85% de los desarrolladores coincidieron en que Flutter hizo que sus apps se vieran más atractivas que antes.

  • 85% coincidió en que les permitió publicar sus apps para más plataformas que antes.


En una entrada de blog reciente de Sonos sobre su experiencia de configuración renovada, se recalcó este segundo punto.

“No es una exageración decir que [Flutter] desbloqueó un grado ‘premium’ diferente a todo lo que nuestro equipo entregó antes. Lo más importante para nuestros diseñadores es la facilidad con la que se pueden crear nuevas IU, ya que significa que nuestro equipo dedica menos tiempo a decir ‘no’ a las especificaciones y más tiempo a aplicar iteraciones en ellas. Si esto parece valer la pena, te recomendamos que pruebes Flutter. Nosotros nos alegramos de haberlo hecho”.

Presentación de Flutter 3

Hoy presentamos Flutter 3, que es el fin de nuestro recorrido para completar las plataformas compatibles con Flutter. Con Flutter 3, puedes compilar experiencias atractivas para seis plataformas a partir de una sola base de código, brindar a los desarrolladores una productividad sin precedentes y permitir que las startups aporten nuevas ideas al mercado accesible desde el primer día. 


En versiones anteriores, complementamos iOS y Android con la Web y la compatibilidad con Windows, y ahora Flutter 3 agrega compatibilidad estable con las apps de macOS y Linux. Agregar compatibilidad con la plataforma no es tan solo renderizar píxeles: incluye nuevos modelos de entrada e interacción, compatibilidad con la recopilación y compilación, accesibilidad e internacionalización e integración específica de la plataforma. Nuestro objetivo es brindarte flexibilidad para que aproveches el sistema operativo subyacente mientras compartes tantos elementos de IU y lógica como quieras. 


En macOS, invertimos en la compatibilidad con Intel y Apple Silicon, con la compatibilidad con Universal Binary, que permite a las apps empaquetar ejecutables que se ejecutan de forma nativa en ambas arquitecturas. En Linux, Canonical y Google colaboraron para ofrecer la mejor opción de desarrollo altamente integrada. 


Un buen ejemplo de cómo Flutter permite disfrutar de experiencias de escritorio atractivas es Superlist, cuya versión beta se lanza hoy. Superlist brinda colaboración sobrealimentada mediante una nueva app que combina listas, tareas y contenido de forma libre en una nueva versión de las listas de tareas pendientes y la planificación personal. El equipo de Superlist eligió Flutter por su capacidad para ofrecer una experiencia de escritorio rápida y de gran marca, y creemos que su progreso hasta la fecha acredita por qué demostró ser una excelente opción. 


https://www.youtube.com/watch?v=YRuQj7mlH2I&feature=youtu.be 


Flutter 3 también mejora muchos de los aspectos básicos, gracias al rendimiento mejorado, la compatibilidad con Material You y las actualizaciones de productividad. 


Además del trabajo ya mencionado, con esta versión Flutter es totalmente nativa en Apple Silicon para el desarrollo. Si bien Flutter es compatible desde su lanzamiento con dispositivos Apple con tecnología M1, ahora aprovecha al máximo la compatibilidad de Dart con Apple Silicon, lo que permite una compilación mucho más rápida en dispositivos con tecnología M1 y compatibilidad con binarios universales para apps de macOS. 


Nuestro trabajo para Material Design 3 está prácticamente completo en esta versión, lo que permite a los desarrolladores aprovechar un sistema de diseño multiplataforma adaptable que ofrece esquemas de colores dinámicos y componentes visuales actualizados:


En nuestra entrada de blog técnica y detallada se explican estas y muchas otras funciones nuevas en Flutter 3. 


Flutter funciona con Dart, un lenguaje portátil de alta productividad para el desarrollo multiplataforma. En este ciclo, nuestro trabajo en Dart incluye nuevas funciones de lenguaje que reducen el código estándar y ayudan a la legibilidad, compatibilidad con RISC-V experimental, un linter actualizado y nueva documentación. Para obtener más detalles sobre todas las nuevas mejoras en Dart 2.17, consulta el blog.

Firebase y Flutter

Desde luego, la compilación de una app no es solo un marco de trabajo de IU. Las personas que publican apps necesitan un paquete completo de herramientas que les sirvan para compilar, lanzar y operar tus apps, incluidos servicios como autenticación, almacenamiento de datos, funciones en la nube y pruebas de dispositivos. Existe una variedad de servicios compatibles con Flutter, como Sentry, AppWrite y AWS Amplify


Google ofrece Firebase para servicios de apps y estudios de análisis comparativos de desarrolladores realizados por SlashData demuestran que el 63% de los desarrolladores de Flutter usan Firebase en sus apps. Entonces, en las últimas versiones, trabajamos con Firebase para expandir e integrar mejor a Flutter como una integración de primera clase. Por ejemplo, pasamos los complementos de Firebase para Flutter a la versión 1.0, agregamos mejores documentación y herramientas e incluimos nuevos widgets, como FlutterFire UI, que brindan a los desarrolladores una IU reutilizable para las pantallas de autenticación y perfil.


Hoy anunciamos la graduación de la integración de Flutter/Firebase a una parte central totalmente compatible de la oferta de Firebase. Transferiremos el código fuente y la documentación al repositorio y al sitio principal de Firebase, y puedes contar con que desarrollaremos la compatibilidad de Firebase para Flutter al mismo tiempo que Android e iOS. 


Además, realizamos importantes mejoras para compatibilizar las apps de Flutter mediante Crashlytics, el popular servicio de informes de fallas en tiempo real de Firebase. Con las actualizaciones del complemento de Crashlytics para Flutter, puedes hacer un seguimiento de errores fatales en tiempo real, con el mismo conjunto de funciones que están disponibles para otros desarrolladores de iOS y Android. Esto incluye alertas y métricas importantes como “usuarios sin fallas”, que te ayudan a estar al tanto de la estabilidad de tus apps. El flujo de procesamiento del análisis de Crashlytics se actualizó para mejorar la agrupación de las fallas de Flutter, lo que agiliza la clasificación, priorización y solución de problemas. Y, por último, optimizamos el proceso de configuración de los complementos para que en tan solo un par de pasos puedas comenzar a usar Crashlytics, directamente desde tus códigos Dart.

Kit de herramientas de juegos casuales en Flutter

Para la mayoría de los desarrolladores, Flutter es un marco de trabajo de apps. Sin embargo, también existe una comunidad creciente en torno al desarrollo de juegos casuales, que aprovecha la compatibilidad con gráficos acelerados por hardware que brinda Flutter, junto con motores de juegos de código abierto como Flame. Queremos que para los desarrolladores de juegos casuales sea más fácil comenzar su trabajo, por lo que hoy en I/O presentamos el Kit de herramientas de juegos casuales, que incluye un kit inicial de plantillas y prácticas recomendadas junto con créditos para anuncios y servicios en la nube.



Aunque Flutter no está diseñado para juegos de acción en 3D de alta intensidad, incluso algunos de esos juegos recurrieron a Flutter por una IU que no es de juego, por ejemplo, títulos populares como PUBG Mobile, que tienen cientos de millones de usuarios. Y para I/O pensamos que veríamos hasta dónde podíamos impulsar nuestra tecnología, por lo que creamos un divertido juego de pinball que funciona con Firebase y la compatibilidad web de Flutter. I/O Pinball ofrece una mesa personalizada que se diseñó en torno a cuatro de las mascotas favoritas de Google: Dash de Flutter, Sparky de Firebase, el robot de Android y el dinosaurio de Chrome, y te permiten competir con otros jugadores por la puntuación más alta. Creemos que es una gran manera de demostrar la versatilidad de Flutter.

https://ashehwkdkdjruejdnensjsjdne.web.app/#/

Comunidad

Algo que nos encanta de Flutter es que no es solo un producto de Google, es un producto de “todos”. El código abierto implica que todos podemos participar e interesarnos en su éxito, ya sea contribuir con código o documentación nuevos, crear paquetes que brindan nuevos superpoderes al marco de trabajo central, escribir libros y cursos de capacitación para enseñar a otros, o ayudar a organizar eventos y grupos de usuarios. 


Para demostrar lo mejor de la comunidad, hace poco patrocinamos en colaboración con DevPost un desafío de Puzzle Hack, que ofrece a los desarrolladores la oportunidad de mostrar sus habilidades reinventando el clásico rompecabezas deslizante con Flutter. Resultó ser una demostración fantástica de cómo la Web, la computadora de escritorio y el dispositivo móvil se unen: ahora todos podemos jugar en línea o mediante las tiendas. 


Hicimos este video para mostrar algunas de nuestras presentaciones favoritas y los ganadores de premios; creemos que te gustará:

https://www.youtube.com/watch?v=l6hw4o6_Wcs


Gracias por apoyar a Flutter y ¡bienvenido a Flutter 3!


Sumérgete en nuestra última versión, que incluye macOS y Linux estable, mejoras de rendimiento y mucho más.


Nuevamente, es hora de disfrutar de una versión estable de Flutter ¡y nos enorgullece enormemente anunciar el lanzamiento de Flutter 3! Hace solo tres meses, anunciamos la compatibilidad de Flutter con Windows. ¡Hoy, nos complace anunciar que Flutter ahora es estable para macOS y Linux, además de Windows!


Gracias al arduo trabajo de nuestros colaboradores de Flutter, combinamos 5248 solicitudes de extracción.


Tenemos varias cosas emocionantes que anunciar como parte de esta versión, incluida la actualización de la compatibilidad de Flutter con macOS y Linux, mejoras significativas en el rendimiento, actualizaciones para dispositivos móviles y la Web, ¡y mucho más! Además, tenemos noticias sobre la reducción de la compatibilidad con versiones anteriores de Windows y una breve lista de cambios rotundos. Así que, ¡pongámonos a trabajar!

Listo para la producción en todas las plataformas de escritorio

Menús en cascada y compatibilidad con la barra de menú del sistema macOS

Las barras de menú renderizadas por la plataforma ahora se pueden compilar en macOS usando el widget PlatformMenuBar, que admite la inserción de menús exclusivos de la plataforma y controla lo que aparece en los menús de la app para macOS.

Compatibilidad completa para la entrada de texto internacional en todas las plataformas de escritorio

La entrada de texto internacional, incluidos los idiomas que utilizan editores de métodos de entrada de texto (IME), como chino, japonés y coreano, es completamente compatible con las tres plataformas de escritorio, incluidos los métodos de entrada de terceros, como Sogou y Google Japanese Input.

Accesibilidad en todas las plataformas de escritorio

Flutter para Windows, macOS y Linux es compatible con servicios de accesibilidad, como lectores de pantalla, navegación accesible y colores invertidos.

Binarios universales de forma predeterminada en macOS

A partir del lanzamiento de Flutter 3, las apps de escritorio de Flutter para macOS se compilan como archivos binarios universales, con compatibilidad nativa tanto con las Mac basadas en Intel existentes como con los últimos dispositivos Apple Silicon de Apple.

Obsolescencia de Windows 7 y 8 para el desarrollo

Con esta versión, elevamos la versión de Windows recomendada para el desarrollo a Windows 10. Aunque no bloquearemos el desarrollo en versiones anteriores (Windows 7, Windows 8, Windows 8.1), estas versiones ya no son compatibles con Microsoft y brindamos pruebas limitadas en ellas. Si bien continuaremos ofreciendo compatibilidad de “mejor esfuerzo” para versiones anteriores, te alentamos a que te actualices. 


Nota: Seguimos ofreciendo compatibilidad para las apps de Flutter que se ejecutan en Windows 7, por lo que este cambio solo afecta al entorno de desarrollo recomendado.

Actualizaciones para dispositivos móviles

Compatibilidad con dispositivos plegables

La versión de Flutter 3 es compatible con los dispositivos móviles plegables. En una colaboración liderada por Microsoft, las nuevas funciones y widgets te permiten compilar experiencias dinámicas y agradables en dispositivos plegables.


Como parte de este trabajo, MediaQuery ahora contiene una lista de DisplayFeatures, que describe los límites y estados de los elementos del dispositivo, como bisagras, pliegues y cortes. Además, el widget DisplayFeatureSubScreen ahora posiciona su widget secundario sin superponer los límites de DisplayFeatures y ya se integró con los diálogos predeterminados y ventanas emergentes del marco de trabajo, lo que hace que Flutter sea consciente y responda a estos elementos desde el principio.



¡Muchas gracias al equipo de Microsoft y especialmente a @andreidiaconu por sus contribuciones! 


Prueba las muestras del emulador de Surface Duo, incluida una con una bifurcación especial de la galería de Flutter, para ver las pantallas duales de Flutter en acción.

Compatibilidad con la frecuencia de actualización variable de iOS

Flutter ahora es compatible con la frecuencia de actualización en dispositivos iOS con pantallas ProMotion, incluidos iPhone 13 Pro y iPad Pro. En estos dispositivos, las apps de Flutter pueden renderizar a frecuencias de actualización que alcanzan los 120 Hz, mientras que antes estaban limitadas a 60 Hz. Así, se obtiene una experiencia más fluida durante animaciones rápidas, como el desplazamiento. Consulta flutter.dev/go/variable-refresh-rate para obtener más información.

Versiones simplificadas para iOS

Agregamos nuevas opciones al comando flutter build ipa para simplificar el lanzamiento de tu app para iOS.  Cuando tengas todo listo para distribuir tu app a TestFlight o a la tienda de apps, ejecuta flutter build ipa para compilar un archivo Xcode (archivo .xcarchive) y un paquete de apps (archivo .ipa).  Como alternativa, puedes agregar --export-method ad-hoc, --export-method development o --export-method enterprise.  Una vez que se compila el paquete de apps, cárgalo en Apple a través de la app de macOS Apple Transport o en la línea de comandos con xcrun altool (ejecuta man altool para obtener más instrucciones de autenticación de la clave de API de App Store Connect). Después de la carga, tu app está disponible para lanzarla a TestFlight o la tienda de apps. Luego de ajustar la configuración inicial del proyecto Xcode, como el nombre visible y el ícono de la app, ya no necesitas abrir Xcode para lanzar tu app.

Actualización de la versión de Gradle

Si compilas un nuevo proyecto con la herramienta Flutter, probablemente notarás que los archivos generados ahora usan las últimas versiones de los complementos de Gradle y de Gradle para Android. Para los proyectos existentes, debes transmitir manualmente las versiones a 7.4 para Gradle y 7.1.2 para el complemento de Gradle para Android.

Fin de la compatibilidad con iOS de 32 bits, iOS 9 e iOS 10

Como anunciamos en febrero de 2022 con la versión estable 2.10, la compatibilidad de Flutter para dispositivos iOS de 32 bits y las versiones 9 y 10 de iOS está llegando a su fin. Este cambio afecta a los dispositivos iPhone 4S, iPhone 5, iPhone 5C y iPad de segunda, tercera y cuarta generación. Flutter 3 es la última versión estable compatible con estas versiones y dispositivos de iOS.


Para obtener más información sobre este cambio, consulta RFC: fin de la compatibilidad para dispositivos iOS de 32 bits.

Actualizaciones para la Web

Decodificación de imágenes

La versión web de Flutter ahora detecta y usa automáticamente la API ImageDecoder en los navegadores compatibles. A partir de hoy, la mayoría de los navegadores basados en Chromium (Chrome, Edge, Opera, Samsung Browser y muchos más) cuentan con esta API.


La nueva API decodifica imágenes de forma asíncrona fuera del subproceso principal utilizando los códecs de imágenes integrados del navegador. Así, se duplica la velocidad de decodificación de imágenes, nunca se bloquea el subproceso principal y se eliminan todos los bloqueos que antes causaban las imágenes.


Ciclos de vida de la app web

La nueva API de ciclo de vida para las apps web de Flutter te brinda la flexibilidad de controlar el proceso de arranque de tu app de Flutter desde la página HTML de alojamiento y le permite a Lighthouse analizar el rendimiento de tu app. Esto se aplica a muchos casos de uso, incluidos los siguientes escenarios solicitados con frecuencia:


  • Una pantalla de presentación.

  • Un indicador de carga.

  • Una página de destino interactiva HTML simple que se muestra antes de la app de Flutter.

Actualizaciones de herramientas

Paquete de lint actualizado 

Se lanzó la versión 2.0 de los paquetes de lint:

https://pub.dev/packages/flutter_lints/versions/2.0.0 

https://pub.dev/packages/lints/versions/2.0.0


Las apps generadas en Flutter 3 con flutter create habilitan automáticamente los conjuntos de lint versión 2.0. Se recomienda migrar las apps, los paquetes y los complementos existentes a la versión 2.0 para seguir las prácticas recomendadas más recientes en el mundo de Flutter. Para ello, debes ejecutar flutter pub upgrade --major-versions flutter_lints. 


La mayoría de las advertencias de lint recién agregadas en la versión 2 incluyen correcciones automáticas. De esta manera, después de actualizar a la última versión del paquete en el pubspec.yaml de tu app, puedes ejecutar dart fix --apply sobre tu base de código para corregir la mayoría de las advertencias de lint automáticamente (algunas advertencias aún requieren un trabajo manual). Apps, paquetes o complementos que no usan package:flutter_lints aún se recomienda realizar la migración siguiendo la guía de migración para aprovechar las prácticas recomendadas más recientes.

Mejoras de rendimiento

Gracias al colaborador de código abierto knopp, se habilitó la repetición de dibujo parcial en los dispositivos Android compatibles. En nuestras pruebas locales, este cambio redujo 5 veces los tiempos de rasterización de fotogramas promedio un 90% y 99% en la comparativa backdrop_filter_perf en un dispositivo Pixel 4 XL. La repetición de dibujo parcial cuando hay una sola región no sincronizada rectangular ahora está habilitada en los dispositivos iOS y en los dispositivos Android más nuevos.


Mejoramos aún más el rendimiento de las animaciones de opacidad en casos simples. En concreto, cuando un widget `Opacity` contiene solo una primitiva de renderización, se omite el método `saveLayer` que normalmente invoca el widget `Opacity`. En una comparativa realizada para medir los beneficios de esta optimización, el tiempo de rasterización para este caso mejoró en un orden de magnitud. En versiones futuras, planeamos aplicar esta optimización a incluso más escenarios. 


Gracias al trabajo del colaborador de código abierto JsouLiang, los subprocesos de IU y la trama del motor ahora se ejecutan con mayor prioridad en Android e iOS que en otros subprocesos. Por ejemplo, subprocesos de recolección de elementos no utilizados en segundo plano de Dart VM. En nuestras comparativas, esto resultó en un tiempo de compilación de fotograma promedio ~ 20% más rápido.


Antes de la versión 3, la política de admisión para el caché de trama solo tenía en cuenta la cantidad de operaciones de dibujo en una imagen y asumía que cualquiera con más de unas pocas operaciones sería un buen candidato para el almacenamiento en caché. Lamentablemente, esto hizo que el motor gastara memoria para almacenar en caché imágenes que en realidad se podían renderizar muy rápido. Esta versión presenta un mecanismo que estima la complejidad de renderización de las imágenes en función del costo de las operaciones de dibujo que contiene. Su uso como política de admisión de caché de trama redujo el uso de memoria sin disminuir el rendimiento en nuestras comparativas.


Le agradecemos al colaborador de código abierto ColdPaleLight, quien solucionó un error en la programación del fotograma que causaba que disminuyera levemente la cantidad de fotogramas de animación en iOS. Gracias a todas las personas que informaron este problema y brindaron reproducciones y videos de los fotogramas disminuidos.

Impeller

El equipo trabajó arduamente para encontrar una solución al bloqueo de inicio temprano en iOS y otras plataformas. En la versión Flutter 3, puedes obtener una vista previa de un backend de renderización experimental denominado Impeller en iOS. Impeller compila previamente un conjunto de sombreadores más pequeño y simple en el tiempo de compilación del motor para que no se compilen mientras se ejecuta una app. Esta fue una fuente importante de bloqueo en Flutter. Impeller no está listo para la producción y aún falta mucho para terminarlo. No todas las funciones de Flutter están implementadas todavía, pero estamos muy satisfechos con la fidelidad y el rendimiento en la app de Flutter o Galería como para compartir nuestro progreso. En particular, el peor fotograma en la animación de transición de la app de Galería es aproximadamente 20 veces más rápido.


Impeller está disponible bajo una función experimental en iOS. Puedes pasar la función experimental `--enable-impeller` a `flutter run`, o establecer la función experimental `FLTEnableImpeller` en tu archivo `Info.plist` a `true`, para probar Impeller. El desarrollo de Impeller continúa en el canal principal de Flutter y esperamos brindar más actualizaciones en las próximas versiones.

Anuncios integrados en Android

Cuando utilices el paquete google-mobile-ads, deberías observar un mejor rendimiento en las interacciones críticas del usuario, como el desplazamiento y las transiciones entre páginas. Esto es más notable en los dispositivos populares en los mercados emergentes. ¡Lo mejor de todo es que no se requieren cambios de código!

A nivel profundo, Flutter ahora compone vistas de Android, comúnmente conocidas como vistas de plataforma, de forma asíncrona. Esto significa que el subproceso de trama de Flutter no necesita esperar a que se renderice la vista de Android. En cambio, el motor de Flutter coloca la vista en la pantalla con una textura OpenGL que administra.

Más actualizaciones emocionantes

Material 3

Flutter 3 es compatible con Material Design 3, la siguiente generación de Material Design. Flutter 3 brinda compatibilidad opcional con Material 3. Se incluyen funciones de Material You como color dinámico, un sistema de color y tipografía actualizados, actualizaciones de muchos componentes y nuevos efectos visuales introducidos en Android 12 como un nuevo diseño de ondulación táctil y un efecto de desplazamiento de extensión. Prueba las funciones de Material 3 en el nuevo codelab Convierte a tu aburrida app de Flutter en una app increíble. Consulta los documentos de API para obtener más detalles sobre cómo optar por estas nuevas funciones y qué componentes son compatibles con Material 3. Sigue el trabajo continuo con el problema principal de Material 3.

Extensiones de tema

Flutter ahora permite agregar cualquier cosa a ThemeData de la biblioteca de Material, con un concepto llamado “Extensiones de tema”. En lugar de extender (en cuanto a Dart) ThemeData y volver a implementar copyWith, lerp y otros métodos, puedes especificar ThemeData.extensions. Además, como desarrollador de paquetes, puedes proporcionar ThemeExtensions. Consulta flutter.dev/go/theme-extensions para obtener más información y mira este ejemplo en GitHub.

Anuncios

Sabemos que es importante que los publicadores soliciten el consentimiento para anuncios personalizados y controlen los requisitos de App Tracking Transparency (ATT) de Apple.


Para ofrecer compatibilidad con estos requisitos, desde Google se ofrece el SDK de User Messaging Platform (UMP), que reemplaza al anterior SDK de código abierto Consent SDK. En la próxima versión del SDK de GMA para Flutter, agregaremos compatibilidad con el SDK de UMP para permitir que los publicadores obtengan el consentimiento del usuario. Para obtener más información, consulta la página de google_mobile_ads en pub.dev.


Cambios rotundos

Mientras continuamos con el crecimiento y la mejora de Flutter, nuestro objetivo es mantener al mínimo los cambios rotundos.  Con la versión de Flutter 3, tendremos los siguientes cambios rotundos:

Si usas cualquiera de estas API, lee la guía de migración en Flutter.dev.

Resumen

Desde el equipo de Flutter en Google, agradecemos el trabajo increíble que realizó la comunidad para ayudar a que Flutter mantenga su estado como el conjunto de herramientas de IU multiplataforma más popular, según lo medido por analistas como Statista y SlashData. Esperamos colaborar con la comunidad para continuar brindando una herramienta impulsada por la comunidad que ayude a crear una experiencia agradable tanto para los desarrolladores como para los usuarios.


Sumérgete en nuestra última versión, que incluye macOS y Linux estable, mejoras de rendimiento y mucho más.


Nuevamente, es hora de disfrutar de una versión estable de Flutter ¡y nos enorgullece enormemente anunciar el lanzamiento de Flutter 3! Hace solo tres meses, anunciamos la compatibilidad de Flutter con Windows. ¡Hoy, nos complace anunciar que Flutter ahora es estable para macOS y Linux, además de Windows!


Gracias al arduo trabajo de nuestros colaboradores de Flutter, combinamos 5248 solicitudes de extracción.


Tenemos varias cosas emocionantes que anunciar como parte de esta versión, incluida la actualización de la compatibilidad de Flutter con macOS y Linux, mejoras significativas en el rendimiento, actualizaciones para dispositivos móviles y la Web, ¡y mucho más! Además, tenemos noticias sobre la reducción de la compatibilidad con versiones anteriores de Windows y una breve lista de cambios rotundos. Así que, ¡pongámonos a trabajar!

Listo para la producción en todas las plataformas de escritorio

Menús en cascada y compatibilidad con la barra de menú del sistema macOS

Las barras de menú renderizadas por la plataforma ahora se pueden compilar en macOS usando el widget PlatformMenuBar, que admite la inserción de menús exclusivos de la plataforma y controla lo que aparece en los menús de la app para macOS.

Compatibilidad completa para la entrada de texto internacional en todas las plataformas de escritorio

La entrada de texto internacional, incluidos los idiomas que utilizan editores de métodos de entrada de texto (IME), como chino, japonés y coreano, es completamente compatible con las tres plataformas de escritorio, incluidos los métodos de entrada de terceros, como Sogou y Google Japanese Input.

Accesibilidad en todas las plataformas de escritorio

Flutter para Windows, macOS y Linux es compatible con servicios de accesibilidad, como lectores de pantalla, navegación accesible y colores invertidos.

Binarios universales de forma predeterminada en macOS

A partir del lanzamiento de Flutter 3, las apps de escritorio de Flutter para macOS se compilan como archivos binarios universales, con compatibilidad nativa tanto con las Mac basadas en Intel existentes como con los últimos dispositivos Apple Silicon de Apple.

Obsolescencia de Windows 7 y 8 para el desarrollo

Con esta versión, elevamos la versión de Windows recomendada para el desarrollo a Windows 10. Aunque no bloquearemos el desarrollo en versiones anteriores (Windows 7, Windows 8, Windows 8.1), estas versiones ya no son compatibles con Microsoft y brindamos pruebas limitadas en ellas. Si bien continuaremos ofreciendo compatibilidad de “mejor esfuerzo” para versiones anteriores, te alentamos a que te actualices. 


Nota: Seguimos ofreciendo compatibilidad para las apps de Flutter que se ejecutan en Windows 7, por lo que este cambio solo afecta al entorno de desarrollo recomendado.

Actualizaciones para dispositivos móviles

Compatibilidad con dispositivos plegables

La versión de Flutter 3 es compatible con los dispositivos móviles plegables. En una colaboración liderada por Microsoft, las nuevas funciones y widgets te permiten compilar experiencias dinámicas y agradables en dispositivos plegables.


Como parte de este trabajo, MediaQuery ahora contiene una lista de DisplayFeatures, que describe los límites y estados de los elementos del dispositivo, como bisagras, pliegues y cortes. Además, el widget DisplayFeatureSubScreen ahora posiciona su widget secundario sin superponer los límites de DisplayFeatures y ya se integró con los diálogos predeterminados y ventanas emergentes del marco de trabajo, lo que hace que Flutter sea consciente y responda a estos elementos desde el principio.



¡Muchas gracias al equipo de Microsoft y especialmente a @andreidiaconu por sus contribuciones! 


Prueba las muestras del emulador de Surface Duo, incluida una con una bifurcación especial de la galería de Flutter, para ver las pantallas duales de Flutter en acción.

Compatibilidad con la frecuencia de actualización variable de iOS

Flutter ahora es compatible con la frecuencia de actualización en dispositivos iOS con pantallas ProMotion, incluidos iPhone 13 Pro y iPad Pro. En estos dispositivos, las apps de Flutter pueden renderizar a frecuencias de actualización que alcanzan los 120 Hz, mientras que antes estaban limitadas a 60 Hz. Así, se obtiene una experiencia más fluida durante animaciones rápidas, como el desplazamiento. Consulta flutter.dev/go/variable-refresh-rate para obtener más información.

Versiones simplificadas para iOS

Agregamos nuevas opciones al comando flutter build ipa para simplificar el lanzamiento de tu app para iOS.  Cuando tengas todo listo para distribuir tu app a TestFlight o a la tienda de apps, ejecuta flutter build ipa para compilar un archivo Xcode (archivo .xcarchive) y un paquete de apps (archivo .ipa).  Como alternativa, puedes agregar --export-method ad-hoc, --export-method development o --export-method enterprise.  Una vez que se compila el paquete de apps, cárgalo en Apple a través de la app de macOS Apple Transport o en la línea de comandos con xcrun altool (ejecuta man altool para obtener más instrucciones de autenticación de la clave de API de App Store Connect). Después de la carga, tu app está disponible para lanzarla a TestFlight o la tienda de apps. Luego de ajustar la configuración inicial del proyecto Xcode, como el nombre visible y el ícono de la app, ya no necesitas abrir Xcode para lanzar tu app.

Actualización de la versión de Gradle

Si compilas un nuevo proyecto con la herramienta Flutter, probablemente notarás que los archivos generados ahora usan las últimas versiones de los complementos de Gradle y de Gradle para Android. Para los proyectos existentes, debes transmitir manualmente las versiones a 7.4 para Gradle y 7.1.2 para el complemento de Gradle para Android.

Fin de la compatibilidad con iOS de 32 bits, iOS 9 e iOS 10

Como anunciamos en febrero de 2022 con la versión estable 2.10, la compatibilidad de Flutter para dispositivos iOS de 32 bits y las versiones 9 y 10 de iOS está llegando a su fin. Este cambio afecta a los dispositivos iPhone 4S, iPhone 5, iPhone 5C y iPad de segunda, tercera y cuarta generación. Flutter 3 es la última versión estable compatible con estas versiones y dispositivos de iOS.


Para obtener más información sobre este cambio, consulta RFC: fin de la compatibilidad para dispositivos iOS de 32 bits.

Actualizaciones para la Web

Decodificación de imágenes

La versión web de Flutter ahora detecta y usa automáticamente la API ImageDecoder en los navegadores compatibles. A partir de hoy, la mayoría de los navegadores basados en Chromium (Chrome, Edge, Opera, Samsung Browser y muchos más) cuentan con esta API.


La nueva API decodifica imágenes de forma asíncrona fuera del subproceso principal utilizando los códecs de imágenes integrados del navegador. Así, se duplica la velocidad de decodificación de imágenes, nunca se bloquea el subproceso principal y se eliminan todos los bloqueos que antes causaban las imágenes.


Ciclos de vida de la app web

La nueva API de ciclo de vida para las apps web de Flutter te brinda la flexibilidad de controlar el proceso de arranque de tu app de Flutter desde la página HTML de alojamiento y le permite a Lighthouse analizar el rendimiento de tu app. Esto se aplica a muchos casos de uso, incluidos los siguientes escenarios solicitados con frecuencia:


  • Una pantalla de presentación.

  • Un indicador de carga.

  • Una página de destino interactiva HTML simple que se muestra antes de la app de Flutter.

Actualizaciones de herramientas

Paquete de lint actualizado 

Se lanzó la versión 2.0 de los paquetes de lint:

https://pub.dev/packages/flutter_lints/versions/2.0.0 

https://pub.dev/packages/lints/versions/2.0.0


Las apps generadas en Flutter 3 con flutter create habilitan automáticamente los conjuntos de lint versión 2.0. Se recomienda migrar las apps, los paquetes y los complementos existentes a la versión 2.0 para seguir las prácticas recomendadas más recientes en el mundo de Flutter. Para ello, debes ejecutar flutter pub upgrade --major-versions flutter_lints. 


La mayoría de las advertencias de lint recién agregadas en la versión 2 incluyen correcciones automáticas. De esta manera, después de actualizar a la última versión del paquete en el pubspec.yaml de tu app, puedes ejecutar dart fix --apply sobre tu base de código para corregir la mayoría de las advertencias de lint automáticamente (algunas advertencias aún requieren un trabajo manual). Apps, paquetes o complementos que no usan package:flutter_lints aún se recomienda realizar la migración siguiendo la guía de migración para aprovechar las prácticas recomendadas más recientes.

Mejoras de rendimiento

Gracias al colaborador de código abierto knopp, se habilitó la repetición de dibujo parcial en los dispositivos Android compatibles. En nuestras pruebas locales, este cambio redujo 5 veces los tiempos de rasterización de fotogramas promedio un 90% y 99% en la comparativa backdrop_filter_perf en un dispositivo Pixel 4 XL. La repetición de dibujo parcial cuando hay una sola región no sincronizada rectangular ahora está habilitada en los dispositivos iOS y en los dispositivos Android más nuevos.


Mejoramos aún más el rendimiento de las animaciones de opacidad en casos simples. En concreto, cuando un widget `Opacity` contiene solo una primitiva de renderización, se omite el método `saveLayer` que normalmente invoca el widget `Opacity`. En una comparativa realizada para medir los beneficios de esta optimización, el tiempo de rasterización para este caso mejoró en un orden de magnitud. En versiones futuras, planeamos aplicar esta optimización a incluso más escenarios. 


Gracias al trabajo del colaborador de código abierto JsouLiang, los subprocesos de IU y la trama del motor ahora se ejecutan con mayor prioridad en Android e iOS que en otros subprocesos. Por ejemplo, subprocesos de recolección de elementos no utilizados en segundo plano de Dart VM. En nuestras comparativas, esto resultó en un tiempo de compilación de fotograma promedio ~ 20% más rápido.


Antes de la versión 3, la política de admisión para el caché de trama solo tenía en cuenta la cantidad de operaciones de dibujo en una imagen y asumía que cualquiera con más de unas pocas operaciones sería un buen candidato para el almacenamiento en caché. Lamentablemente, esto hizo que el motor gastara memoria para almacenar en caché imágenes que en realidad se podían renderizar muy rápido. Esta versión presenta un mecanismo que estima la complejidad de renderización de las imágenes en función del costo de las operaciones de dibujo que contiene. Su uso como política de admisión de caché de trama redujo el uso de memoria sin disminuir el rendimiento en nuestras comparativas.


Le agradecemos al colaborador de código abierto ColdPaleLight, quien solucionó un error en la programación del fotograma que causaba que disminuyera levemente la cantidad de fotogramas de animación en iOS. Gracias a todas las personas que informaron este problema y brindaron reproducciones y videos de los fotogramas disminuidos.

Impeller

El equipo trabajó arduamente para encontrar una solución al bloqueo de inicio temprano en iOS y otras plataformas. En la versión Flutter 3, puedes obtener una vista previa de un backend de renderización experimental denominado Impeller en iOS. Impeller compila previamente un conjunto de sombreadores más pequeño y simple en el tiempo de compilación del motor para que no se compilen mientras se ejecuta una app. Esta fue una fuente importante de bloqueo en Flutter. Impeller no está listo para la producción y aún falta mucho para terminarlo. No todas las funciones de Flutter están implementadas todavía, pero estamos muy satisfechos con la fidelidad y el rendimiento en la app de Flutter o Galería como para compartir nuestro progreso. En particular, el peor fotograma en la animación de transición de la app de Galería es aproximadamente 20 veces más rápido.


Impeller está disponible bajo una función experimental en iOS. Puedes pasar la función experimental `--enable-impeller` a `flutter run`, o establecer la función experimental `FLTEnableImpeller` en tu archivo `Info.plist` a `true`, para probar Impeller. El desarrollo de Impeller continúa en el canal principal de Flutter y esperamos brindar más actualizaciones en las próximas versiones.

Anuncios integrados en Android

Cuando utilices el paquete google-mobile-ads, deberías observar un mejor rendimiento en las interacciones críticas del usuario, como el desplazamiento y las transiciones entre páginas. Esto es más notable en los dispositivos populares en los mercados emergentes. ¡Lo mejor de todo es que no se requieren cambios de código!

A nivel profundo, Flutter ahora compone vistas de Android, comúnmente conocidas como vistas de plataforma, de forma asíncrona. Esto significa que el subproceso de trama de Flutter no necesita esperar a que se renderice la vista de Android. En cambio, el motor de Flutter coloca la vista en la pantalla con una textura OpenGL que administra.

Más actualizaciones emocionantes

Material 3

Flutter 3 es compatible con Material Design 3, la siguiente generación de Material Design. Flutter 3 brinda compatibilidad opcional con Material 3. Se incluyen funciones de Material You como color dinámico, un sistema de color y tipografía actualizados, actualizaciones de muchos componentes y nuevos efectos visuales introducidos en Android 12 como un nuevo diseño de ondulación táctil y un efecto de desplazamiento de extensión. Prueba las funciones de Material 3 en el nuevo codelab Convierte a tu aburrida app de Flutter en una app increíble. Consulta los documentos de API para obtener más detalles sobre cómo optar por estas nuevas funciones y qué componentes son compatibles con Material 3. Sigue el trabajo continuo con el problema principal de Material 3.

Extensiones de tema

Flutter ahora permite agregar cualquier cosa a ThemeData de la biblioteca de Material, con un concepto llamado “Extensiones de tema”. En lugar de extender (en cuanto a Dart) ThemeData y volver a implementar copyWith, lerp y otros métodos, puedes especificar ThemeData.extensions. Además, como desarrollador de paquetes, puedes proporcionar ThemeExtensions. Consulta flutter.dev/go/theme-extensions para obtener más información y mira este ejemplo en GitHub.

Anuncios

Sabemos que es importante que los publicadores soliciten el consentimiento para anuncios personalizados y controlen los requisitos de App Tracking Transparency (ATT) de Apple.


Para ofrecer compatibilidad con estos requisitos, desde Google se ofrece el SDK de User Messaging Platform (UMP), que reemplaza al anterior SDK de código abierto Consent SDK. En la próxima versión del SDK de GMA para Flutter, agregaremos compatibilidad con el SDK de UMP para permitir que los publicadores obtengan el consentimiento del usuario. Para obtener más información, consulta la página de google_mobile_ads en pub.dev.


Cambios rotundos

Mientras continuamos con el crecimiento y la mejora de Flutter, nuestro objetivo es mantener al mínimo los cambios rotundos.  Con la versión de Flutter 3, tendremos los siguientes cambios rotundos:

Si usas cualquiera de estas API, lee la guía de migración en Flutter.dev.

Resumen

Desde el equipo de Flutter en Google, agradecemos el trabajo increíble que realizó la comunidad para ayudar a que Flutter mantenga su estado como el conjunto de herramientas de IU multiplataforma más popular, según lo medido por analistas como Statista y SlashData. Esperamos colaborar con la comunidad para continuar brindando una herramienta impulsada por la comunidad que ayude a crear una experiencia agradable tanto para los desarrolladores como para los usuarios.