More
Construire et utiliser une extension Flutter DevTools avec Back4app
18 min
introduction flutter devtools est une suite puissante pour le débogage, l'inspection et le profilage des applications flutter avec le framework d'extension dart & flutter devtools, les développeurs peuvent créer des extensions personnalisées pour améliorer leurs flux de travail de débogage et de développement ces extensions peuvent être construites en tant qu'applications web flutter et intégrées de manière transparente dans la suite devtools dans ce tutoriel, nous allons explorer comment créer une extension flutter devtools, l'intégrer avec une application flutter qui utilise back4app pour les services backend, et déboguer l'application en utilisant l'extension personnalisée cela vous aidera à construire des outils de développement sur mesure qui peuvent rationaliser votre processus de développement et fournir des informations plus approfondies sur le comportement de votre application prérequis pour compléter ce tutoriel, vous aurez besoin de un compte back4app inscrivez vous pour un compte gratuit sur back4app com https //www back4app com un environnement de développement flutter configuré sur votre machine locale suivez le guide d'installation de flutter https //flutter dev/docs/get started/install si vous ne l'avez pas encore configuré connaissances de base en dart, widgets flutter et utilisation de flutter devtools étape 1 – configuration de votre backend back4app créer un projet back4app connectez vous à votre compte back4app https //www back4app com/ et créez un nouveau projet créer des classes parse pour ce tutoriel, créez une classe parse nommée themesettings pour stocker les données de configuration du thème pour votre application flutter themename (string) le nom du thème primarycolor (string) la couleur principale du thème accentcolor (string) la couleur d'accentuation du thème remplir la classe avec des données d'exemple ajoutez plusieurs enregistrements à la themesettings classe pour simuler les configurations de thème que votre application flutter utilisera obtenez vos identifiants back4app accédez aux paramètres de votre projet pour récupérer votre id d'application et votre clé client, dont vous aurez besoin pour connecter votre application flutter à back4app étape 2 – création de l'extension flutter devtools créer un nouveau projet flutter ouvrez votre terminal ou votre invite de commande et exécutez flutter create theme builder extension configurer le répertoire de l'extension accédez à votre répertoire racine de projet et créez un nouveau répertoire pour votre extension devtools mkdir devtools extension dans ce répertoire, créez un config yaml fichier pour stocker les métadonnées requises par devtools package name theme builder extension version 1 0 0 issue tracker https //github com/yourusername/theme builder extension/issues material icon assets/icon png ajouter des dépendances ouvrez pubspec yaml et ajoutez les dépendances suivantes dependencies flutter sdk flutter devtools extensions latest version devtools app shared latest version exécutez flutter pub get pour installer ces dépendances création de l'extension devtools dans lib/main dart , remplacez le contenu par défaut par le code suivant pour envelopper votre application web flutter dans un devtoolsextension widget import 'package\ flutter/material dart'; import 'package\ devtools extensions/devtools extensions dart'; import 'package\ devtools app shared/devtools app shared dart'; void main() { runapp(devtoolsextension(child themebuilderapp())); } class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body center( child elevatedbutton( onpressed () { // your extension logic here }, child text('generate theme'), ), ), ); } } cela enveloppe votre application dans le devtoolsextension widget, qui gère le thème et l'intégration avec la suite devtools ajout d'intégrations devtools modifiez votre application pour intégrer des fonctionnalités spécifiques à devtools, telles que l'utilisation du devtoolsbutton au lieu d'un elevatedbutton class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body center( child devtoolsbutton( onpressed () { // your extension logic here }, child text('generate theme'), ), ), ); } } ce changement garantit que l'interface utilisateur de votre extension s'intègre parfaitement avec le reste de la suite devtools étape 3 – intégration avec back4app initialiser parse dans votre extension puisque cette extension interagira avec back4app, initialisez parse dans votre extension import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(devtoolsextension(child themebuilderapp())); } récupérer et utiliser les données de thème utilisez les données de back4app dans votre extension pour générer et appliquer des thèmes class themebuilderapp extends statelesswidget { @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('theme builder')), body futurebuilder\<list\<parseobject>>( future fetchthemes(), builder (context, snapshot) { if (!snapshot hasdata) { return circularprogressindicator(); } final themes = snapshot data!; return listview\ builder( itemcount themes length, itembuilder (context, index) { final theme = themes\[index]; return listtile( title text(theme get\<string>('themename') ?? 'no name'), subtitle text('primary color ${theme get\<string>('primarycolor')}'), ontap () { // apply theme logic }, ); }, ); }, ), ); } future\<list\<parseobject>> fetchthemes() async { final query = querybuilder\<parseobject>(parseobject('themesettings')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load themes'); } } } ce code récupère les paramètres de thème depuis back4app et les affiche dans une liste la sélection d'un thème pourrait déclencher une logique supplémentaire pour l'appliquer étape 4 – tester votre extension dans un environnement simulé exécutez l'extension dans un environnement simulé pour tester votre extension sans la compiler à chaque fois, utilisez l'environnement devtools simulé flutter run d chrome dart define=use simulated environment=true simuler l'application connectée démarrez une autre application flutter à laquelle votre extension se connectera copiez et collez l'uri du service vm de l'application connectée et l'uri du service dtd dans l'environnement simulé étape 5 – construire et publier l'extension construire l'extension une fois que vous êtes satisfait de votre extension, construisez la pour la production flutter pub get flutter build web output=devtools extension/build valider l'extension utilisez la commande de validation devtools pour vous assurer que votre extension est correctement configurée dart run devtools extensions validate publier l'extension publiez votre extension sur pub dev afin que d'autres développeurs puissent l'utiliser flutter pub publish conclusion dans ce tutoriel, vous avez appris à créer une extension flutter devtools, à l'intégrer avec back4app pour des services backend, et à la tester dans un environnement simulé en étendant devtools, vous pouvez créer des outils personnalisés qui améliorent votre productivité et offrent de nouvelles perspectives sur le comportement de votre application une fois votre extension prête, la publier sur pub dev permet à d'autres développeurs de bénéficier de votre travail pour plus d'informations sur l'utilisation de flutter avec back4app, consultez la documentation de back4app https //www back4app com/docs et la documentation de flutter devtools https //flutter dev/docs/development/tools/devtools/overview bon codage !