Google s'est toujours efforcé de faire de Flutter un outil universel pour créer des interfaces attrayantes qui fonctionnent sur n'importe quelle plate-forme aussi rapidement que les applications natives de ces plates-formes. Pour nous assurer que cela est possible, nous avons commencé par concentrer nos efforts sur les plates-formes mobiles - Android et iOS. En conséquence, plus de 80 000 applications Flutter rapides et belles ont été publiées sur Google Play.
Forts de nos succès, nous étendons les capacités de Flutter aux plates-formes de bureau depuis plus d'un an maintenant - macOS, Windows et Linux. Cela s'applique à la fois aux applications Web et aux projets de bureau traditionnels. En particulier, nous sommes occupés à une refonte sérieuse du moteur. La refactorisation vise à prendre en charge le travail de la souris et du clavier dans le même style que les systèmes de bureau, ainsi que la prise en charge des fenêtres qui peuvent être redimensionnées. Cela inclut de nouvelles capacités d'interface utilisateur qui fonctionnent bien pour les plates-formes de bureau. Ceci, par exemple, prend en charge la densité de matériau et NavigationRail . Cela inclut des expériences d'intégration profonde avec les systèmes d'exploitation de bureau grâce à Dart: FFIet utilisez les menus système et les boîtes de dialogue standard. Tout cela a été fait afin de s'assurer que Flutter est non seulement adapté à la création de projets mobiles, mais également prêt à être utilisé pour développer de véritables applications de bureau.
Nous considérons Flutter depuis longtemps comme un outil de création de projets ciblant une grande variété de plateformes. Chez Google, l'expression de cette vision est représentée par des projets comme Assistant . Maintenant, nous sommes ravis de voir d'autres entreprises déployer le support Flutter sur de nouvelles plates-formes. Aujourd'hui, Google et Canonical, qui gère Ubuntu , la distribution Linux la plus populaire au monde, sont heureux d'annoncer conjointement la sortie d'une version alpha de Flutter pour Linux.
Linux Flutter?
L'année dernière, lorsque Google a annoncé la possibilité de développer des applications de bureau à l'aide de Flutter, Canonical a vu une opportunité intéressante de créer des distributions Linux, y compris Ubuntu, une plate-forme cible attrayante pour les développeurs Flutter. Flutter progresse rapidement en termes de capacités multiplateformes. Canonical voulait être à l'avant-garde de ce mouvement. En aidant Flutter à prendre en charge les applications Linux, Canonical offre aux développeurs d'applications Flutter un mécanisme très simple pour publier leur travail sur Snap Store, un magasin d'applications Linux. En faisant de Linux la plate-forme qui prend officiellement en charge les applications Flutter, Canonical donne aux développeurs la possibilité de présenter leurs projets à des millions d'utilisateurs Linux et d'élargir le nombre de projets de qualité.disponible pour ces utilisateurs.
Les fonctionnalités suivantes de Flutter et l'écosystème de ce framework semblent particulièrement intéressantes pour Canonical:
- Une communauté de développeurs d'applications en pleine croissance.
- Prise en charge de plusieurs plates-formes.
- La capacité de développer des applications natives bien optimisées.
- Fonctionnalités communes aux frameworks d'interface utilisateur modernes, telles que la prise en charge des widgets de disposition déclaratifs et réactifs.
- Environnement de développement d'applications riche utilisant VS Code, Android Studio et IntelliJ.
Le message original de Google sur le développement de bureau dans Flutter traitait d'une version alpha prenant en charge les applications macOS et prévoyait de prendre en charge les applications pour Linux et Windows. Canonical a réalisé des investissements importants dans le développement de Flutter avec une équipe de développement dédiée qui, en collaboration avec les développeurs de Google, vise à garantir que les utilisateurs de la plupart des distributions Linux puissent profiter des applications Flutter avec toute la commodité. Canonical continuera à travailler avec Google pour améliorer encore la prise en charge de Linux et pour maintenir les capacités disponibles pour les applications Flutter sur Linux au même niveau que la prise en charge d'autres plates-formes.
Application Flokk - Preuve de Flutter prête pour le développement de bureau
Pour montrer que Flutter est prêt à développer des applications mobiles, nous avons travaillé avec les concepteurs et les développeurs de gskinner pour créer une application de bureau Flutter innovante et attrayante. Voici Flokk - une vraie application qui fonctionne avec des données réelles. En particulier - avec une liste de contacts de Google Contacts. Voici une démo vidéo de Flokk.
Cette application vous permet de gérer vos contacts. En particulier, recherchez des contacts, ajoutez de nouveaux contacts et modifiez les contacts existants. Flokk vous permet également d'associer à vos contacts les comptes Twitter et GitHub appropriés et de travailler avec les données de ces comptes.
Flokk Contacts est construit sur Flutter pour les ordinateurs de bureau
Le fait que l'application puisse afficher les notifications de Twitter et GitHub le transforme en quelque chose comme le réseau social personnel d'un utilisateur. Si le réseau social qui vous intéresse n'est pas encore intégré à Flokk, vous pouvez résoudre ce problème en envoyant simplement le PR correspondant au référentiel du projet, puisque Flokk est un projet entièrement open source .
En plus de proposer des idées innovantes d'interaction avec l'utilisateur, Flokk utilise les capacités de Flutter pour créer des interfaces attrayantes et conviviales. Un exemple de telles possibilités est illustré dans la figure suivante. Il est montré ici que lors du passage au thème sombre de l'application, un changement de couleur non simple, mais animé est effectué.
Les capacités de Flutter permettent à Flokk d'utiliser des animations fluides, un défilement haute performance et des thèmes faciles à utiliser.L'équipe de
création derrière Flokk est dirigée par Grant Skinnerqui est bien connu pour ses excellentes solutions de conception et ses idées UX innovantes. Voici ce que Grant a dit à propos de l'utilisation de Flutter sous Linux: «Le développement de l'application Flokk Contacts s'est avéré être une tâche très facile! Nous avons pu appliquer ici toute notre expérience de développement Flutter et créer une application ciblant Linux sans recourir à aucune astuce particulière. L'application s'est avérée très bonne. Nous avons vraiment aimé travailler avec l'équipe de Canonical. Ils étaient enthousiastes, passionnés par notre métier et voulaient améliorer Flutter en pensant non seulement à Linux, mais aussi à toutes les autres plates-formes. C'était un projet formidable et j'adore la perspective de développer des applications Flutter pour d'autres systèmes d'exploitation de bureau. "
Si vous souhaitez utiliser Flokk sur votre machine Linux, vous pouvez télécharger la dernière version de l'application depuis GitHub . Et si vous utilisez snapd, vous pouvez télécharger Flokk depuis le Snap Store .
Installer Flutter sur Linux
Maintenant que vous avez vu quelles applications de bureau de qualité vous pouvez créer avec Flutter, en particulier les applications Linux, vous voudrez peut-être essayer Flutter sur votre propre machine Linux. Afin de simplifier au maximum le processus de préparation des systèmes Linux pour le développement d'applications Flutter, nous sommes heureux d'annoncer que le SDK Flutter pour Linux est disponible sous forme de package instantané dans le Snap Store... Ce package contient tout ce dont vous avez besoin pour développer des applications Flutter en utilisant votre distribution Linux préférée. Cela étant dit, vous n'aurez pas besoin d'installer tout un tas de dépendances de développement. Tout ce que vous avez à faire est d'installer le package d'instantanés Flutter SDK et IDE de votre choix. Ensuite, vous avez tout ce dont vous avez besoin pour créer, construire et publier vos propres applications Linux.
Par exemple, si vous souhaitez commencer à développer des applications Flutter sur Linux et que vous aimez Visual Studio Code, voici un ensemble de commandes que vous devez exécuter dans le terminal:
$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
Si vous souhaitez travailler sous Linux pour créer non seulement des applications de bureau, mais également des applications mobiles, vous pouvez vous y préparer en installant le SDK Android ou Android Studio (le SDK Android est déjà inclus ici). Vous pouvez trouver des détails sur le composant logiciel enfichable du SDK Flutter ici .
Développement d'applications de bureau Linux
Après avoir installé le SDK Flutter sur votre ordinateur Linux, vous devez accéder à un canal
dev
ou master
mettre à jour Flutter pour créer des applications de bureau . Ensuite, vous devez activer la prise en charge des applications de bureau Linux:
$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop
Désormais, lorsque vous créez un nouveau projet Flutter, vous disposez d'un sous
linux
- répertoire qui vous permet d'exécuter l'application sous Linux:
$ flutter create counter
$ cd counter
$ flutter run -d linux
La célèbre application Flutter Counter fonctionne également très bien sous Linux.Vous
disposerez d'une toute nouvelle application Linux construite avec Flutter et fonctionnant sur la dernière version stable de GTK +. Si vous avez déjà un projet Flutter que vous souhaitez équiper avec le support Linux, après avoir activé le support Linux dans de tels projets, vous pouvez ajouter vous-même le répertoire à votre projet
linux
:
$ cd my_flutter_app
$ flutter create .
Cela créera un sous-répertoire avec un projet spécial nécessaire pour créer et exécuter votre application Flutter sur le bureau Linux.
Organisation de l'accès au code Linux natif de Flutter
En plus de prendre en charge les applications de bureau en écrivant du code Dart pour créer des widgets Flutter, votre application de bureau Linux peut accéder aux fonctionnalités Linux natives à l'aide des canaux de plate-forme ou de l'interface de fonction étrangère (FFI) pour C / C ++ ... Ou, si vous préférez , vous pouvez réutiliser le code existant qui se trouve sur pub.dev, sur le site du gestionnaire de paquets pour Dart et Flutter. La plupart des paquets que vous trouvez sur pub.dev sont écrits en pur Dart, la plupart de ces paquets fonctionnent bien dans les applications Linux. Certains packages, appelés plugins, contiennent du code natif qui cible une plate-forme particulière. Dans le cadre de cette version, nous avons publié trois plugins sur pub.dev qui utilisent la fonctionnalité Linux native:
- url_launcher : ouvre l'URL dans votre navigateur par défaut.
- shared_preferences : préférences utilisateur utilisées dans différentes sessions de l'application.
- path_provider : informations de chemin liées à des répertoires spécifiques, tels que le répertoire pour les téléchargements, les images, etc.
Vous pouvez utiliser chacun de ces plugins dans vos applications, mais ils peuvent également servir d'exemples de la façon dont vous pouvez travailler avec les fonctionnalités Linux natives du code Flutter. Par exemple, voici le code source de l'implémentation du plugin url_launcher.
Publication d'applications sur le Snap Store
Pour publier votre application Flutter sur le Snap Store, vous devez d'abord installer Snapcraft, l'outil utilisé pour créer et publier des applications sous forme de packages instantanés:
$ sudo snap install snapcraft --classic
Pour tirer parti des capacités de Snapcraft, vous devrez créer un fichier dans le répertoire de projet de l'application
snapcraft.yaml
. Par exemple, à quoi ressemble un tel fichier pour 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 # ,
Maintenant, dans le répertoire contenant le fichier,
snapcraft.yaml
vous pouvez exécuter Snapcraft pour créer un package de capture d'application:
$ snapcraft
Si tout fonctionne comme prévu, cette commande créera un fichier dans le répertoire de travail actuel. Cela s'appellera quelque chose comme ceci:
flokk-contacts_1.0.1_amd64.snap
Après avoir préparé votre compte pour publier des applications sur le Snap Store, vous pouvez publier le snap que vous venez de créer:
$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
Ici, nous téléchargeons l'application sur le Snap Store et essayons de la publier dans le flux Edge . Une fois l'application publiée sur ce canal, vous pouvez l'installer via le client de bureau Snap Store ou en utilisant la ligne de commande:
$ snap install --edge flokk-contacts
Les détails sur la façon de créer votre première application et publier sur Snap magasin peuvent être trouvés ici .
Exemples d'applications de bureau Flutter
L'application Flokk est un excellent exemple de projet réel pour les ordinateurs de bureau Linux. Si vous souhaitez jeter un coup d'œil plus simple à un exemple, consultez l'application Recherche de photos . Il a été créé spécifiquement pour démontrer les capacités de Flutter à développer des applications de bureau.
Application de recherche de photos
Il s'agit d'une simple application de recherche de photos en ligne qui utilise plusieurs plug-ins pour accéder aux fonctionnalités natives des plates-formes qu'elle prend en charge, y compris macOS et Linux.
Si vous avez besoin d'instructions étape par étape sur la façon de développer des applications de bureau Linux, jetez un œil à ce didacticiel de l'atelier de programmation. Il se concentre sur l'utilisation d'OAuth et GraphQL pour créer un client GitHub à l'aide de Flutter.
Client GitHub
Si vous souhaitez explorer un projet plus complexe qui utilise beaucoup plus les capacités de Flutter et contient des exemples de code intéressants, vous pouvez jeter un œil à l'application Flutter Gallery . Il a été refait l'année dernière. Il prend désormais en charge les plates-formes de bureau en plus des plates-formes mobiles. Si vous souhaitez voir cette application en action, vous pouvez la télécharger à partir du Snap Store .
L'application Flutter Gallery peut être téléchargée à partir du Snap Store.
Voici une autre application de bureau qui illustre les capacités de divertissement de Flutter. Il s'agit d'un jeu de batufo multijoueurcréé par Thorsten Lorenz. Ce beau jeu permet aux joueurs du monde entier de s'affronter en temps réel.
Le jeu Batufo fonctionnant sur différentes plates-formes prises en charge par Flutter
Thorsten a créé ce jeu avec la prise en charge de diverses plates-formes, notamment Linux, macOS, Android et iOS. Si vous souhaitez en savoir plus sur le développement de ce jeu et si vous souhaitez regarder le développement de ce projet, vous pouvez regarder ces vidéos et consulter le référentiel du projet. Sous Linux, ce jeu peut être installé à partir du Snap Store .
Résultat
Avec la sortie de la version alpha de Flutter pour Linux, et grâce à l'étroite collaboration entre Google et Canonical, les développeurs Linux peuvent désormais utiliser les capacités de Flutter pour créer des applications adaptées à leurs systèmes d'exploitation. Tout ce que vous avez à faire est d'installer le composant logiciel enfichable Flutter SDK, de créer et de tester l'application à l'aide de VS Code ou d'Android Studio, et de la publier sur le Snap Store. Pour des nouvelles sur le développement de bureau avec Flutter, cliquez ici . Et, ce qui est très, très important pour nous, essayez de laisser un commentaireà propos des nouvelles fonctionnalités de Flutter. Cela nous aidera à rendre le support Linux pour les applications Flutter aussi bon que possible. En fait, nous nous efforçons d'atteindre la même chose en travaillant avec d'autres plates-formes.
Flutter pour Linux de l'équipe de développement de Canonical est un pas en avant géant, un pas vers notre rêve de faire de Flutter le cadre de développement d'applications ultime pour toutes les plates-formes. Le fait que les applications Flutter puissent désormais être développées pour le bureau rend le moteur Flutter beaucoup plus accessible à une grande variété d'appareils. Bien que Google ne puisse pas prendre en charge directement ces appareils, l'entreprise prévoit de continuer à établir des partenariats avec d'autres entreprises et à développer l'écosystème Flutter.
Nous voulons voir Flutter sur tous les appareils qui ont besoin d'applications rapides et attrayantes.
Avez-vous essayé de créer des applications Flutter pour Linux?