Flutter 3.3 presenta un nuevo motor de renderizado

Con Flutter, el marco de trabajo de la interfaz de usuario de Google, los usuarios pueden crear aplicaciones compiladas de forma nativa para dispositivos móviles, web y de escritorio a partir de una base de código. Google acaba de anunciar el tercer lanzamiento de Flutter de 2022, la versión 3.3 y la versión 2.18 del lenguaje Dart de Flutter . Ambos lanzamientos son refinamientos sin características nuevas significativas. Está disponible un nuevo motor de renderizado llamado Impeller, pero solo en versión preliminar y solo para iOS. Google también lanzó una nueva aplicación de exhibición, Wonderous, creada con Flutter 3.3 y usando Impeller en iOS.

Novedades en Flutter 3.3

Las aplicaciones de Flutter no usan elementos de la interfaz de usuario de la plataforma subyacente, sino que los emulan. Flutter se envía con Material UI, que funciona en todas las plataformas, y un conjunto de elementos de UI de iOS. Las bibliotecas de código abierto ofrecen conjuntos de elementos de interfaz de usuario de Windows, macOS y Linux.

La selección de texto en las aplicaciones web de Flutter ahora funciona como se esperaba: los usuarios pueden seleccionar varias filas de texto a la vez. Los gestos del panel táctil funcionan mejor en las aplicaciones de escritorio. Las aplicaciones de Windows ahora obtienen su número de versión del pubspec.yamlarchivo de compilación. Y las aplicaciones de iPad pueden usar Scribble con Apple Pencil para escribir a mano.

Algunos componentes de Material 3 mejoraron en esta versión: IconButtonChips,AppBar. Cargar imágenes que están incluidas en la aplicación es más rápido y usa menos memoria con el nuevo ui.ImmutableBuffer.fromAsset()método. Y la compresión de puntero ahora está deshabilitada en iOS para que haya más memoria disponible para las partes que no son Dart de una aplicación Flutter (como las bibliotecas).

El go_routerpaquete del equipo de Flutter simplifica el enrutamiento dentro de una aplicación con declaraciones basadas en URL. La versión 4.3 admite código asíncrono. La extensión Flutter Visual Studio Code y Flutter DevTools también han mejorado.

Flutter 3.3 ya no se ejecuta en dispositivos iOS de 32 bits. Eso excluye los modelos de iPhone 5C (a partir de 2014) y anteriores y el iPad de segunda a cuarta generación (este último lanzado en 2012). El próximo lanzamiento de Flutter del cuarto trimestre de 2022 tampoco funcionará en macOS 10.11 (desde 2015) y 10.12 (desde 2016).

Apple eliminó Bitcode de sus próximas versiones de iOS y iPadOS de otoño. Es por eso que Flutter también eliminará la compatibilidad con Bitcode en una versión futura.

Flutter ha utilizado Skia como su motor gráfico desde el principio. Skia potencia Chrome, Firefox, Android, ChromeOS y más. Por el contrario, Impeller está hecho a medida para Flutter y «aprovecha al máximo las modernas API de gráficos acelerados por hardware como Metal en iOS y Vulkan en Android». Eso permite mejores animaciones y elimina una fuente común de «tirones»: animaciones y transiciones entrecortadas.

Al anunciar el lanzamiento anterior , el equipo de Flutter citó la existencia de 500 000 aplicaciones de Flutter como un indicador de éxito. Esta vez, el equipo de Flutter dijo que «todos los días, se publican más de 1,000 nuevas aplicaciones móviles que usan Flutter en las tiendas Apple y Google Play». Desafortunadamente, ambos números carecen de contexto, como el rendimiento de las plataformas de la competencia.

Novedades de Dart 2.18

Dart está fuertemente tipado y optimizado para el desarrollo de UI. Comenzando como una «mezcla de JavaScript y Java», ahora tiene características que ninguno de estos dos lenguajes tiene (como la seguridad de sonido nulo).

Dart presentó Sound Null Safety en marzo de 2021, cubriendo tanto aplicaciones como bibliotecas. Eso es lo mismo que Swift, pero a diferencia de Kotlin, que no puede garantizar una seguridad nula para las bibliotecas. Todas las 250 bibliotecas principales de Flutter y Dart migraron a la seguridad nula, y solo el 2 % de las 1000 bibliotecas principales no lo han hecho. Más del 80 % de todas las aplicaciones de Flutter ejecutadas en julio de 2022 usaban seguridad nula de sonido. Es por eso que Dart planea dejar de admitir versiones de Dart sin seguridad nula a mediados de 2023.

Dart incluye una biblioteca HTTP multiplataforma. Ofrece soporte experimental para dos bibliotecas específicas de plataforma. El primero es cupertino_httppara iOS y macOS. Utiliza el de Apple NSURLSessionpara funciones como redes solo WiFi o acceso VPN. La segunda biblioteca es cronet_httppara Android y se basa en la popular biblioteca Cronet.

La interfaz de funciones externas (FFI) de Dart para llamar a las API C nativas ahora puede interactuar con código Objective-C y Swift en iOS y macOS. La inferencia de tipos mejorada detecta mejor algunos casos de parámetros que no aceptan valores NULL. Y el código asíncrono es un poco más pequeño y se ejecuta un poco más rápido.