Anuncio de Flutter 1.12: ¡Qué año!

Eduardo CQ
Comunidad Flutter
Published in
14 min readDec 16, 2019

Hola a todos, esta es una traducción al español del artículo Announcing Flutter 1.12: What a year!del autor Chris Sells.

Se ha anunciado la versión 1.12, el último lanzamiento estable de Flutter. Esto hace 5 lanzamientos estables desde el lanzamiento de la 1.0 en Diciembre del 2018. Ha sido un año asombroso! Hemos cerrado 5303 problemas y fusionado solicitudes de extracción de 484 colaboradores. En el framework y el motor de Flutter, hemos agregado soporte para los paquetes de aplicaciones de Android, iOS 13, implementamos eventos de mouse y teclado, lanzamos el complemento de compra en la aplicación, fusionamos varias mejoras de rendimiento importantes , localizado para 24 configuraciones regionales adicionales y creado varios widgets nuevos. Además, las herramientas Flutter también han visto una gran mejora, con el lanzamiento de Dart DevTools, que proporciona el inspector de widgets, el perfil de memoria y CPU, y un registro mejorado que se puede utilizar independientemente de su editor / IDE de elección. Además, hemos agregado la importación automática de paquetes para los tipos referenciados, el soporte explícito de ChromeOS, las guías de interfaz de usuario para que sus métodos de compilación sean más fáciles de leer y escribir, y los mensajes de error mejorados con formato, colores y una redacción más procesable.

Y con cada lanzamiento, hemos dicho lo mismo: que apenas estamos comenzando. Esto sigue siendo cierto en este, nuestro lanzamiento más grande hasta la fecha, proveniente de 188 colaboradores, cerrando 4,571 números y fusionando 1,905 RP. Al igual que en versiones anteriores, abundan las mejoras tanto para el framework Flutter como para las herramientas.

Framework de Flutter

Esta versión incluye una actualización visual para admitir iOS 13 que incluye la implementación completa del modo oscuro, nuevos widgets de Cupertino, varios ajustes de UX y una experiencia de complemento a la aplicación muy mejorada.

iOS 13 modo oscuro completado

Más noticias importantes en Flutter 1.12 es la finalización de nuestro trabajo para admitir el aspecto y la sensación de iOS 13. Esto incluye soporte completo del modo oscuro en los widgets de Cupertino.

Si observa en las capturas de pantalla anteriores, la compatibilidad con el modo oscuro es mucho más que simplemente cambiar el color de fondo, sino también adaptar el resto de los colores para que coincidan. Tal atención profunda al modo oscuro fue una gran cantidad de trabajo, pero valió la pena para obtener un soporte de diseño de iOS perfecto para píxeles tanto en el modo oscuro como en el claro.

Además, en nuestro objetivo continuo de perfección de píxeles para iOS 13, hemos agregado dos nuevos widgets.

CupertinoContextMenu y CupertinoSlidingSegmentedControl

Y finalmente, en nuestra búsqueda para hacer que una aplicación Flutter se sienta y se vea nativa en iOS 13, hemos mejorado la fidelidad de la barra de desplazamiento , proporcionamos el relleno adaptativo CupertinoAlertDialog y permitimos restricciones de fecha mín. / Máx. En el CupertinoDatePicker .

Add-to-App actualizado

Otra mejora en nuestro soporte móvil es una actualización de Add-to-App, que es la capacidad de integrar Flutter en una aplicación existente de Android o iOS. Aquí, hemos estado trabajando para simplificar el flujo de integración para hacer que agregar una biblioteca Flutter a su aplicación sea una mejor experiencia, incluida la adición de un nuevo asistente de Flutter Module en Android Studio.

Con Flutter 1.12, Add-to-App ahora es oficialmente compatible para agregar una instancia de Flutter a pantalla completa a su aplicación. Al admitir esta funcionalidad, también hemos:

  • Estabilizado las API para la integración de la plataforma en Java, Kotlin, Objective-C y Swift, incluido un nuevo conjunto de API para Android. Consulte los documentos de migración de proyectos de Android para obtener detalles sobre los cambios.
  • Se agregó soporte para usar complementos en módulos Flutter integrados.
  • Se proporcionaron mecanismos de integración adicionales a través de Android AAR y iOS Frameworks para una mejor compatibilidad con los sistemas de compilación existentes.
  • Se modificó el mecanismo de ‘conexión de flutter’ en las herramientas de línea de comandos, los complementos VSCode e IntelliJ para conectarse fácilmente a un módulo Flutter en ejecución para la depuración, DevTools y hot reload.

Para probar Add-to-App, consulte la documentación del sitio web o explore nuestros proyectos de muestra que muestran varios escenarios de integración.

Dart 2.7

Por supuesto, todo lo que hacemos en Flutter se basa en Dart, por lo que si aún no ha leído acerca de los métodos de extensión y el manejo seguro de cadenas (incluidos los emojis), o si desea una actualización sobre la seguridad nula utilizando tipos no anulables, puede encontrar que información en el anuncio Dart 2.7 .

Beyond Flutter 1.12 estable

Al mismo tiempo que Flutter está obteniendo nuevas funciones en el canal estable, también está obteniendo nuevas funciones más allá de lo que puede hacer en estable, específicamente una versión beta de soporte web y una versión alfa de soporte macOS.

Soporte web disponible en beta

Los canales maestro, desarrollador y beta de Flutter 1.12 brindan soporte mejorado para la web.

Un cliente feliz de Flutter en la web es Rivet , en la foto de arriba. Rivet es un proyecto educativo que actualmente tiene una aplicación móvil en producción. Están utilizando Flutter y Firebase para crear una versión web de su aplicación que planean lanzar a principios de 2020.

Puede obtener más información sobre lo que otros clientes están haciendo con el soporte web de Flutter, así como el resto de los detalles en la publicación del blog web de Flutter .

macOS moviéndose a alfa

El soporte de escritorio de macOS no se queda atrás, pasando de la vista previa técnica a alfa, disponible ahora en los canales maestro y de desarrollo (en Flutter SDK 1.13).

En la foto, en tamaño de escritorio, hay una nueva versión de Flutter Gallery que se ha actualizado por completo para admitir macOS además de Android, iOS y web.

El macOS alpha representa un gran paso adelante para el soporte de escritorio de Flutter, incluidos los nuevos widgets de muestra DataTree y Split, varios complementos portados a macOS, soporte para compilar tanto en modo de lanzamiento como de perfil, y una historia de herramientas muy simplificada. Si está ejecutando desde el canal de desarrollo o maestro, puede obtener acceso a las herramientas de macOS habilitando el soporte de escritorio macOS en la configuración de todo el sistema de Flutter:

$ flutter config --enable-macos-desktop

Crear un proyecto Flutter que se ejecute en macOS ahora es como crear cualquier otro proyecto Flutter nuevo con ‘flutter create’.

Observe el nuevo directorio macos creado por defecto

Además del soporte de herramientas, también hemos estado trabajando en la densidad adecuada para aplicaciones de tamaño de escritorio. Las aplicaciones móviles necesitan controles relativamente grandes para acomodar las interacciones táctiles, mientras que en dispositivos del tamaño de una computadora de escritorio, es más probable que un usuario use un mouse. Al llevar Flutter al escritorio, hemos trabajado para permitirle elegir la densidad de sus widgets para satisfacer mejor las necesidades de los usuarios de su escritorio:

Muestra que demuestra la implementación de Flutter de las pautas de densidad de material

Y finalmente, para mejorar la experiencia de las aplicaciones de escritorio de Flutter, hemos trabajado mucho en la navegación y el acceso al teclado, que incluyen:

Además del ejemplo de Flutter, también recomendamos el nuevo ejemplo de Búsqueda de fotos , que muestra una gran cantidad de bondades en el escritorio, incluido el manejo del teclado, la nueva densidad de widgets, los nuevos complementos y los nuevos widgets.

Para aquellos de ustedes que tienen curiosidad sobre el progreso en Windows y Linux, todavía están en la vista previa técnica, pero ambos se benefician de una gran parte del trabajo para llevar macOS a alfa. Compartiremos las actualizaciones de esas plataformas pronto. Para obtener más detalles sobre dónde estamos con soporte de escritorio en Flutter para macOS, Windows y Linux, consulte flutter.dev/desktop .

Herramientas de Flutter

Además de Framework y Engine, también tenemos mucho de qué hablar para las herramientas de Flutter. Esto incluye una nueva versión de DartPad con soporte para Flutter, IDE aumentados basados ​​en IntelliJ con una vista previa de una nueva característica que llamamos “Hot UI”, Dart DevTools mejorado con una nueva vista de diseño visual, habilitado la depuración simultánea de múltiples dispositivos en Visual Studio Code, mejoró el proceso de compilación de Android y mejor soporte para encontrar diferencias en widgets renderizados entre ejecuciones de prueba.

DartPad ama Flutter

Si aún no estás usando DartPad , ¡deberías probarlo! Es una excelente manera de probar las funciones de Dart sin instalar nada. Además, con el nuevo lanzamiento de DartPad, ¡ahora también obtienes Flutter!

El nuevo DartPad aprovecha el soporte web de Flutter para que cuando esté escribiendo el código de Flutter a la izquierda, esté ejecutando un programa Flutter (web) real y en vivo a la derecha. La principal diferencia es que con DartPad, puede comenzar a usar Flutter sin instalar nada.

Además del playground independiente DartPad, también hemos comenzado a agregar DartPad con soporte de Flutter en nuestros documentos y en nuestros codelabs (como conceptos básicos de diseño de Flutter y animaciones implícitas ), para que pueda aprender sobre Flutter desde la comodidad de su navegador. Para obtener más información sobre DartPad, consulte nuestra publicación de anuncios de DartPad .

Construye tus widgets en línea con Hot UI

Si instala las herramientas de Flutter localmente en su propia máquina (y esperamos que lo haga), encontrará una nueva función vista previa en el complemento IntelliJ / Android Studio para Flutter. Le permite ver e interactuar con sus widgets directamente en su IDE mientras los está construyendo.

Llamamos a esta función “Hot UI” y, al igual que Hot Reload, a medida que realiza los cambios en su código, actualiza la UI alojada directamente. También puede interactuar con la IU alojada (como cambiar un color, como se muestra aquí) y ese cambio va directamente a su código. Para habilitar la vista previa de Hot UI, puede leer las instrucciones en el wiki de Flutter .

Depurar problemas de diseño con el Explorador de diseño

Ya sea que escriba el código a mano o deje que Hot UI lo escriba por usted, todavía tiene código y, a veces, el código tiene problemas. Ayudarlo a localizar y solucionar sus problemas es exactamente por qué se inventó Dart DevTools. En esta nueva versión de DevTools, hemos agregado una función llamada “Explorador de diseño” para aumentar el Inspector con una representación visual de su diseño.

El Explorador de diseño no solo le ayuda a visualizar el diseño de los widgets en su aplicación en ejecución, sino que si desea experimentar cambiando las opciones de diseño, le permite hacerlo de manera interactiva. Esperamos que la vista previa de esta característica ayude a que sea más fácil de entender y solucionar sus problemas de diseño. Para habilitar esta función, consulte los documentos del Explorador de diseño .

Depuración de dispositivos múltiples

Cuando haya creado y depurado su interfaz de usuario de Flutter, lo más probable es que lo haya hecho en un solo dispositivo. ¿No sería bueno poder depurar tu aplicación en múltiples dispositivos (físicos o virtuales) al mismo tiempo? Con el soporte de Flutter para la depuración de múltiples sesiones en Visual Code, eso es exactamente lo que puede hacer.

Aquí tenemos la misma aplicación Flutter ejecutándose simultáneamente en tres sesiones de depuración separadas. Si hacemos un cambio en el código, Hot Reload se asegura de que se refleje en las tres aplicaciones. Si establecemos un punto de interrupción, la aplicación que active ese código se detendrá. Si desea dejar de depurar uno, puede hacerlo sin detenerlos a todos. Puede aprender cómo configurar esta función para la depuración de múltiples dispositivos en la wiki .

Mejoras de compilación de Android

Y finalmente, para continuar mejorando Android, abordamos algunos problemas de compilación en esta versión. En primer lugar, hicimos que la compilación de Android sea más robusta, específicamente en torno a la combinación de complementos utilizando las Bibliotecas de soporte y las que usan AndroidX. Lo hicimos moviendo los complementos del equipo de Flutter a AndroidX y recomendamos que las aplicaciones y complementos también se trasladen a AndroidX . Sin embargo, para complementos que aún no se han movido, si hay un problema de compilación, tenemos una ruta de código alternativa en nuestra compilación que utiliza archivos Android Archive y Jetifier. La compilación es más lenta, por lo que no es el mecanismo de compilación principal, pero descubrimos que resuelve aproximadamente el 95% de los problemas de compilación que hemos encontrado.

Otro problema que abordamos fue desaprobar Proguard en favor de R8 , el nuevo optimizador de código de Google. Antes de este lanzamiento, el autor de la aplicación tenía que configurar las reglas de ProGuard manualmente usando la guía proporcionada por el autor del complemento. En esta versión, los complementos pueden definir sus reglas en el código fuente y R8 consume estas reglas automáticamente, ahorrando al desarrollador de aplicaciones ese dolor de cabeza.

Además, en nuestro intento de continuar haciendo que Flutter sea lo más delgado posible, redujimos el tamaño de la aplicación Hello, World para Android en un 2.6% (reduciéndolo de 3.8MB a 3.7MB). ¡Cada poquito ayuda!

Prueba de imagen dorada

El término “imagen dorada” se refiere a un archivo de imagen maestra que se considera la representación real de un widget, estado, aplicación u otra representación visual determinada que ha elegido capturar. En Flutter 1.12, tenemos implementaciones de las clases GoldenFileComparator y LocalFileComparator que se comparan por píxeles en lugar de bits, eliminando falsos positivos . Estas nuevas implementaciones resaltan las diferencias visuales para dejar en claro cuándo hay diferencias entre su imagen dorada y las actualizaciones bajo prueba.

En este caso, está claro que las diferencias entre la imagen maestra y la imagen de prueba están todas en el borde, por lo que es mucho más fácil rastrear la discrepancia.

Comunidad

¡Además de todo el trabajo en Flutter y sus herramientas asociadas, la comunidad de Flutter continúa llevando a Flutter a nuevas y sorprendentes direcciones! Para ver qué están haciendo los desarrolladores de la comunidad, hemos reunido un pequeño video.

Somos muy afortunados de tener un gran conjunto de desarrolladores en la comunidad Flutter. ¡Nos enorgullece estar en el equipo de Flutter!

Paquetes favoritos de Flutter

Cuando lanzamos Flutter 1.0 en diciembre de 2018, había alrededor de 1000 paquetes en pub.dev que admitían Flutter y pensamos que era un gran número. Al escribir estas líneas, ese número ha aumentado en más de 6 veces. Con tantas opciones, a veces es difícil saber qué paquetes elegir. La puntuación general en pub.dev ayuda, así como la nueva función de editores verificados . Ahora, pub.dev está obteniendo un sistema de calificación , que debería ayudar aún más.

Aún así, nuestros usuarios han pedido una y otra vez un conjunto de paquetes y complementos “recomendados”. Con eso en mente, nos complace anunciar el programa Flutter Favorite .

Un paquete (o complemento) favorito de Flutter es uno que creemos que debe considerar primero al crear su aplicación. El “nosotros” en esa oración es el Comité del Ecosistema de Flutter, un grupo de individuos regionalmente diversos seleccionados del equipo de Flutter en Google y de la comunidad de Flutter en general para abordar problemas en todo el ecosistema de Flutter. Su primer trabajo fue establecer una barra de alta calidad e identificar un conjunto inicial de paquetes que cumplían con esa barra de calidad. Los autores de esos paquetes pueden usar el logotipo de Flutter Favorite en la documentación de su paquete. Además, pub.dev se ha actualizado para mostrar el logotipo en los resultados de búsqueda y en otros lugares.

Para obtener más información, consulte la página de favoritos de Flutter en flutter.dev . También puede ver la lista completa de los paquetes favoritos de Flutter en pub.dev . La conclusión es que si usted es un desarrollador de aplicaciones y ve ese logotipo, debe tener confianza en ese paquete. Si es autor de un paquete y ha recibido el logotipo de Flutter Favorite, gracias por su contribución al ecosistema de Flutter.

Herramientas comunitarias

Y hablando de contribuciones de las que estár orgulloso, la comunidad de Flutter en general ha estado construyendo una serie de excelentes herramientas; aquí hay solo una selección.

Flutter Device Preview
Widget Maker
Panache

Socio de herramientas destacado: Nevercode

Además de un gran conjunto de herramientas comunitarias, el ecosistema de Flutter tiene un gran conjunto de socios de herramientas. Un socio notable ha sido Nevercode, que tiene un conjunto completamente nuevo de características en su última versión, incluyendo un complemento para Visual Studio Code llamado Remote Mac.

La extensión Remote Mac le permite conectarse directamente a una Mac que han alojado en la nube con el fin de probar su código Flutter de iOS y macOS. Para obtener más detalles sobre la última versión de Nevercode, incluido el nuevo soporte para Flutter en la web y en macOS, nuevas funciones empresariales y más, consulte su publicación de blog más reciente .

Para ver el progreso realizado por nuestros otros socios de herramientas, definitivamente debe consultar lo que Supernova, Rive y Adobe están haciendo en sus últimos lanzamientos .

Conclusión

Este ha sido definitivamente un gran año para Flutter y la versión 1.12 es un gran lanzamiento. Esta publicación de blog ha sido un recorrido vertiginoso de las novedades de este lanzamiento; si desea verificar su versión de extracción favorita, ver dónde hemos pasado nuestro tiempo en esta versión por cuántas versiones de extracción en cada área o ver lo que rompimos, le recomendamos las Notas de la versión de Flutter 1.12 .

Esperamos que esté de acuerdo en que Flutter se está moviendo en la dirección correcta y está acelerando. Con todas estas nuevas funciones y nuevas herramientas, ¿dónde desea que su aplicación se ejecute hoy?

--

--