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 PlatformMenuBarwidget, 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, MediaQueryahora 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 DisplayFeatureSubScreenwidget 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 ipapara crear un archivo Xcode ( .xcarchivearchivo) y un paquete de aplicaciones ( .ipaarchivo). Opcionalmente, puede agregar —-export-method ad-hoc, —-export-method developmento —-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 altoolpara 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 createhabilitan 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.yamlarchivo de su aplicación, puede ejecutar dart fix —-applysu 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_lintsaú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_perfpunto 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 Opacitywidget contiene solo una primitiva de representación, se omite el saveLayermétodo que normalmente se invoca . OpacityEn 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-impellera flutter run, o establecer el FLTEnableImpellerindicador en su Info.plistarchivo 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_adspaquete, 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) ThemeDatay volver a implementar sus métodos copyWith, lerpy 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

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

26 Nuevos Cursos GRATIS de Udemy: Python, Javascript, Flutter (cupón finalizado)

26 Nuevos cursos con cupones free de Udemy: En español (typescript,javascript, react, vue y videojuegos) e ingles (Python, Django, Javascript, R, SQL, Flutter, Java, Qt, Bootstrap, Illustrator y Photoshop). Cursos en Español ? Curso Gratis de Udemy: Aprende JavaScript y Jquery de 0 a 100 APÚNTATE ? Curso Gratis de Udemy: Aprende Typescript de 0 a 100 APÚNTATE ? Curso Gratis de Udemy: Aprende Vue + ¡SEGUIR LEYENDO!

¿Cuáles son las mejores alternativas para PhoneGap después de su cierre?

PhoneGap fue uno de los frameworks de código abierto más populares y utilizados para el desarrollo de aplicaciones web y móviles. Los desarrolladores usaban PhoneGap para crear aplicaciones de alto rendimiento. En algún momento, incluso, Phonegap alcanzo a ser la mejor herramienta para el desarrollo de aplicaciones multiplataforma. PhoneGap Build se lanzó hace mucho tiempo y fue un servicio utilizado para crear código fuente para iOS, ¡SEGUIR LEYENDO!

Curso de Programación Apps para Dispositivos Móviles con Flutter

Con este sitio web vas a poder comenzar a iniciarte tanto en Flutter como en la creación de tu primera aplicación con Flutter y Dart. ?‍? ENTRAR AL CURSO DE FLUTTER Estos apuntes han sido creados por el profesor de formación profesional Ángel Fernandez en el Centro Rodolfo Ucha Piñeiro de Ferrol. A lo largo del sitio web, vas a poder aprender a lo largo de ¡SEGUIR LEYENDO!

Más de 1.500 Libros PDF en Inglés de Desarrollo Web, Programación, Seguridad, Robótica, Blockchain, Domótica y Mucho Más

La mejor lista de libros sobre lenguajes de programación en inglés de todo Internet. https://ciberninjas.com/zlibrary/ Libros de Python / Libros PHP / Libros Java / Libros Diseño Meta Listas atariarchives.org atariarchives.org pone a disposición en la Web libros, información y software para Atari y otras computadoras clásicas. Bento Bitsavers.org Bookboon: se requiere cookie de TI y programación</. (requiere @email) DZone - Hojas de trucos (gratis) Conceptf1.blogspot.com ¡SEGUIR LEYENDO!

Comienza a programar APPS ARM con Windows Dev Kit 2023 de Microsoft

Con Microsoft finalmente haciendo que su versión Arm Windows esté disponible con Arm en sus tablets Surface Pro 9, hay una pregunta en el aire, ¿De dónde saldrán todas las aplicaciones Arm? Microsoft ha producido una respuesta de hardware liviana, relativamente económica pero poderosa y flexible con el Windows Dev Kit 2023, anteriormente conocida como proyecto Volterra. Windows Dev Kit 2023 administra las cargas de trabajo ¡SEGUIR LEYENDO!

¿Cómo aprender Flutter?

Flutter es un framework SDK multiplataforma de interfaz de usuario móvil gratuito y de código abierto creado por Google y lanzado en mayo de 2017. En pocas palabras, esto te va a permitir crear una aplicación móvil nativa con un solo código, lo que significa que vas a poder utilizar un mismo lenguaje de programación y una única base de código para crear dos o más ¡SEGUIR LEYENDO!

Salir de la versión móvil