Google lanzó Flutter Alpha: soporte de Windows

Guía de Lao Meng : Windows está aquí, ¿Mac, Linux e Internet todavía están lejos?

Este artículo está traducido de https://medium.com/flutter/announcing-flutter-windows-alpha-33982cd0f433

Nuestra misión es proporcionar a los desarrolladores un marco de código abierto de alta productividad para crear hermosas aplicaciones nativas en cualquier plataforma. Hasta ahora, hemos proporcionado versiones estables para Android e iOS. Solo Google Play Store ofrece 8 versiones estables y más de 100.000 aplicaciones. Continuaremos expandiendo nuestro enfoque para incluir otras plataformas como Web, macOS y Linux. Hoy, nos complace anunciar otro objetivo de Flutter, que es el soporte de Flutter para la versión Alpha de Windows.

Windows sigue siendo una opción popular para dispositivos de escritorio y portátiles, y Microsoft informa que hay más de mil millones de dispositivos activos que ejecutan Windows 10 . Nuestras propias estadísticas muestran que más de la mitad de todos los desarrolladores de Flutter usan Windows, por lo que es natural que Flutter sea el objetivo. El soporte de escritorio local abre muchas posibilidades interesantes para Flutter, incluidas herramientas de desarrollo mejoradas, reduciendo la carga para los nuevos usuarios y, por supuesto, las aplicaciones pueden acceder a cualquier dispositivo que el usuario pueda tener a través de una única base de código.

Agregar Windows a Flutter

Como se menciona en nuestra descripción general de la arquitectura, Flutter es un conjunto de herramientas de interfaz de usuario multiplataforma diseñado para permitir la reutilización de código entre sistemas operativos como iOS y Android, al mismo tiempo que permite que las aplicaciones interactúen directamente con los servicios básicos de la plataforma. El objetivo es permitir que los desarrolladores entreguen aplicaciones de alto rendimiento que se sientan naturales en diferentes plataformas y acepten sus diferencias mientras tienen la mayor cantidad de código posible. El núcleo de Flutter es el motor, que admite todas las aplicaciones de Flutter necesarias. Siempre que sea necesario dibujar un nuevo fotograma, el motor es responsable de rasterizar la escena compuesta. Proporciona una implementación de bajo nivel de la API principal de Flutter, que incluye gráficos, diseño de texto, E / S de archivos y redes, soporte de accesibilidad, arquitectura de complementos y tiempo de ejecución de Dart y cadena de herramientas de compilación.

Cada nueva plataforma que agregamos a Flutter extenderá el marco principal con nuevos servicios para permitirle brillar en esa plataforma. Comenzamos con Material Design y una interfaz de usuario táctil y centrada en dispositivos móviles en Android e iOS, que tiene como objetivo lograr la perfección de píxeles en ambas plataformas móviles. Agregar soporte para factores de forma de escritorio a través de la Web, Windows, macOS y Linux brinda un conjunto completamente nuevo de servicios, que incluye un fuerte soporte para teclado, mouse, rueda del mouse y controlador en el lado de entrada, así como también adaptarse e incluso adaptarse a estos aspectos El widget que mejor funciona. El tamaño de pantalla más grande que viene con las aplicaciones web y de escritorio.

Además, cada nueva plataforma no solo afectará el marco y el motor de Flutter, sino también muchos otros aspectos:

  • Actualización de la cadena de herramientas : agregue nuevos objetivos a las herramientas CLI e IDE (en este caso, Windows)
  • Shell: soporte para WM_*procesar la entrada y salida de Windows a través de ANGLE a través de mensajes , y usar Skia para renderizar en la superficie DirectX subyacente a velocidad nativa
  • Runner: cada proyecto obtendrá una aplicación Shell para el objetivo admitido. Para Windows, este es un programa Win32 / C ++ que puede cargar código Flutter y ejecutarlo en tiempo de ejecución. Si es necesario, puede agregar código nativo a la aplicación aquí.
  • Complementos: los complementos son una combinación de código Dart y código nativo para cada plataforma compatible con el complemento. Este código nativo debe agregarse para cada complemento compilado en la aplicación Flutter en Windows.

Esta versión Alpha proporciona una base sólida, que estabilizaremos en los próximos meses. Con soporte para Windows 7 y versiones posteriores, esperamos que esto pueda proporcionar algunos conocimientos básicos para desarrolladores aventureros.

Explore algunas aplicaciones de muestra

Para comprobar el soporte de Flutter para Windows, es posible que desee probar algunas de las aplicaciones de muestra que creamos, que funcionan bien en Windows con nuestro nuevo soporte. La primera es la aplicación Flokk, son los diseñadores y desarrolladores de gskinner.com juntos para crear . El objetivo es demostrar que Flutter está listo para el escritorio mediante la creación de una aplicación de escritorio Flutter innovadora y hermosa. Flokk es una aplicación que se puede utilizar con sus datos reales de contactos de Google y mostrar la actividad de los contactos en GitHub y Twitter.

Lanzamiento de imagen

Si desea utilizar la aplicación Flokk en una máquina con Windows, puede descargar la última versión en GitHub . Si desea saber cómo gskinner construyó esta aplicación, consulte su excelente publicación de blog: Flokk-Cómo usamos Flutter para construir una aplicación de escritorio .

Además, la aplicación Flutter Gallery (la aplicación de presentación para todo lo que usamos para Flutter) se ha reescrito recientemente por completo para agregar soporte para tamaños de escritorio. Esto nos permite comprobar si se puede ejecutar correctamente en la Web , así como en Windows, macOS y Linux.

Lanzamiento de imagen

Muchos estudios de la biblioteca muestran ideas para diferentes estilos de aplicaciones que se recomiendan al diseñar sus propias aplicaciones de Windows con Flutter. Cuando encuentre algo que le guste, el código se puede encontrar en GitHub .

Empezando con Flutter para Windows

Empiece a instalar Flutter SDK de acuerdo con las instrucciones de instalación de Windows . Para ubicar el escritorio de Windows, primero debe instalar las herramientas descritas en los documentos del escritorio . De forma predeterminada, Flutter asume que está creando software de producción y no está configurado para desarrollar aplicaciones de Windows. Sin embargo, se puede resolver fácilmente desde la línea de comando:

$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-windows-desktop

El primer comando configura Flutter para usar el canal "dev" de calidad experimental (en lugar del canal "estable" predeterminado). De esta manera, puede utilizar el soporte de la plataforma que todavía está en Alpha, como Windows. El segundo comando baja el último bit del canal. El tercer comando se puede utilizar para el desarrollo de aplicaciones de Windows en su PC.

Después de configurarlo, cada vez que use el soporte extendido de Android Studio o Visual Studio Code , o cree una nueva aplicación Flutter desde la línea de comando, creará una subcarpeta de Windows.

Lanzamiento de imagen

Si tiene curiosidad, ejecute la aplicación predeterminada en Windows de la siguiente manera:

Lanzamiento de imagen

Finalmente, una vez que se crea la aplicación, la compilación de la aplicación creará un archivo EXE nativo en modo de lanzamiento y las DLL de soporte necesarias. En ese momento, si desea intentar ejecutar una nueva aplicación de Windows en cualquier computadora con Windows 10, incluso si no tiene una computadora con Flutter instalado, puede seguir los pasos a continuación para comprimir los archivos necesarios y ejecutarlo.

Complemento de Windows

Incluso si acabamos de lanzar la versión Alpha, la comunidad de Flutter ya se está desarrollando para complementos de Windows. Aquí están algunas:

La ventaja de usar estos complementos es que la mayoría de ellos también son compatibles con otras plataformas de Flutter, lo que le permite orientar aplicaciones a Android, iOS, Web, etc., así como a Windows. Además, aunque alrededor de un tercio de los paquetes disponibles en pub.dev (el administrador de paquetes para Dart y Flutter) son complementos con código específico de la plataforma, la mayoría no lo son. Por ejemplo, muchos de los paquetes de software de mayor calidad y más utilizados forman parte del programa Flutter Favorite y la mayoría de ellos se ejecutan en Windows. Si desea ver una lista completa de los paquetes que se ejecutan en Windows, puede ejecutar esta consulta en pub.dev .

Interoperabilidad con Windows

Si desea crear su propio complemento para Windows, puede hacerlo. Después de ingresar al canal de desarrollador y habilitar Windows para su computadora, puede comenzar con el siguiente comando:

$ flutter create --template plugin --platforms Windows hello_plugin

En ese momento, podrá agregar código de Flutter a las libsubcarpetas en el proyecto del complemento y agregar código de Windows a las windowssubcarpetas. Utilizará los canales de plataforma para comunicarse entre las dos pilas, que en realidad son mensajes que se pasan entre el código Dart y C ++. Para la producción elaborada de este ejemplo, consulte la implementación de url_launcher .

Sin embargo, los canales de plataforma no son la única opción para la interoperabilidad con Windows. Si lo desea, puede utilizar Dart FFI (Interfaz de función externa) para cargar la biblioteca y llamar a las API de estilo C, como las API de Win32. A diferencia de url_launcher, que usa canales de plataforma, el complemento path_provider se implementa mediante FFI, como puede ver en el repositorio de GitHub . FFI no necesita alternar entre Dart y C ++, pero le permite escribir código para importar directamente la API requerida. Por ejemplo, el siguiente es el código utilizado para llamar a la API MessageBox:

typedef MessageBoxNative = Int32 Function(
  IntPtr hWnd, 
  Pointer<Utf16> lpText, 
  Pointer<Utf16> lpCaption,
  Int32 uType
);

typedef MessageBoxDart = int Function(
  int hWnd, 
  Pointer<Utf16> lpText, 
  Pointer<Utf16> lpCaption, 
  int uType
);

final user32 = DynamicLibrary.open('user32.dll');

final win32MessageBox =
  user32.lookupFunction<MessageBoxNative, MessageBoxDart>('MessageBoxW');

void showMessageBox(String message, String caption) =>
  win32MessageBox(
    0, // No owner window
    Utf16.toUtf16(message), // Message
    Utf16.toUtf16(caption), // Window title
    0 // OK button only
  );

...

// call just like any other Dart function
showMessageBox('Test Message', 'Window Caption');
view rawmbox.dart hosted with ❤ by GitHub

Este código no implica la sobrecarga de cambiar entre dos subprocesos, como los canales de la plataforma. FFI incluye soporte para muchos tipos diferentes de API, incluidas Win32, WinRT y COM. Sin embargo, antes de completar el paquete y ejecutar la API de Windows basada en C, verifique el complemento win32 , el complemento puede ser muy bueno para hacer esto. De hecho, el propio complemento path_provider se implementa mediante complementos win32. Para obtener detalles sobre cómo se desarrollan los complementos de win32 y cómo funcionan, consulte la publicación de blog Dart FFI's Fun for Windows .

Recursos de Windows Flutter

No importa dónde se encuentre en su viaje de Flutter para Windows, asegúrese de leer la documentación de escritorio en flutter.dev , que incluye los detalles más recientes. Además, deberá estar familiarizado con el laboratorio de código de Flutter para escribir aplicaciones de destino de escritorio de Windows, macOS y Windows , que incluyen código para escenarios del mundo real, como la autenticación mediante OAuth, el acceso a la API de GitHub y el uso de GraphQL. O, para ver otro buen ejemplo del código de escritorio de Flutter que se ejecuta en Windows, consulte el ejemplo de búsqueda de fotos .

Lanzamiento de imagen

Utiliza cuadros de diálogo de apertura de archivos estándar de Windows, widgets de vista de árbol, widgets de división e integra los resultados con las API REST del mundo real.

Para otros widgets útiles orientados al escritorio, recomendamos usar el complemento de la barra de menú , el widget NavigationRail y el widget DataTable . También puede estar interesado en el widget InteractiveViewer , que tiene soporte de escritorio completo y puede desplazar y hacer zoom en los sub-widgets con gestos del mouse.

Puede explorar otro conjunto útil de widgets es SyncFusion de esos , ya son bien conocidos en la comunidad de desarrollo de Windows. Proporcionan una amplia gama de widgets de calidad empresarial para crear gráficos, indicadores, cuadrículas de datos, etc.

Lanzamiento de imagen

Lanzamiento de imagen

Estos widgets tienen licencias comunitarias y empresariales, por lo que puede encontrar la mejor herramienta para su proyecto.

Flutter para Windows

Además de los paquetes de software y complementos de Windows (generalmente Flutter Desktop), los desarrolladores de Flutter han estado desarrollando excelentes aplicaciones para Windows, como la versión experimental de Invoice Ninja :

Lanzamiento de imagen

Invoice Ninja es una empresa de facturación que depende de Flutter para obtener ingresos. Actualmente, se dirigen a Android e iOS en producción y tienen demostraciones basadas en la web para que las pruebe, pero también esperan ofrecer una versión de escritorio.

"En el pasado, Ninja, hemos tenido problemas para admitir solo dispositivos web y móviles y solo podemos mantener tres bases de código separadas a la vez. Con Flutter y, recientemente, Flutter Desktop, hemos podido utilizar una única base de código para cada plataforma principal. Cree aplicaciones. No solo obtenemos una versión de escritorio gratuita de la aplicación fundamentalmente, sino que también tenemos el mejor rendimiento de todas las aplicaciones ".

--Hillel Coren, cofundador de Invoice Ninja

Si está interesado en implementar aplicaciones Flutter que generen ingresos en el mundo real que puedan ejecutarse en computadoras móviles y de escritorio, puede encontrar el código fuente en GitHub .

Aartos es otra empresa que fabrica productos excelentes, incluido un sistema de detección de drones en tiempo real con un cliente multiplataforma escrito por Flutter . Esta es una versión anterior del cliente de Windows que se ejecuta junto con el cliente móvil:

Dirección de video: https://youtu.be/mGvPCT7Vc2Y

Las dos versiones para iOS y Windows comparten exactamente la misma base de código.

Si eres un desarrollador experimentado de Flutter y te encuentras cambiando entre diferentes versiones de Flutter; por ejemplo, una versión para entregar aplicaciones móviles de producción y otra versión para probar Windows alpha, entonces quizás te guste Administrador de versiones de Flutter, que ahora tiene una GUI de Windows, puede descargar esta versión .

Dirección de video: https://youtu.be/_WA71wSt2ww

La herramienta es de código abierto, por lo que puede ver por sí mismo cómo Leo hace que se vea tan bien.

Que sigue

Ahora que hemos lanzado la versión Alpha, nuestra atención se ha centrado en la finalización del conjunto de funciones y el lanzamiento de productos estables. Como proyecto de código abierto, puede seguir el progreso de nuestra prueba beta en el sitio web de GitHub. Otro trabajo que debe realizarse incluye accesibilidad, globalización y localización, procesamiento mejorado de teclado y texto, compatibilidad con parámetros de línea de comandos, etc. .

Además de admitir la API clásica de Win32, también estamos experimentando con una versión basada en UWP del shell Flutter, que permite que Flutter acceda a una gama más amplia de dispositivos basados ​​en Windows, incluida Xbox. Como parte del experimento, esta semana lanzamos una versión de Flutter Gallery basada en UWP en la tienda de aplicaciones de Windows .

La siguiente captura de pantalla muestra la Galería Flutter basada en UWP que se ejecuta en Xbox:

Lanzamiento de imagen

Este es el simulador de Windows 10X de la misma aplicación que se ejecuta en un dispositivo de pantalla dual que se ejecuta en un programa de Windows :

Lanzamiento de imagen

Lanzamiento de imagen

Puede obtener más información sobre el progreso de Flutter para UWP en GitHub .

Resumen

En esta versión, presentamos las funciones de Flutter a Windows. Tiene un marco declarativo, componible y reactivo que puede mejorar la eficiencia del trabajo de los desarrolladores y tiene una implementación de especificación de material adaptativa, por lo que también puede hacer aplicaciones Mire y sienta como lo desea como un conjunto completo de herramientas de desarrollo y depuración para Flutter. Cuando termine, su aplicación se compilará en código nativo de 64 bits y podrá empaquetarla y llevarla a otras computadoras con Windows, como cualquier otra aplicación nativa. Finalmente, puede usar la misma base de código para crear aplicaciones para Android, iOS, Web, macOS y Linux.

Si desea comenzar a crear aplicaciones de Windows con Flutter, ¡esperamos recibir sus comentarios ! Si desea utilizar la experiencia de Windows para crear implementaciones de Windows de complementos populares , o crear algunas herramientas centradas en Windows para Flutter (tal vez una CLI que pueda flutter build windowscrear MSIX a partir de la salida de comandos ...), también es bienvenido !

Con el nuevo soporte de Flutter para Windows, ¿qué vas a construir?

Declaración de derechos de autor: este artículo es original y está autorizado bajo la licencia CC BY-SA 4.0 . Adjunte el enlace de la fuente y esta declaración para su reimpresión.

'

comunicarse con

comunicarse con

Blog de Laomeng Flutter (uso de control 330 + serie de introducción al combate real): http://laomengit.com

Bienvenido a unirse al grupo de intercambio Flutter (WeChat: laomengit) y seguir la cuenta pública [Lao Meng Flutter]:

Supongo que te gusta

Origin blog.csdn.net/mengks1987/article/details/108782968
Recomendado
Clasificación