Publicado por el equipo de Flutter
Hoy es una fecha muy importante para el marco de trabajo de Flutter, ya que expandimos nuestro enfoque más allá de los entornos móviles para incorporar un grupo más amplio de dispositivos y formatos. En I/O, presentaremos nuestra primera vista previa técnica de Flutter para web, anunciaremos que Flutter sustenta la plataforma de pantallas inteligentes de Google (incluido Google Home Hub) y mostraremos cómo estamos dando los primeros pasos para admitir apps de escritorio con Chrome OS.

De los dispositivos móviles a diversas plataformas

Durante mucho tiempo, la misión del equipo de Flutter se centró en crear un marco de trabajo óptimo que permitiera desarrollar apps para dispositivos móviles con iOS y Android. Creemos que el desarrollo en dispositivos móviles no alcanza sus posibilidades máximas, ya que los desarrolladores se ven obligados a elegir entre crear la misma app dos veces para dos plataformas, o hacer concesiones y usar marcos de trabajo que funcionen con más de una plataforma. Flutter da en el clavo, ya que permite que una sola base de código ofrezca experiencias atractivas, rápidas y personalizadas, y que los desarrolladores logren una productividad alta en ambas plataformas. Nos entusiasma ver cómo nuestro esfuerzo inicial se transformó en uno de los proyectos de código abierto más populares.
Cuando comenzamos a desarrollar la versión 1.0 el año pasado, probamos a ampliar el alcance de Flutter a otras plataformas. Esto sucedió gracias a los equipos internos de Google que usan Flutter cada vez más, y gracias al potencial latente de la plataforma de Dart para ofrecer experiencias portátiles. Específicamente, un pequeño equipo que ya estaba creando un marco de trabajo de Dart para uso interno empezó un proyecto de exploración (con el nombre de código "Hummingbird") con el fin de evaluar las ventajas técnicas de que el motor de Flutter fuera portátil a fin de admitir la Web basada en estándares.
Los resultados fueron sorprendentes, en gran parte debido al rápido avance en navegadores web (como Chrome, Firefox y Safari), que han entregado sin interrupciones gráficos, animaciones y texto con aceleración de hardware, y han ejecutado JavaScript rápidamente. Apenas unos meses después de empezar el proyecto, logramos que funcionara una versión básica del marco de trabajo principal de Flutter. Muy poco después, ejecutábamos demostraciones en navegadores móviles y de escritorio. Junto con la enorme trayectoria de Dart compilando para la Web, demostramos que también podíamos trasladar el marco de trabajo de Flutter y las apps a la Web.
Al mismo tiempo, el proyecto principal de Flutter logró avances para habilitar apps de escritorio con paradigmas de entrada, como teclado y mouse, modificación del tamaño de las ventanas y otras herramientas para el desarrollo de apps en Chrome OS. El trabajo de exploración que hicimos para insertar Flutter en apps de escritorio que se ejecutaban en Windows, Mac y Linux también se fue incorporando en el motor principal de Flutter.

Un marco de trabajo de IU portátil para todas las pantallas

Entornos móviles, web, de escritorio e insertados de Flutter
Tomémonos un momento para reconocer el potencial comercial que tiene un marco de trabajo de IU portátil de alto rendimiento que puede ofrecer experiencias atractivas y personalizadas en una amplia variedad de formatos usando un solo código base.
A las startups, la capacidad de llegar a los usuarios en entornos móviles, web o de escritorio usando la misma app les permite alcanzar a todo el público desde el primer día, en lugar de verse limitados debido a cuestiones técnicas. En el caso específico de organizaciones de mayor tamaño, la capacidad de ofrecer la misma experiencia a todos los usuarios con un solo código base reduce los costos de complejidad y desarrollo, y permite centrarse en mejorar la calidad de esa experiencia.
Gracias a la compatibilidad con entornos móviles, de escritorio y apps web, nuestra nueva misión es crear el mejor marco de trabajo para desarrollar experiencias atractivas en cualquier pantalla.

Flutter para la Web

Esta semana, presentaremos la primera vista previa técnica de Flutter para la Web. Aunque seguimos desarrollando esta tecnología, estamos listos para que algunos usuarios pioneros la prueben y nos envíen sus comentarios. Nuestro objetivo inicial de Flutter en la Web no es reemplazar las experiencias de documentos para las que está optimizado HTML. En cambio, concebimos Flutter como una excelente manera de crear contenido muy interactivo y enriquecido con gráficos en el que se puedan experimentar claramente las ventajas de un marco de trabajo de IU sofisticado.
A fin de presentar Flutter para la Web, trabajamos con The New York Times en la creación de una demostración. Además de ser famoso por la cobertura de noticias en todo el mundo, The New York Times se destaca por su crucigrama y otros juegos de ingenio. Dado que los jugadores apasionados buscan jugar desde cualquier dispositivo que estén usando, el equipo de desarrollo pensó que Flutter podría ser la solución que estaban buscando. Enterarse de que podían llegar a la Web con el mismo código fue la ventaja principal. Esta semana, en Google I/O, podrás echar un vistazo a su juego de ingenio KENKEN recién actualizado, que usa el mismo código para ejecutarse en Android, iOS, la Web, Mac y Chrome OS.
juego ken-gratulations
Eric von Coelln, director ejecutivo de Puzzles en The New York Times, dijo lo siguiente sobre la experiencia de su equipo con Flutter:
"El crucigrama de The New York Times tiene más de 400,000 suscripciones individuales y constituye un ritual cotidiano para quienes lo resuelven. Además del crucigrama, aumentamos las opciones de juegos de ingenio digitales, que llegan a más de dos millones de jugadores cada mes.
Ya habíamos comenzado a explorar Flutter como una posible solución al desafío de desarrollar rápidamente experiencias atractivas y de gran calidad en dispositivos móviles. Ahora que permite publicar en la Web, Flutter se convirtió en una opción todavía mejor para realizar implementaciones rápidas en todas nuestras plataformas de usuarios. Actualizar nuestra antigua versión basada en Flash del juego KenKen y convertirla en una experiencia multiplataforma es algo que nos entusiasma presentar a los jugadores este año".
Hay mucho más para decir sobre Flutter para la Web que lo que mencionamos aquí, así que echa un vistazo al artículo exclusivo sobre Flutter para la Web en el blog de Flutter.
Dado que estamos comenzando, nos encantaría recibir tus comentarios sobre qué uso quisieras darle a Flutter para la Web. Tenemos previsto que el código evolucione rápidamente y concentrarnos en especial en el rendimiento, además de incorporar el código base en el resto del proyecto de Flutter.

Flutter para dispositivos móviles

También actualizaremos el marco de trabajo principal de Flutter esta semana poniendo a disposición de inmediato Flutter 1.5 en nuestro canal estable. Flutter 1.5 incluye cientos de cambios basados en los comentarios de los desarrolladores, que incluyen actualizaciones en función de los requisitos del SD de la App Store en iOS, actualizaciones de los widgets de iOS y Material, compatibilidad del motor con nuevos tipos de dispositivos, y la incorporación de nuevas funciones de lenguaje de IU como código en Dart 2.3.
A medida que el marco de trabajo evolucione, invertiremos para crear el ecosistema que lo rodea. El modelo de la arquitectura de Flutter siempre priorizó un marco de trabajo principal pequeño complementado con una comunidad de paquetes enriquecida. En los últimos meses, Google aportó paquetes de calidad de producción para visualizaciones web, Google Maps y Firebase ML Vision. Además, esta semana, incorporaremos la compatibilidad inicial con los pagos en la app. Sumado a los más de 2000 paquetes de código abierto disponibles para Flutter, las opciones abarcan casi todas las situaciones posibles.
Un proyecto que nos entusiasma particularmente y que anunciaremos esta semana en I/O es ML Kit Custom Image Classifier. Fue creado con Flutter y Firebase, y ofrece un flujo de trabajo basado en apps que es fácil de usar en la creación de modelos de clasificación de imágenes personalizadas. Desde la misma app, puedes recopilar datos de preparación con la cámara del teléfono, invitar a otras personas a colaborar en tus conjuntos de datos, activar la preparación del modelo y usar modelos preparados.
Flutter ML Kit: Crea conjuntos de datos, colabora para recopilar datos, prepara modelos y haz deducciones
Flutter no deja de aumentar sus niveles de popularidad y uso. Un grupo cada vez mayor de clientes exigentes (como eBay, Sonos, Square, Capital One, Alibaba y Tencent) están desarrollando apps con Flutter. ¡Y se están divirtiendo! Esto es lo que dijo sobre Flutter Larry McKenzie, desarrollador sénior en eBay:
"¡Flutter es rápido! En un solo día, terminamos funciones que antes implementábamos en varios. Muchos problemas que nos quitaban tiempo ya dejaron de ocurrir. Ahora, nuestro equipo puede concentrarse en crear mejores experiencias del usuario y ofrecer niveles de funcionalidad. ¡Flutter nos permite superar las expectativas!".
En líneas más generales, recientemente LinkedIn llevó a cabo un estudio en el que quedó demostrado que Flutter es la competencia de mayor crecimiento entre ingenieros de software, de acuerdo con los datos de los miembros del sitio que reclamaron Flutter en su perfil en los últimos doce meses. Además, en una encuesta de StackOverflow para desarrolladores de 2019, Flutter se mencionó como uno de los marcos de trabajo que más aman los desarrolladores.

Flutter para escritorios

Flutter también se está usando en escritorios. Llevamos algunos meses trabajando en el escritorio como un proyecto experimental. Ahora, llegó el momento de incorporar eso al motor de Flutter, directamente en el repositorio principal. Aunque todavía los objetivos no están listos para producción, publicamos instrucciones iniciales para desarrollar apps de Flutter que funcionen en Mac, Windows y Linux.
Otra plataforma de crecimiento acelerado en Flutter es Chrome OS, gracias a la venta de millones de Chromebooks al año, especialmente en el ámbito de la educación. Chrome OS es un entorno ideal para Flutter en términos de ejecución de apps y desarrollo, ya que es posible ejecutar apps de Android y Linux. Con Chrome OS, es posible usar Visual Studio Code o Android Studio para desarrollar una app de Flutter que se pueda probar y ejecutar de manera local en el mismo dispositivo sin la necesidad de un emulador. También es posible publicar apps de Flutter para Chrome OS en Play Store, donde millones de personas pueden beneficiarse con tu creación.

Flutter para dispositivos insertados

El último ejemplo de portabilidad de Flutter es su inserción en otros dispositivos. Hace poco, publicamos ejemplos que demuestran el funcionamiento directo de Flutter en dispositivos de menor escala (como Raspberry Pi). Además, ofrecemos una API insertada para Flutter que permite usarlo en ámbitos como el hogar, la industria automotriz, etc.
Quizá una de las plataformas insertadas más populares en la que ya está funcionando Flutter sea el sistema operativo de las pantallas inteligentes que está detrás de Google Home Hub.

En Google, algunas de las funciones incorporadas en la plataforma de pantallas inteligentes ahora cuentan con tecnología de Flutter. Asimismo, en los próximos meses, al equipo asistente le entusiasma seguir expandiendo la cartera de funciones incorporadas en Flutter para las pantallas inteligentes. El objetivo de este año es que Flutter esté detrás de la IU general del sistema.

Recursos adicionales

Muchas veces, los desarrolladores nos preguntan por dónde empezar con Flutter. Hoy nos alegra anunciar un nuevo curso de capacitación integral para Flutter diseñado por el equipo de The App Brewery, que son los creadores del curso para iOS con mejor calificación en Udemy. Este nuevo curso tiene más de treinta horas de contenido sobre Flutter, con videos, demostraciones y prácticas de laboratorio. Además, gracias al patrocinio de Google, hoy habrá un descuento por tiempo limitado: en lugar de pagar USD 199, solo pagarás USD 10 por el acceso al curso.
Muchos desarrolladores crean apps inspiradoras con Flutter. En preparación para Google I/O, organizamos un concurso llamado "Flutter Create" para alentar a los desarrolladores a descubrir qué podían crear con Flutter y un código de Dart de 5 KB o menos. Recibimos más de 750 participaciones individuales desde todo el mundo, con algunos ejemplos fabulosos que nos sorprendieron incluso a nosotros.

Hoy anunciamos a los ganadores, que se encuentran en flutter.dev/create. ¡Felicitaciones al ganador principal, Zebiao Hu, que recibirá una iMac Pro totalmente equipada cuyo valor supera los USD 10,000!
Flutter ya no es solo un marco de trabajo para dispositivos móviles, sino que se transformó en un marco de trabajo multiplataforma que permite llegar a los usuarios en el lugar donde se encuentren. Estamos ansiosos por ver qué crearás con Flutter en entornos web, de escritorio, de dispositivos móviles y mucho más.