Développement rapide de l'interface utilisateur avec Flutter pour Windows

Il y a beaucoup à dire sur les outils qui permettent de cibler facilement plusieurs plates-formes à partir d'une seule base de code, ce qui réduit la charge des développeurs et augmente la portée de vos applications. Xamarin de Microsoft en est un excellent exemple, étendant .NET à iOS et Android. Mais qu'en est-il de l'autre direction, où un outil de développement mobile établi ajoute Windows en tant que nouvelle plate-forme?

Cela n'arrive pas souvent, mais étonnamment, l'environnement de développement mobile Flutter de Google ajoute une nouvelle cible de construction dans Windows, parallèlement à sa prise en charge existante pour Android, iOS, macOS, Linux et le Web. Avec les dernières versions de développement, vous pouvez désormais créer des applications Flutter pour Win32, en utilisant les mêmes contrôles et outils de conception pour fournir du code de bureau en même temps que vous créez des applications mobiles.

Le ciblage de Windows est logique pour Google, car le billet de blog de publication le note que plus de la moitié des développeurs Flutter utilisent les outils de développement Windows. Les outils d'interface utilisateur de Flutter sont du code natif et comme il fonctionne avec les appels d'API Windows standard, vous pouvez l'utiliser avec du code nouveau ou existant.

Utilisation de Flutter sous Windows

Flutter est construit autour de la dernière version du langage Dart de Google. C'est un langage de type C avec une structure rappelant à la fois JavaScript et C #. Si vous y arrivez depuis un arrière-plan .NET, il n'y a pas trop de nouveautés à apprendre; les constructions de langage seront familières. Une faible barrière à l'entrée est une bonne chose, car vous devez être prêt à commencer à coder très rapidement.

Le support Windows de Flutter est expérimental, vous devez donc apporter des modifications à une installation standard à partir de la ligne de commande. Commencez par passer au canal de développement, puis mettez à niveau pour vous assurer que vous exécutez la dernière version du canal de développement. Enfin, utilisez les outils Flutter de ligne de commande pour activer la prise en charge du bureau Windows. Une fois que cela est fait, redémarrez tous les éditeurs ouverts. Vous pouvez vérifier que la prise en charge de Windows est activée en recherchant les appareils connectés; Windows apparaîtra ici. C'est une bonne idée d'exécuter l'utilitaire Flutter doctor pour vérifier que toutes les dépendances appropriées sont installées, car cela installera toutes les fonctionnalités manquantes si nécessaire.

Contrairement aux versions pour appareils mobiles de Flutter, la version de bureau nécessite Visual Studio 2019, avec ses outils de développement de bureau C ++. Vous pouvez toujours travailler dans Visual Studio Code si vous avez des applications Flutter mobiles existantes que vous souhaitez apporter au bureau, mais que le bureau Flutter doit utiliser le compilateur Windows C ++ pour créer des applications Windows avec toutes les bibliothèques de prise en charge requises.

Ecrire des applications Flutter sous Windows

Même si vous avez besoin des outils C ++ de Visual Studio, vous modifiez et générez toujours une grande partie de vos applications de bureau Flutter dans Visual Studio Code avec le plug-in Flutter, en passant à Visual Studio lorsque vous devez modifier C ++ ou utiliser les SDK Windows. La création d'un nouveau projet générera automatiquement l'échafaudage nécessaire pour créer une application de bureau Windows aux côtés des versions Android et iOS par défaut. Vous pouvez ensuite modifier le code de votre application dans le fichier commun main.dart, qui sera compilé dans les versions appropriées au moment de la construction.

Le code Dart commun reste dans le dossier lib. Le dossier Windows est l'endroit où vous écrivez votre code spécifique à la plate-forme, en le gardant séparé de toutes les fonctions multiplateformes. Cette approche vous permet de tirer parti de vos investissements existants dans le code Windows et les API en utilisant les canaux de plate-forme de Flutter pour assurer l'interopérabilité entre le code Windows C ++ et Flutter's Dart.

Les outils Visual Studio Code Flutter et Dart nécessitent toujours l'installation d'Android Studio, car ils sont nécessaires pour créer des versions Android de vos applications. Si vous travaillez sur une application multiplateforme, il est préférable d'écrire n'importe quel code Android dans Android Studio, en enregistrant le code Kotlin dans l'arborescence de code Android de votre application Flutter. Partager une structure de code de cette manière a du sens; alors que vous avez la possibilité d'utiliser Visual Studio Code pour modifier le code Windows C ++, l'IDE Visual Studio complet a beaucoup plus de possibilités et une meilleure prise en charge des bibliothèques, ce qui en fait un environnement de développement préférable pour le code qui doit utiliser le SDK et les bibliothèques Win32.

Utilisation des SDK, API et bibliothèques Windows avec Flutter

Flutter est conçu pour fonctionner sur des piles de développement et propose deux méthodes différentes pour travailler avec des API Windows natives. Le premier, les canaux de plate-forme, permet de transmettre des messages d'une interface utilisateur Flutter à une API native en utilisant un plug-in de plate-forme comme wrapper pour l'API. Bien que ce soit la méthode approuvée pour travailler au-delà des limites de la pile, elle est basée sur les messages et asynchrone, elle n'est donc pas adaptée à toutes les API Windows.

Vous pouvez également utiliser son interface de fonction étrangère pour créer un lien direct vers une bibliothèque native et utiliser ses appels d'API. Cette approche est probablement le meilleur moyen de fournir des fonctionnalités Windows à une application Flutter, car vous pouvez créer un lien direct vers du code existant ou nouveau, avec des liens statiques ou dynamiques. Le code natif doit avoir des symboles C disponibles pour que votre code Flutter puisse y être lié; tout code C ++ devra les exporter au format C via l' externoption.

La plupart des bibliothèques du SDK Windows sont déjà compilées, vous devez donc utiliser la liaison dynamique pour les intégrer dans vos applications Flutter. Utilisez la DynamicLibrary.openfonction Flutter pour les ajouter à votre application, puis traitez-les comme vous le feriez avec un plug-in Flutter. En fait, l'équipe Flutter travaille déjà sur un plug-in Win32 qui donnera accès à la plupart des API Windows, prêt à être utilisé dans votre code.

Un outil de développement d'interface utilisateur rapide et collaboratif

L'un des avantages des outils de développement de Flutter est son option de rechargement à chaud. Vous pouvez avoir une copie de votre code en cours d'exécution et attachée à un débogueur, apporter une modification au code et appuyer sur la touche de rechargement à chaud dans le terminal Visual Studio Code pour recharger l'application sans changer son état. Il existe une option de redémarrage à chaud si vous préférez commencer avec un nouvel état.

Pouvoir modifier rapidement l'interface utilisateur ou la logique métier sans redémarrer une application est une fonctionnalité vraiment utile pour Flutter. La programmation devient plus interactive, surtout si vous travaillez aux côtés d'un concepteur ou d'un utilisateur final. Vous pouvez demander ce qui fonctionne, apporter rapidement des suggestions de modifications et obtenir une réponse instantanée de vos partenaires de développement. Une fois que vous êtes prêt à publier et déployer votre code, vous exécutez une compilation pour générer un fichier exe avec toutes les DLL de prise en charge appropriées, prêt à être empaqueté avec votre choix d'installation.

Vous n'êtes pas limité non plus à Win32, car un shell UWP Flutter est actuellement en cours de développement (et a déjà été utilisé pour les applications Store). Le résultat est une couche d'interface utilisateur multiplateforme flexible et puissante qui fonctionnera avec du code natif sur une gamme de plates-formes, qui s'adapte aux écrans plus grands des PC, fonctionne avec les SDK Windows modernes et hérités, et devrait être prête à fonctionner avec Project Réunion au fur et à mesure de son déroulement.