Novedades de Flutter 3

Es hora nuevamente de un lanzamiento estable de Flutter, ¡y estamos increíblemente orgullosos de anunciar Flutter 3 ! Hace solo tres meses, anunciamos la compatibilidad con Flutter para Windows. ¡Hoy, nos complace anunciar que Flutter ahora es estable para macOS y Linux, además de Windows!

Tenemos varias cosas emocionantes que anunciar como parte de este lanzamiento, incluida la actualización del soporte de Flutter para macOS y Linux, mejoras significativas en el rendimiento, actualizaciones móviles y web, ¡y mucho más!

¿Qué es el kit de desarrollo multiplataforma Flutter?

Además, tenemos noticias sobre la reducción de la compatibilidad con versiones anteriores de Windows y una breve lista de cambios importantes. Entonces, ¡vamos al grano!

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

45 Mejores Cursos Gratis de Android, Flutter, Kotlin y Dart

Linux y macOS se han vuelto estables e incluyen las siguientes características:

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

Ahora puede crear barras de menú renderizadas en la plataforma en macOS usando el PlatformMenuBar widget, que admite la inserción de menús exclusivos de la plataforma y controla lo que aparece en los menús de la aplicación macOS.

Soporte completo para 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 totalmente 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 admiten servicios de accesibilidad como lectores de pantalla, navegación accesible y colores invertidos.

Binarios universales por defecto en macOS

A partir de Flutter 3, las aplicaciones de escritorio Flutter macOS se crean como archivos binarios universales, con soporte nativo tanto para las Mac basadas en Intel existentes como para los últimos dispositivos Apple Silicon de Apple.

Obsolescencia de Windows 7/8 para desarrollo

Con este lanzamiento, elevamos la versión de Windows recomendada para el desarrollo a Windows 10. Si bien no bloqueamos el desarrollo en versiones anteriores (Windows 7, Windows 8, Windows 8.1), Microsoft ya no admite estas versiones y proporcionamos pruebas limitadas en estas versiones. Si bien continuaremos ofreciendo soporte de “mejor esfuerzo” para versiones anteriores, lo alentamos a que actualice.

Actualizaciones móviles

Nuestras actualizaciones a las plataformas móviles incluyen lo siguiente:

Soporte de teléfono plegable

La versión Flutter 3 es compatible con dispositivos móviles plegables. En una colaboración encabezada por Microsoft, las nuevas funciones y widgets le permiten crear 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 DisplayFeatureSubScreen widget ahora posiciona su widget secundario sin superponerse a los límites de DisplayFeatures , y ya se ha integrado con los cuadros de diálogo y ventanas emergentes predeterminados del marco, lo que hace que Flutter sea consciente y responda a estos elementos desde el primer momento .

Pruebe las muestras del emulador de Surface Duo , incluida una con una bifurcación especial de Flutter Gallery, para ver las pantallas duales de Flutter en acción.

Soporte de frecuencia de actualización variable de iOS

Flutter ahora admite frecuencia de actualización variable en dispositivos iOS con pantallas ProMotion, incluidos iPhone 13 Pro y iPad Pro. En estos dispositivos, las aplicaciones de Flutter pueden renderizar a frecuencias de actualización que alcanzan los 120 hz, que anteriormente estaban limitadas a 60 hz. Esto da como resultado una experiencia más fluida durante animaciones rápidas como el desplazamiento. Consulte flutter.dev/go/variable-refresh-rate para obtener más detalles.

Lanzamientos simplificados de iOS

Agregamos nuevas opciones al comando flutter build ipa para simplificar el lanzamiento de su aplicación iOS. Cuando esté listo para distribuir a TestFlight o App Store, ejecute flutter build ipa para crear un archivo Xcode ( .xcarchive archivo) y un paquete de aplicaciones ( .ipa archivo). Opcionalmente, puede agregar —-export-method ad-hoc , —-export-method development o —-export-method enterprise . Una vez que se crea el paquete de aplicaciones, cárguelo en Apple a través de la aplicación Apple Transport macOS o en la línea de comando usando xcrun altool (ejecutar man altool para obtener instrucciones de autenticación de la clave API de App Store Connect). Después de cargar, su aplicación está disponible para su lanzamiento en TestFlight o App Store . Después de configurar la configuración inicial de su proyecto Xcode, como el nombre para mostrar y el ícono de la aplicación, ya no necesita abrir Xcode para lanzar su aplicación.

Actualización de la versión de Gradle

Si crea un nuevo proyecto con la herramienta Flutter, es posible que observe que los archivos generados ahora usan las últimas versiones de los complementos Gradle y Android Gradle. Para los proyectos existentes, debe cambiar manualmente las versiones a 7.4 para Gradle y 7.1.2 para el complemento de Android Gradle.

Puesta en extinción de iOS/iOS 9/iOS 10 de 32 bits

Como anunciamos en febrero de 2022 con la versión estable 2.10, el soporte 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, consulte RFC: fin del soporte para dispositivos iOS de 32 bits .

actualizaciones web

Nuestras actualizaciones para aplicaciones web incluyen lo siguiente:

Decodificación de imágenes

Flutter web ahora detecta y usa automáticamente la API de ImageDecoder en los navegadores que la admiten. A partir de hoy, la mayoría de los navegadores basados en Chromium (Chrome, Edge, Opera, Samsung Browser y más) han agregado esta API.

La nueva API decodifica imágenes de forma asíncrona fuera del hilo principal utilizando los códecs de imágenes integrados del navegador. Esto acelera la decodificación de imágenes en 2x, y nunca bloquea el hilo principal, eliminando todos los bloqueos que antes causaban las imágenes.

Ciclos de vida de las aplicaciones web

La nueva API de ciclo de vida para las aplicaciones web Flutter le brinda la flexibilidad de controlar el proceso de arranque de su aplicación Flutter desde la página HTML de alojamiento y ayuda a Lighthouse a analizar el rendimiento de su aplicación. 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 aplicación Flutter.

Para obtener más información, consulte Personalización de la inicialización de aplicaciones web en docs.flutter.dev.

Actualizaciones de herramientas

Nuestras actualizaciones de herramientas Flutter y Dart incluyen:

Paquete de pelusa actualizado

Se ha lanzado la versión 2.0 de los paquetes lint:

  • Flutter: https://pub.dev/packages/flutter_lints/versions/2.0.0
  • Dardo: https://pub.dev/packages/lints/versions/2.0.0

Las aplicaciones generadas en Flutter 3 flutter create habilitan automáticamente los conjuntos de pelusas v2.0. Se alienta a las aplicaciones, paquetes y complementos existentes a migrar a v2.0 para seguir las mejores y más recientes prácticas en el mundo de Flutter, ejecutando flutter pub upgrade --major-versions flutter_lints .

La mayoría de las advertencias de pelusa recién agregadas en v2 vienen con correcciones automáticas. Entonces, después de actualizar a la última versión del paquete en el pubspec.yaml archivo de su aplicación, puede ejecutar dart fix —-apply su base de código para corregir la mayoría de las advertencias de pelusa automáticamente (algunas advertencias aún requieren un trabajo manual). Las aplicaciones, los paquetes o los complementos que package:flutter_lints aún no se usan pueden migrar siguiendo la guía de migración .

Mejoras de rendimiento

Gracias al colaborador de código abierto knopp , se ha habilitado el repintado parcial en los dispositivos Android que lo admiten. En nuestras pruebas locales, este cambio redujo los tiempos de rasterización de fotogramas promedio, percentil 90 y percentil 99 en el backdrop_filter_perf punto de referencia en un dispositivo Pixel 4 XL en 5 veces. El repintado parcial cuando hay una sola región sucia rectangular ahora está habilitado tanto en iOS como en dispositivos Android más nuevos.

Hemos mejorado aún más el rendimiento de las animaciones de opacidad en casos simples. En particular, cuando un Opacity widget contiene solo una primitiva de representación, se omite el saveLayer método que normalmente se invoca . Opacity En un punto de referencia construido 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 más escenarios.

Gracias al trabajo del colaborador de código abierto JsouLiang , los subprocesos de interfaz de usuario y de 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 nuestros puntos de referencia, esto resultó en tiempos promedio de construcción de fotogramas ~ 20% más rápidos.

Antes de la versión 3, la política de admisión para el caché ráster solo analizaba la cantidad de operaciones de dibujo en una imagen, asumiendo que cualquiera con más de unas pocas operaciones sería un buen candidato para el almacenamiento en caché. Desafortunadamente, esto resultó en que el motor gastara memoria para almacenar en caché imágenes que en realidad eran muy rápidas de renderizar. Esta versión presenta un mecanismo que estima la complejidad de representación de las imágenes en función del costo de las operaciones de dibujo que contiene. El uso de esto como la política de admisión de caché de ráster redujo el uso de memoria sin disminuir el rendimiento en nuestros puntos de referencia.

Gracias al colaborador de código abierto ColdPaleLight , que corrigió un error en la programación de fotogramas que provocaba la eliminación de una pequeña cantidad de fotogramas de animación en iOS. Gracias a todos los que informaron este problema y proporcionaron reproducciones y videos de los fotogramas perdidos.

Impulso

El equipo ha estado trabajando arduamente en una solución para abordar el bloqueo de inicio temprano en iOS y otras plataformas. En el lanzamiento de Flutter 3, puede obtener una vista previa de un backend de renderizado experimental llamado Impeller en iOS. Impeller precompila un conjunto de sombreadores más pequeño y simple en el momento de la construcción del motor para que no se compilen mientras se ejecuta una aplicación; esta ha sido una fuente importante de bloqueo en Flutter. El impulsor no está listo para la producción y está lejos de estar terminado. Todavía no se han implementado todas las funciones de Flutter, pero estamos lo suficientemente satisfechos con su fidelidad y rendimiento en la aplicación flutter/gallery como para compartir nuestro progreso. En particular, el peor cuadro en la animación de transición de la aplicación Galería es alrededor de 20 veces más rápido .

Impulsor está disponible bajo una bandera en iOS. Puede pasar —-enable-impeller a flutter run , o establecer el FLTEnableImpeller indicador en su Info.plist archivo en true , para probar Impeller. El desarrollo de Impeller continúa en el canal maestro de Flutter y esperamos brindar más actualizaciones en futuras versiones.

Anuncios en línea en Android

Cuando use el google_mobile_ads paquete, debería ver un mejor rendimiento en las interacciones críticas del usuario, como el desplazamiento y las transiciones entre páginas. Esto es particularmente notable en los dispositivos populares en los mercados emergentes. ¡La mejor parte es que no se requieren cambios de código!

Bajo el capó, Flutter ahora compone vistas de Android, comúnmente conocidas como vistas de plataforma , de forma asincrónica. Esto significa que el subproceso ráster de Flutter no necesita esperar a que se muestre la vista de Android. En cambio, el motor de Flutter coloca la vista en la pantalla usando una textura OpenGL que administra.

Más actualizaciones emocionantes

Otras actualizaciones del ecosistema de Flutter incluyen las siguientes:

Materia 3

Flutter 3 es compatible con Material Design 3 , la próxima generación de Material Design. Flutter 3 proporciona soporte opcional para Material 3; esto incluye características 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 la nueva aplicación Take your Flutter from Boring to Beautiful codelab. Consulte los documentos de API para obtener detalles sobre cómo optar por estas nuevas funciones y qué componentes son compatibles con Material 3. Siga el trabajo en curso con el problema de Material 3 Umbrella .

extensiones de tema

Flutter ahora permite agregar cualquier cosa a la biblioteca de materiales ThemeData , con un concepto llamado extensiones de tema . En lugar de extender (en el sentido de Dart) ThemeData y volver a implementar sus métodos copyWith , lerp y otros, puede especificar ThemeData .extensions. Además, como desarrollador de paquetes, puede proporcionar ThemeExtension . Consulte flutter.dev/go/theme-extensions para obtener más detalles y consulte este ejemplo en GitHub .

anuncios

Sabemos que es importante que los editores soliciten el consentimiento para anuncios personalizados y manejen los requisitos de transparencia de seguimiento de aplicaciones (ATT) de Apple.

Para cumplir con estos requisitos, Google ofrece el SDK de User Messaging Platform (UMP), que reemplaza al SDK de consentimiento de código abierto anterior . En el próximo lanzamiento de GMA SDK para Flutter, agregaremos compatibilidad con UMP SDK para permitir que los editores obtengan el consentimiento del usuario. Para obtener más detalles, consulte la página google_mobile_ads en pub.dev.

Rompiendo cambios

A medida que continuamos creciendo y mejorando Flutter, nuestro objetivo es mantener la cantidad de cambios importantes al mínimo. Con el lanzamiento de Flutter 3, tenemos los siguientes cambios importantes:

Si está utilizando alguna de estas API, consulte la guía de migración en Flutter.dev .

Resumen

Desde el equipo de Flutter en Google, agradecemos el increíble trabajo que la comunidad ha realizado para ayudar a Flutter a mantener su estatus como el conjunto de herramientas de interfaz de usuario multiplataforma más popular, según lo medido por analistas como Statista y SlashData. ¡Esperamos trabajar juntos como 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!

Relacionado

The best Udemy courses in August, only for 9.99 $

Los mejores cursos en inglés y en oferta, hasta el día 27. Los cursos incluidos aquí son todos en inglés. Revisa por aquí, entre los mejores cursos en oferta de Udemy de Agosto en español, si lo que deseas son cursos en español. Si por desgracia, no tienes la oportunidad de acceder a comprar alguno de los excelentes cursos que te mostraré a continuación. Siempre puedes ¡SEGUIR LEYENDO!

Se anuncia el kit de desarrollo Flutter Alpha para su uso en Windows

Nuestra misión es proporcionar a los desarrolladores un framework de código abierto y de alta productividad para crear aplicaciones nativas hermosas en cualquier plataforma. Hasta ahora, hemos enviado soporte de calidad de producción para Android e iOS, con ocho versiones estables y más de 100,000 aplicaciones enviadas solo a Google Play Store. Continuamos ampliando nuestro enfoque para incluir otras plataformas, incluidas web, macOS y Linux. Hoy, ¡SEGUIR LEYENDO!

Nueva Versión Estable de Flutter 2: Mejoras para los Desarrolladores

Nuevos cambios en el SDK de Flutter 2, visto desde el punto de vista de un desarrollador. A continuación, vamos a ojear algunas de las nuevas mejoras que el SDK de Flutter 2 va a permitir implementar a todos los creadores de aplicaciones de Flutter, de aquí en adelante. Agregado de enlaces Los hipervínculos, son una parte fundamental para la forma en la que los usuarios ¡SEGUIR LEYENDO!

Novedades de Flutter 2.5

Mejoras de rendimiento, actualizaciones de DevTools, nuevo Material que admite, una nueva plantilla de aplicación y más. La nueva versión de Flutter 2.5 trae una serie de importantes mejoras de rendimiento y herramientas para rastrear problemas de rendimiento en su propia aplicación. Al mismo tiempo, se incluyen toda una serie de nuevas funciones que incluyen la compatibilidad con pantalla completa para Android, más compatibilidad con Material ¡SEGUIR LEYENDO!

Mejores cursos de introducción a la programación

Muchos de estos cursos ya están incluidos en nuestro recopilatorio de cursos en español, allí podrás encontrarlos ordenados por temáticas y navegación de botones. En este otro enlace, podrás encontrar libros. Si lo que deseas es aprender a programar, no dejes de investigar más en profundidad alrededor de toda la web; y también, puedes investigar entre los cientos de recursos gratis que te ofrece Ciberninjas. A ¡SEGUIR LEYENDO!