Flutter Alpha para Linux y desarrollo de escritorio

La traducci贸n que publicamos hoy fue preparada por Chris Sells de Google y Ken VanDing de Canonical.



Google siempre se ha esforzado por hacer de Flutter una herramienta universal para crear interfaces atractivas que funcionen en cualquier plataforma tan r谩pido como las aplicaciones nativas de esas plataformas. Para asegurarnos de que esto sea posible, comenzamos centrando nuestros esfuerzos en las plataformas m贸viles: Android e iOS. Como resultado, se publicaron en Google Play m谩s de 80.000 aplicaciones de Flutter r谩pidas y hermosas.







Sobre la base de nuestros 茅xitos, hemos estado ocupados ampliando las capacidades de Flutter a las plataformas de escritorio durante m谩s de un a帽o: macOS, Windows y Linux. Esto se aplica tanto a las aplicaciones web como a los proyectos de escritorio tradicionales. En particular, estamos ocupados con una seria refactorizaci贸n del motor. La refactorizaci贸n est谩 destinada a admitir el funcionamiento del mouse y el teclado en el mismo estilo que es com煤n en los sistemas de escritorio, as铆 como a la compatibilidad con ventanas que se pueden cambiar de tama帽o. Esto incluye nuevas capacidades de interfaz de usuario que funcionan bien para plataformas de escritorio. Esto, por ejemplo, soporte para Material Density y NavigationRail . Esto incluye experimentos de integraci贸n profunda con sistemas operativos de escritorio gracias a Dart: FFIy trabajar con men煤s del sistema y cuadros de di谩logo est谩ndar. Todo esto se hizo para asegurarnos de que Flutter no solo sea adecuado para crear proyectos m贸viles, sino que tambi茅n est茅 listo para ser utilizado para desarrollar aplicaciones de escritorio reales.



Durante mucho tiempo hemos visto a Flutter como una herramienta para crear proyectos dirigidos a una amplia variedad de plataformas. En Google, la expresi贸n de esta visi贸n est谩 representada por proyectos como Assistant . Ahora, estamos emocionados de ver que otras empresas est谩n implementando el soporte de Flutter en nuevas plataformas. Hoy, Google y Canonical, que mantiene Ubuntu , la distribuci贸n de Linux m谩s popular del mundo, se complace en anunciar conjuntamente el lanzamiento de una versi贸n alfa de Flutter para Linux.



Linux Flutter?



El a帽o pasado, cuando Google anunci贸 la posibilidad de desarrollar aplicaciones de escritorio usando Flutter, Canonical vio una oportunidad atractiva para hacer distribuciones de Linux, incluido Ubuntu, una plataforma de destino atractiva para los desarrolladores de Flutter. Flutter avanza r谩pidamente en t茅rminos de capacidades multiplataforma. Canonical quer铆a estar a la vanguardia de este movimiento. Al ayudar a Flutter a admitir aplicaciones de Linux, Canonical ofrece a los desarrolladores de aplicaciones de Flutter un mecanismo muy sencillo para publicar su trabajo en Snap Store, una tienda de aplicaciones de Linux. Al hacer de Linux la plataforma que admite oficialmente las aplicaciones de Flutter, Canonical ofrece a los desarrolladores la oportunidad de presentar sus proyectos a millones de usuarios de Linux y ampliar la cantidad de proyectos de calidad.disponible para dichos usuarios.



Las siguientes caracter铆sticas de Flutter y el ecosistema de este marco parecen ser especialmente atractivas para Canonical:



  • Una comunidad de desarrolladores de aplicaciones de r谩pido crecimiento.
  • Soporte para m煤ltiples plataformas.
  • La capacidad de desarrollar aplicaciones nativas bien optimizadas.
  • Caracter铆sticas espec铆ficas de los marcos de interfaz de usuario modernos, como la compatibilidad con widgets de dise帽o declarativos y reactivos.
  • Entorno de desarrollo de aplicaciones enriquecido con VS Code, Android Studio e IntelliJ.


La publicaci贸n original de Google sobre el desarrollo de escritorio en Flutter trataba de una versi贸n alfa compatible con aplicaciones macOS y planes para admitir aplicaciones para Linux y Windows. Canonical ha realizado importantes inversiones en el desarrollo de Flutter con un equipo de desarrollo dedicado que, en colaboraci贸n con los desarrolladores de Google, tiene como objetivo garantizar que los usuarios de la mayor铆a de las distribuciones de Linux puedan disfrutar de las aplicaciones de Flutter con toda la comodidad. Canonical continuar谩 trabajando con Google para mejorar a煤n m谩s el soporte de Linux y para mantener las capacidades disponibles para las aplicaciones Flutter en Linux al mismo nivel que el soporte para otras plataformas.



Aplicaci贸n Flokk: prueba de que Flutter est谩 listo para el desarrollo de escritorio



Para demostrar que Flutter est谩 listo para el desarrollo m贸vil, trabajamos con los dise帽adores y desarrolladores de gskinner para crear una aplicaci贸n de escritorio Flutter innovadora y atractiva. Esta es Flokk, una aplicaci贸n real que trabaja con datos reales. En particular, con una lista de contactos de Contactos de Google. Aqu铆 hay una demostraci贸n en video de Flokk.



Esta aplicaci贸n le permite administrar sus contactos. En particular, busque contactos, agregue nuevos contactos y edite los existentes. Flokk tambi茅n le permite asociar con sus contactos las cuentas apropiadas de Twitter y GitHub y trabajar con los datos de estas cuentas.





Flokk Contacts est谩 construido en Flutter para computadoras de escritorio



El hecho de que la aplicaci贸n pueda mostrar notificaciones de Twitter y GitHub la convierte en algo as铆 como la red social personal de un usuario. Si la red social que te interesa a煤n no est谩 integrada con Flokk, puedes solucionar este problema simplemente enviando el PR correspondiente al repositorio del proyecto, ya que Flokk es un proyecto de c贸digo totalmente abierto .



Adem谩s de proporcionar ideas innovadoras para la interacci贸n del usuario, Flokk utiliza las capacidades de Flutter para crear interfaces atractivas y f谩ciles de usar. En la siguiente figura se muestra un ejemplo de tales posibilidades. Aqu铆 se muestra que al cambiar al tema oscuro de la aplicaci贸n, no se realiza un cambio de color simple, sino animado.



imagen


Las capacidades de Flutter permiten a Flokk ofrecer animaciones fluidas, desplazamiento de alto rendimiento y temas



f谩ciles de usar. El equipo creativo detr谩s de Flokk est谩 dirigido por Grant Skinnerquien es bien conocido por sus excelentes soluciones de dise帽o e ideas innovadoras de UX. Esto es lo que dijo Grant acerca de trabajar con Flutter en Linux: 鈥溌esarrollar la aplicaci贸n Flokk Contacts result贸 ser una tarea muy f谩cil! Pudimos aplicar toda nuestra experiencia de desarrollo de Flutter aqu铆 y crear una aplicaci贸n dirigida a Linux sin recurrir a trucos especiales. La aplicaci贸n result贸 ser muy buena. Realmente disfrutamos trabajando con el equipo de Canonical. Estaban entusiasmados, apasionados por nuestro negocio y quer铆an mejorar Flutter pensando no solo en Linux, sino tambi茅n en todas las dem谩s plataformas. Fue un gran proyecto y realmente me encanta la perspectiva de desarrollar aplicaciones Flutter para otros sistemas operativos de escritorio ".



Si desea utilizar Flokk en su equipo Linux, puede descargar la 煤ltima versi贸n de la aplicaci贸n desde GitHub . Y si usa snapd, puede descargar Flokk desde Snap Store .



Instalaci贸n de Flutter en Linux



Ahora que ha visto qu茅 aplicaciones de escritorio de calidad puede crear con Flutter, en particular aplicaciones de Linux, es posible que desee probar Flutter en su propia caja de Linux. Con el fin de simplificar el proceso de preparaci贸n de sistemas Linux para desarrollar aplicaciones de Flutter tanto como sea posible, nos complace anunciar que el SDK de Flutter para Linux est谩 disponible como un paquete instant谩neo en Snap Store.... Este paquete contiene todo lo que necesita para desarrollar aplicaciones Flutter utilizando su distribuci贸n de Linux favorita. Dicho esto, no necesitar谩 instalar un mont贸n de dependencias de desarrollo. Todo lo que necesita hacer es instalar el SDK de Flutter y el paquete instant谩neo IDE de su elecci贸n. Luego, tiene todo lo que necesita para crear, construir y publicar sus propias aplicaciones Linux.



Por ejemplo, si desea comenzar a desarrollar aplicaciones Flutter en Linux y le gusta Visual Studio Code, aqu铆 hay un conjunto de comandos que debe ejecutar en la terminal:



$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter


Si desea trabajar en Linux para crear no solo aplicaciones de escritorio, sino tambi茅n aplicaciones m贸viles, puede prepararse para esto instalando el SDK de Android o Android Studio (el SDK de Android ya est谩 incluido aqu铆). Puede encontrar detalles sobre el complemento Flutter SDK aqu铆 .



Desarrollo de aplicaciones de escritorio Linux



Despu茅s de haber instalado el SDK de Flutter en su computadora Linux, debe ir al canal devo masteractualizar Flutter para crear aplicaciones de escritorio . Luego, debe habilitar el soporte para aplicaciones de escritorio Linux:



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


Ahora, cuando cree un nuevo proyecto de Flutter, tendr谩 un subdirectorio linuxque le permitir谩 ejecutar la aplicaci贸n en Linux:



$ flutter create counter
$ cd counter
$ flutter run -d linux






La famosa aplicaci贸n Flutter Counter tambi茅n funciona muy bien en Linux



. Tendr谩 una nueva aplicaci贸n Linux construida con Flutter y ejecut谩ndose en la 煤ltima versi贸n estable de GTK +. Si ya tiene un proyecto de Flutter que desea equipar con soporte para Linux, habiendo hecho esto despu茅s de habilitar el soporte para Linux en dichos proyectos, puede agregar el directorio a su proyectolinuxusted mismo:



$ cd my_flutter_app
$ flutter create .


Esto crear谩 un subdirectorio con un proyecto especial que se necesita para construir y ejecutar su aplicaci贸n Flutter en el escritorio de Linux.



Organizar el acceso al c贸digo nativo de Linux desde Flutter



Adem谩s de admitir aplicaciones de escritorio escribiendo c贸digo Dart para crear widgets de Flutter, su aplicaci贸n de escritorio Linux puede acceder a las capacidades nativas de Linux utilizando canales de plataforma o una interfaz de funci贸n externa (FFI) para C / C ++ ... O, si lo prefiere , puede reutilizar el c贸digo existente que se puede encontrar en pub.dev, en el sitio del administrador de paquetes para Dart y Flutter. La mayor铆a de los paquetes que encuentra en pub.dev est谩n escritos en Dart puro, la mayor铆a de estos paquetes funcionan bien en aplicaciones Linux. Algunos paquetes, llamados complementos, contienen c贸digo nativo que apunta a una plataforma en particular. Como parte de esta versi贸n, publicamos tres complementos en pub.dev que usan la funcionalidad nativa de Linux:



  • url_launcher : abre la URL en su navegador predeterminado.
  • shared_preferences : preferencias del usuario utilizadas en varias sesiones de la aplicaci贸n.
  • path_provider : informaci贸n de la ruta relacionada con directorios espec铆ficos, como el directorio de descargas, im谩genes y similares.


Puede usar cada uno de estos complementos en sus aplicaciones, pero tambi茅n pueden actuar como ejemplos de c贸mo puede trabajar con caracter铆sticas nativas de Linux desde el c贸digo de Flutter. Por ejemplo, aqu铆 est谩 el c贸digo fuente para la implementaci贸n del complemento url_launcher.



Publicar aplicaciones en la tienda Snap



Para publicar su aplicaci贸n Flutter en Snap Store, primero debe instalar Snapcraft, la herramienta que se utiliza para crear y publicar aplicaciones como paquetes snap:



$ sudo snap install snapcraft --classic


Para aprovechar las capacidades de Snapcraft, deber谩 crear un archivo en el directorio del proyecto de la aplicaci贸n snapcraft.yaml. Por ejemplo, c贸mo se ve un archivo de este tipo para Flokk:



name: flokk-contacts
version: 1.0.1
summary: Flokk Contacts
description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
confinement: strict
base: core18
grade: stable
apps:
  flokk-contacts:
    command: flokk-contacts
    extensions: [flutter-master]
    plugs:
    - network
parts:
  flokk-contacts:
    source: .
    plugin: flutter
    flutter-target: lib/main.dart # ,      


Ahora, en el directorio con el archivo, snapcraft.yamlpuede ejecutar Snapcraft para crear un paquete de aplicaci贸n:



$ snapcraft


Si todo funciona como se esperaba, este comando crear谩 un archivo en el directorio de trabajo actual. Se llamar谩 algo como esto:



flokk-contacts_1.0.1_amd64.snap


Despu茅s de preparar su cuenta para publicar aplicaciones en Snap Store, puede publicar el complemento que acaba de crear:



$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge


Aqu铆 estamos cargando la aplicaci贸n en Snap Store e intentando publicarla en el feed de borde . Una vez que la aplicaci贸n se publica en este canal, puede instalarla a trav茅s del cliente de escritorio de Snap Store o usando la l铆nea de comando:



$ snap install --edge flokk-contacts


Los detalles sobre c贸mo crear su primera aplicaci贸n y publicarla en Snap Store se pueden encontrar aqu铆 .



Ejemplos de aplicaciones de escritorio de Flutter



La aplicaci贸n Flokk es un gran ejemplo de un proyecto del mundo real para escritorios Linux. Para un ejemplo m谩s simple, eche un vistazo a la aplicaci贸n Photo Search . Fue creado espec铆ficamente para demostrar las capacidades de Flutter para desarrollar aplicaciones de escritorio.





Aplicaci贸n de b煤squeda de fotograf铆as



Se trata de una sencilla aplicaci贸n de b煤squeda de fotograf铆as en l铆nea que utiliza varios complementos para acceder a la funcionalidad nativa de las plataformas que admite, incluidas macOS y Linux.



Si necesita instrucciones paso a paso sobre c贸mo desarrollar aplicaciones de escritorio Linux, eche un vistazo a este tutorial de codelab. Se enfoca en usar OAuth y GraphQL para construir un cliente GitHub usando Flutter.





Cliente GitHub



Si desea explorar un proyecto m谩s complejo que utiliza muchas m谩s de las capacidades de Flutter y tiene algunos ejemplos de c贸digo interesantes, puede echar un vistazo a la aplicaci贸n Flutter Gallery . Fue rehecho el a帽o pasado. Ahora es compatible con plataformas de escritorio adem谩s de plataformas m贸viles. Si desea ver esta aplicaci贸n en acci贸n, puede descargarla de Snap Store .





La aplicaci贸n Flutter Gallery se puede descargar desde Snap Store



Aqu铆 hay otra aplicaci贸n de escritorio que ilustra las capacidades de entretenimiento de Flutter. Este es un juego de batufo multijugadorcreado por Thorsten Lorenz. Este hermoso juego permite a jugadores de todo el mundo competir entre s铆 en tiempo real.





El juego Batufo que se ejecuta en diferentes plataformas compatibles con Flutter



Thorsten cre贸 este juego con soporte para varias plataformas, incluidas Linux, macOS, Android e iOS. Si est谩 interesado en conocer c贸mo se desarroll贸 este juego y si desea ver el desarrollo de este proyecto, puede ver estos videos y buscar en el repositorio del proyecto. En Linux, este juego se puede instalar desde Snap Store .



Salir



Con el lanzamiento de la versi贸n alfa de Flutter para Linux, y gracias a la estrecha colaboraci贸n entre Google y Canonical, los desarrolladores de Linux ahora pueden aprovechar las capacidades de Flutter para crear aplicaciones adaptadas a su sistema operativo. Todo lo que necesita hacer es instalar el complemento Flutter SDK, compilar y probar la aplicaci贸n usando VS Code o Android Studio, y publicarla en Snap Store. Para obtener noticias sobre el desarrollo de escritorio con Flutter, consulte aqu铆 . Y, lo que es muy, muy importante para nosotros, intenta dejar un comentario.sobre las nuevas funciones de Flutter. Esto nos ayudar谩 a hacer que el soporte de Linux para las aplicaciones Flutter sea lo mejor posible. De hecho, nos esforzamos por lograr lo mismo trabajando con otras plataformas.



Flutter para Linux del equipo de desarrollo de Canonical es un gran paso adelante, un paso hacia nuestro sue帽o de hacer de Flutter el marco de desarrollo de aplicaciones definitivo para todas las plataformas. El hecho de que las aplicaciones de Flutter ahora se puedan desarrollar para el escritorio hace que el motor de Flutter sea mucho m谩s accesible para una amplia variedad de dispositivos. Si bien Google no puede admitir directamente estos dispositivos, la empresa planea continuar creando asociaciones con otras empresas y desarrollando el ecosistema Flutter.



Queremos ver Flutter en todos los dispositivos que necesitan aplicaciones r谩pidas y atractivas.



驴Ha intentado crear aplicaciones Flutter para Linux?






All Articles