Compila apps de alta calidad para Windows que también funcionen en dispositivos móviles y la Web.

Desde que lanzamos Flutter, nos concentramos en ofrecer una solución multiplataforma para apps atractivas y personalizadas que se compilan para el código de máquina y aprovechan al máximo el hardware de gráficos subyacente de tu dispositivo. La actualidad marca una expansión significativa de esta visión con la primera versión de producción de compatibilidad con Windows como un objetivo de app, lo que permite que los desarrolladores de Windows se beneficien de la misma productividad y potencia que aprovechan los desarrolladores de dispositivos móviles.

Imagen de una laptop con dos pajaritos celestes, que representan a Dash, la mascota de Flutter, y Dart, sobrevolando el teclado. El texto de la imagen dice “Flutter + Windows”.

Nuestro objetivo con Flutter es brindarte las herramientas que necesitas para crear una gran experiencia, independientemente del sistema operativo para el que compiles. Por eso, queremos ofrecerte el mismo framework central y las mismas herramientas en todos los lugares en los que quieras pintar píxeles. Flutter te permite crear hermosas experiencias en las que tu marca y diseño se destacan. Flutter es rápido y se compila directamente en el código de máquina; gracias a la compatibilidad con la funcionalidad hot reload, obtienes la productividad de un entorno interactivo que te permite realizar cambios mientras tu app se ejecuta y ver los resultados de inmediato. Y como Flutter es de código abierto, miles de colaboradores se suman al framework central y lo amplían con un ecosistema de paquetes.

Casi medio millón de apps usan Flutter…

Hasta ahora, hemos observado un impulso que supera nuestras expectativas, con casi medio millón de apps ya lanzadas que usan Flutter, incluidas grandes apps de empresas, como Betterment, BMW y ByteDance, y apps de treinta equipos de Google. En 2021, Flutter se convirtió en el kit de herramientas de interfaz de usuario multiplataforma más popular, según las mediciones de analistas como Statista y SlashData:

Extractos de estudios de Statista (“Flutter es el framework multiplataforma para dispositivos móviles más popular que utilizan desarrolladores globales… El 42% de los desarrolladores de software usaron Flutter”), SlashData (“Los frameworks multiplataforma más populares para el desarrollo incluyen Flutter de Google (44%)”), JetBrains (“La popularidad de Flutter continúa creciendo. Este año superó a React Native para convertirse en el más popular…”) y StackOverflow (“Flutter es el 2.º framework favorito”).

Nuestros propios datos lo respaldan: un constante 92% de los desarrolladores de Flutter expresa una satisfacción positiva con nuestras herramientas en las cuatro encuestas trimestrales de 2021. (Y con respecto al otro 8%, leemos sus comentarios y queremos que también estén contentos).

La compatibilidad con Windows se solicitó con frecuencia.

Hoy, nos complace anunciar la disponibilidad total de la compatibilidad para apps de Windows con Flutter en versiones estables.

Windows y Flutter

Hace un par de años, presentamos una visión ambiciosa con el fin de que Flutter se expandiera de apps para dispositivos móviles en iOS y Android a otras plataformas, incluidas la Web y computadoras de escritorio.

El centro de Flutter se transmite a través de plataformas: desde el motor de gráficos portátil, acelerado por hardware de Skia hasta el sistema de renderización de Flutter; los primitivos centrales, como la animación, los temas, la entrada de texto y la internacionalización; y los cientos de widgets que ofrece Flutter.

Pero las apps de escritorio no son solo apps para dispositivos móviles que se ejecutan en una pantalla más grande. Están diseñadas para diferentes dispositivos de entrada, como teclado y mouse. Tienen ventanas que pueden cambiar de tamaño y que se suelen ejecutar en un monitor de pantalla ancha. Existen diferentes convenciones para cuestiones críticas, como la accesibilidad, los editores de los métodos de entrada y el estilo visual. Y se integran con diferentes API en el sistema operativo subyacente: las apps de escritorio son compatibles con todo, desde selectores de sistemas de archivos hasta hardware de dispositivos y almacenes de datos, como el registro de Windows.

Por lo tanto, si bien trajimos Flutter a Windows, también lo adaptamos para Windows.

Del mismo modo que con nuestra compatibilidad para Android e iOS, la implementación de Flutter para Windows combina un framework de Dart y un motor de C++. Windows y Flutter se comunican a través de una capa incorporada que aloja el motor de Flutter y se ocupa de traducir y distribuir los mensajes de Windows. Flutter se coordina con Windows a fin de pintar tu interfaz de usuario en la pantalla, controlar eventos, como el cambio de tamaño de ventanas y los cambios de DPI, y funciona con las modalidades actuales de Windows para la internacionalización, como los editores de los métodos de entrada.

Un diagrama arquitectónico que muestra la arquitectura de Flutter: en la parte superior está el framework de Flutter, compilado en Dart, que comprende compilaciones básicas, como Material, el sistema de widgets, los objetos de renderización, la animación, los gestos y los primitivos de pintura. Debajo se observa el motor de Flutter, escrito en C++, así como las bibliotecas de renderización de texto y Skia; por último, el incorporador de Windows que interopera con el sistema operativo subyacente y pasa mensajes de Win32 al motor.
En Windows, Flutter usa exactamente el mismo código Dart, pero aprovecha las API nativas de Windows.

Tu app puede usar todas las partes del framework de Flutter y, en Windows, también puede comunicarse con las API de Windows Runtime, Win32 y COM, ya sea directamente a través de la capa de interoperabilidad C de Dart o mediante un complemento de plataforma escrito en C++. También adaptamos una serie de complementos frecuentes para incluir compatibilidad con Windows, incluidos camera, file_picker y shared_preferences. Más importante aún, la comunidad ya agregó compatibilidad con Windows a una amplia variedad de otros paquetes, que cubren todo, desde la integración de la barra de tareas de Windows hasta el acceso al puerto en serie.

Una lista de algunos paquetes de Windows, donde se incluyen la compatibilidad con USB, mapas, la Web, puertos en serie, selección de archivos, administración de ventanas, TensorFlow, administración de credenciales, batería, WMI, impresora, captura de pantalla y conectividad de red.
Ya existen cientos de paquetes que se adaptaron, de modo que sean compatibles con apps de Flutter compiladas para Windows.

Para una interfaz de usuario de Windows totalmente personalizada, también puedes usar paquetes como fluent_ui y flutter_acrylic a fin de crear una app que exprese el sistema de Microsoft Fluent Design a la perfección. Y con la herramienta msix, puedes incluir tu app en un instalador que se puede cargar en Microsoft Store en Windows.

Juntos, se promueve la creación de apps que lucen muy bien en Windows, se ejecutan con rapidez en Windows e incluso se transfieren a otros dispositivos de escritorio o móviles, así como a la Web. Estos son algunos de los primeros ejemplos que vimos hasta ahora:

Algunos de los primeros ejemplos de la comunidad de las apps de Windows compiladas con Flutter, lo que incluye Harmonoid Rows.

Microsoft y Flutter

Le preguntamos a los miembros del equipo de Windows si estarían dispuestos a compartir algunas palabras sobre la compatibilidad de Flutter. Esto es lo que nos contó Kevin Gallo, vicepresidente corporativo de la plataforma para desarrolladores de Windows en Microsoft:

“Nos encanta ver que Flutter agrega compatibilidad para crear apps de Windows. Windows es una plataforma abierta y les damos la bienvenida a todos los desarrolladores. Nos emociona ver a los desarrolladores de Flutter traer sus experiencias a Windows y también publicar en Microsoft Store. La compatibilidad de Flutter con Windows es un gran paso para la comunidad, y estamos ansiosos por ver lo que traerá a Windows”.

De hecho, varios equipos de Microsoft colaboraron con el anuncio de hoy. En particular, nos gustaría expresar nuestro agradecimiento al equipo de diseño de Fluent por su contribución de iconografía para las apps de Flutter en Windows. Su paquete fluentui_system_icons recibió el estado de Favorito de Flutter como reconocimiento a su calidad.

También nos impresionaron las inversiones que Microsoft realizó en torno a la accesibilidad para Windows, y estamos agradecidos por la ayuda del equipo a fin de garantizar que Flutter sea compatible con los lectores de pantalla desde el primer día. Es un error descartar la accesibilidad como un requisito especializado. Como se ilustra en este diagrama del kit de herramientas de diseño inclusivo de Microsoft, todos tenemos motivos para preocuparnos por brindar experiencias que se adapten a diferentes necesidades permanentes, temporales o situacionales.

Diagrama que muestra cómo los asistentes de accesibilidad pueden ser útiles para un amplio público, en tres categorías: discapacidades permanentes, como la ceguera o la sordera; afecciones temporales, como una lesión en el brazo o cataratas; o necesidades situacionales, como un nuevo padre o madre que sostiene a un bebé con un brazo o un conductor que no puede mirar una pantalla.

En el siguiente video, se muestra cómo Flutter se integra con Windows Narrator. A los efectos de este video, desenfocamos a propósito la pantalla a fin de darte una idea del valor que tiene esta función para los usuarios que la necesitan.

Un ecosistema de herramientas para el desarrollo de Windows

Nuestros socios de herramientas también incluirán compatibilidad con Windows. Destacamos algunos:

  • FlutterFlow, la herramienta de diseño de apps de código de nivel inferior de Flutter, anuncia hoy la compatibilidad con Windows, junto con funciones para ayudar a los desarrolladores de Flutter puedan compilar apps que se adapten al uso de computadoras de escritorio.
  • Realm es un almacén de datos locales superrápido. La última versión, que se lanza hoy, ahora es compatible con la compilación de apps de Windows con Flutter, con acceso rápido a la base de datos subyacente mediante la interfaz de funciones foráneas (FFI) de Dart, lo que se suma a su compatibilidad actual con plataformas móviles, como iOS y Android.
  • Nevercode actualizó su herramienta Codemagic CI/CD para brindar compatibilidad con Windows, lo que te permite probar y compilar tus apps de Windows en la nube y automatizar la implementación de estas en Microsoft Store.
  • Syncfusion actualizó su suite de widgets para aprovechar Windows al máximo. Si te suscribes a su kit de herramientas, encontrarás componentes de visualización de datos, como diagramas de árbol y gráficos, un widget de cuadrícula de datos enriquecidos, calendarios e incluso compatibilidad con la creación de PDF y hojas de cálculo de Excel.
  • Por último, Rive anunció hoy una próxima versión para Windows de su popular suite de herramientas gráficas, que les permite a los diseñadores y los desarrolladores crear animaciones vectoriales interactivas que pueden responder al código en tiempo real mediante una máquina de estado. La próxima edición de Windows de su app ofrece un rendimiento increíblemente rápido y un menor consumo de memoria, y estará disponible próximamente en Microsoft Store para su descarga.
Captura de pantalla de Rive, una herramienta de diseño de movimiento que está escrita en Flutter y produce resultados que se pueden incorporar a cualquier app de Flutter.
Rive, próximamente en Microsoft Store en Windows.

Es muy emocionante para nosotros observar un ecosistema maduro creado en torno a Flutter, y te recomendamos que consultes a cada uno de estos socios a medida que comienzas a compilar apps de Windows con Flutter.

Llega la compatibilidad con Windows en Flutter 2.10

La compatibilidad estable y con calidad de producción para compilar apps de Windows está disponible como parte de Flutter 2.10, que se lanza hoy. Flutter 2.10 también incluye muchas otras características, mejoras de rendimiento y correcciones de errores, que se tratan con más detalle en otra entrada de blog.

En los próximos meses, te enviaremos más novedades sobre cómo completamos la compatibilidad estable con macOS y Linux y logramos que el conjunto completo de plataformas de escritorio, web y móviles esté disponible para tus apps de producción de Flutter.

Mientras tanto, gracias por tu apoyo a Flutter. Nos entusiasma descubrir lo que compilas para Windows.

Imagen de la mascota de Dart, Dash. Está sentada delante de una laptop con el logotipo de Flutter. No podemos verlo, pero está mirando a una app de Windows compilada con Flutter.