More
Comment implémenter des raccourcis clavier dans Flutter avec CallbackShortcuts et Back4App
22 min
introduction les raccourcis clavier améliorent l'expérience utilisateur en fournissant un accès rapide aux actions courantes au sein d'une application dans flutter, le callbackshortcuts widget permet aux développeurs de mapper des combinaisons de touches directement à des fonctions de rappel sans avoir besoin de définir des actions ou des intentions cela simplifie le processus d'ajout de raccourcis clavier à votre application dans ce tutoriel, vous apprendrez à intégrer callbackshortcuts dans une application flutter et à utiliser back4app—un backend en tant que service alimenté par parse server—pour stocker et récupérer des données à la fin de ce tutoriel, vous aurez une application flutter qui répond aux raccourcis clavier pour effectuer des actions comme récupérer des données de back4app prérequis pour compléter ce tutoriel, vous aurez besoin de flutter sdk installé sur votre machine suivez le guide d'installation officiel de flutter https //flutter dev/docs/get started/install pour votre système d'exploitation connaissances de base en flutter et dart si vous êtes nouveau dans flutter, consultez la documentation flutter https //flutter dev/docs pour vous familiariser avec les bases un ide ou éditeur de texte tel que visual studio code ou android studio un compte back4app inscrivez vous pour un compte gratuit sur back4app https //www back4app com/ parse server sdk pour flutter ajouté à votre projet apprenez à le configurer en suivant le guide sdk flutter de back4app https //www back4app com/docs/flutter/parse flutter sdk un clavier physique ou un émulateur pour tester les raccourcis clavier étape 1 – configuration du projet flutter 1 1 créer un nouveau projet flutter ouvrez votre terminal et exécutez flutter create callback shortcuts app naviguez vers le répertoire du projet cd callback shortcuts app 1 2 ajouter des dépendances ouvrez pubspec yaml et ajoutez les dépendances suivantes dependencies flutter sdk flutter parse server sdk flutter ^4 0 1 exécutez flutter pub get pour installer les paquets étape 2 – configuration de back4app 2 1 créer une nouvelle application back4app connectez vous à votre tableau de bord back4app https //dashboard back4app com/ cliquez sur "créer une nouvelle application" entrez un nom pour votre application, par exemple, "callbackshortcutsapp" , et cliquez sur "créer" 2 2 configurer le modèle de données dans votre tableau de bord d'application, accédez à la "base de données" section cliquez sur "créer une classe" dans la modalité sélectionnez "personnalisé" entrez "article" comme nom de classe cliquez sur "créer une classe" 2 3 ajouter des colonnes à la classe dans la "article" classe, cliquez sur "+" pour ajouter une nouvelle colonne ajoutez les colonnes suivantes nom type chaîne description type chaîne ajoutez quelques données d'exemple à la "article" classe par exemple 2 4 obtenir les identifiants de l'application naviguez vers paramètres de l'application > sécurité et clés notez votre id d'application et clé client étape 3 – initialisation de parse dans votre application flutter ouvrez lib/main dart et modifiez le comme suit import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk dart'; class homepage extends statefulwidget { @override homepagestate createstate() => homepagestate(); } class item { final string name; final string description; item(this name, this description); } class homepagestate extends state\<homepage> { list\<item> items = \[]; future\<void> fetchitems() async { final querybuilder\<parseobject> query = querybuilder\<parseobject>(parseobject('item')); final parseresponse apiresponse = await query query(); if (apiresponse success && apiresponse results != null) { setstate(() { items = apiresponse results! map((data) { final name = data get\<string>('name') ?? ''; final description = data get\<string>('description') ?? ''; return item(name, description); }) tolist(); }); } else { print('error fetching data ${apiresponse error? message}'); } } @override void initstate() { super initstate(); fetchitems(); } @override widget build(buildcontext context) { return scaffold( appbar appbar( title text('callback shortcuts app'), ), body items isempty ? center(child circularprogressindicator()) listview\ builder( itemcount items length, itembuilder (context, index) { return listtile( title text(items\[index] name), subtitle text(items\[index] description), ); }, ), ); } } explication classe item une classe modèle pour représenter les éléments récupérés de back4app fetchitems() récupère les données de la classe item dans back4app et met à jour la liste items build() affiche la liste des éléments ou un indicateur de chargement si les données sont encore en cours de récupération étape 5 – mise en œuvre des raccourcis de callback maintenant, ajoutons des raccourcis clavier pour actualiser les données et naviguer dans la liste 5 1 ajouter des widgets focus et callbackshortcuts modifiez le build() méthode dans home page dart @override widget build(buildcontext context) { return scaffold( appbar appbar( title text('callback shortcuts app'), ), body focus( autofocus true, child callbackshortcuts( bindings { singleactivator(logicalkeyboardkey keyr, control true) () { fetchitems(); scaffoldmessenger of(context) showsnackbar( snackbar(content text('data refreshed')), ); }, singleactivator(logicalkeyboardkey arrowdown) () { focusnextitem(); }, singleactivator(logicalkeyboardkey arrowup) () { focuspreviousitem(); }, }, child items isempty ? center(child circularprogressindicator()) listview\ builder( itemcount items length, itembuilder (context, index) { return focusableactiondetector( child listtile( title text(items\[index] name), subtitle text(items\[index] description), ), ); }, ), ), ), ); } explication focus widget enveloppe le corps pour s'assurer qu'il peut recevoir le focus et les événements du clavier callbackshortcuts mappe les raccourcis clavier aux fonctions de rappel ctrl + r actualise les données en appelant fetchitems() flèche vers le bas déplace le focus vers l'élément suivant flèche vers le haut déplace le focus vers l'élément précédent focusableactiondetector rend chaque listtile focalisable pour naviguer à l'aide du clavier 5 2 implémenter les fonctions de navigation ajoutez les méthodes suivantes pour gérer la navigation des éléments void focusnextitem() { final focus = focusscope of(context); if (focus canrequestfocus) { focus nextfocus(); } } void focuspreviousitem() { final focus = focusscope of(context); if (focus canrequestfocus) { focus previousfocus(); } } étape 6 – tester les raccourcis clavier 6 1 exécuter l'application dans votre terminal, exécutez flutter run 6 2 tester le raccourci de rafraîchissement appuyez sur ctrl + r (ou cmd + r sur macos) pendant que l'application est en cours d'exécution vous devriez voir un message snackbar disant "données rafraîchies" la liste devrait se mettre à jour s'il y a des changements dans les données 6 3 tester les raccourcis de navigation utilisez les touches flèche vers le bas et flèche vers le haut pour naviguer dans la liste vous devriez voir le focus se déplacer sur différents éléments conclusion dans ce tutoriel, vous avez appris à implémenter des raccourcis clavier dans une application flutter en utilisant callbackshortcuts vous avez intégré back4app pour récupérer et afficher des données, et amélioré l'expérience utilisateur en permettant aux utilisateurs d'interagir avec l'application à l'aide de raccourcis clavier principales conclusions callbackshortcuts simplifie l'ajout de raccourcis clavier en mappant les combinaisons de touches directement aux fonctions de rappel gestion du focus essentiel pour que les widgets reçoivent des événements clavier intégration back4app fournit un backend évolutif pour stocker et récupérer des données prochaines étapes élargir les raccourcis ajouter plus de raccourcis clavier pour des fonctionnalités supplémentaires modificateurs spécifiques à la plateforme gérer les différences dans les touches de modification entre les plateformes (par exemple, control vs command) accessibilité assurez vous que votre application est accessible en prenant en charge la navigation au clavier et les lecteurs d'écran gestion des erreurs améliorer la gestion des erreurs lors de la récupération des données depuis back4app ressources supplémentaires documentation back4app https //www back4app com/docs guide du sdk parse pour flutter https //docs parseplatform org/flutter/guide/ documentation officielle de flutter https //flutter dev/docs widget callbackshortcuts https //api flutter dev/flutter/widgets/callbackshortcuts class html bonne programmation !