More
Come implementare le scorciatoie da tastiera in Flutter con CallbackShortcuts e Back4App?
24 min
introduzione le scorciatoie da tastiera migliorano l'esperienza dell'utente fornendo accesso rapido ad azioni comuni all'interno di un'applicazione in flutter, il callbackshortcuts widget consente agli sviluppatori di mappare combinazioni di tasti della tastiera direttamente a funzioni di callback senza la necessità di definire azioni o intenti questo semplifica il processo di aggiunta di scorciatoie da tastiera alla tua app in questo tutorial, imparerai come integrare callbackshortcuts in un'applicazione flutter e utilizzare back4app—un backend as a service alimentato da parse server—per memorizzare e recuperare dati alla fine di questo tutorial, avrai un'app flutter che risponde a scorciatoie da tastiera per eseguire azioni come il recupero di dati da back4app requisiti per completare questo tutorial, avrai bisogno di flutter sdk installato sul tuo computer segui la guida ufficiale all'installazione di flutter https //flutter dev/docs/get started/install per il tuo sistema operativo conoscenze di base di flutter e dart se sei nuovo a flutter, rivedi la documentazione di flutter https //flutter dev/docs per familiarizzare con le basi un ide o editor di testo come visual studio code o android studio un account back4app registrati per un account gratuito su back4app https //www back4app com/ parse server sdk per flutter aggiunto al tuo progetto scopri come configurarlo seguendo la guida sdk flutter di back4app https //www back4app com/docs/flutter/parse flutter sdk una tastiera fisica o un emulatore per testare le scorciatoie da tastiera passo 1 – configurazione del progetto flutter 1 1 crea un nuovo progetto flutter apri il tuo terminale e esegui flutter create callback shortcuts app naviga nella directory del progetto cd callback shortcuts app 1 2 aggiungi dipendenze apri pubspec yaml e aggiungi le seguenti dipendenze dependencies flutter sdk flutter parse server sdk flutter ^4 0 1 esegui flutter pub get per installare i pacchetti passo 2 – configurazione di back4app 2 1 crea una nuova applicazione back4app accedi al tuo dashboard di back4app https //dashboard back4app com/ clicca su "crea nuova app" inserisci un nome per la tua applicazione, ad esempio, "callbackshortcutsapp" , e clicca su "crea" 2 2 configura il modello di dati nel tuo cruscotto dell'applicazione, vai alla "database" sezione clicca su "crea una classe" nella finestra modale seleziona "personalizzato" inserisci "elemento" come nome della classe clicca "crea classe" 2 3 aggiungi colonne alla classe nella classe "elemento" clicca su "+" per aggiungere una nuova colonna aggiungi le seguenti colonne nome tipo stringa descrizione tipo stringa aggiungi alcuni dati di esempio alla "elemento" classe ad esempio 2 4 ottieni le credenziali dell'applicazione naviga a impostazioni app > sicurezza e chiavi annota il tuo id applicazione e chiave client passo 3 – inizializzazione di parse nella tua app flutter apri lib/main dart e modificalo come segue import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk dart'; import 'home page dart'; // you'll create this file next void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your application id'; const keyclientkey = 'your client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, debug true, ); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( title 'callback shortcuts app', theme themedata( primaryswatch colors blue, ), home homepage(), ); } } sostituisci 'your application id' e 'your client key' con le tue credenziali effettive di back4app passo 4 – recupero dati da back4app crea un nuovo file lib/home page dart 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), ); }, ), ); } } spiegazione classe item una classe modello per rappresentare gli elementi recuperati da back4app fetchitems() recupera i dati dalla classe item in back4app e aggiorna la lista items build() visualizza la lista degli elementi o un indicatore di caricamento se i dati sono ancora in fase di recupero passo 5 – implementazione di callbackshortcuts ora, aggiungiamo le scorciatoie da tastiera per aggiornare i dati e navigare nella lista 5 1 aggiungi i widget focus e callbackshortcuts modifica il build() metodo in 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), ), ); }, ), ), ), ); } spiegazione focus widget avvolge il corpo per garantire che possa ricevere eventi di focus e tastiera callbackshortcuts mappa le scorciatoie da tastiera a funzioni di callback ctrl + r aggiorna i dati chiamando fetchitems() freccia giù sposta il focus al prossimo elemento freccia su sposta il focus all'elemento precedente focusableactiondetector rende ogni listtile focalizzabile per navigare usando la tastiera 5 2 implementare le funzioni di navigazione aggiungi i seguenti metodi per gestire la navigazione degli elementi void focusnextitem() { final focus = focusscope of(context); if (focus canrequestfocus) { focus nextfocus(); } } void focuspreviousitem() { final focus = focusscope of(context); if (focus canrequestfocus) { focus previousfocus(); } } passo 6 – testare le scorciatoie da tastiera 6 1 esegui l'app nel tuo terminale, esegui flutter run 6 2 testa la scorciatoia di aggiornamento premi ctrl + r (o cmd + r su macos) mentre l'app è in esecuzione dovresti vedere un messaggio snackbar che dice "dati aggiornati" l'elenco dovrebbe aggiornarsi se ci sono modifiche nei dati 6 3 testa le scorciatoie di navigazione usa i tasti freccia giù e freccia su per navigare nell'elenco dovresti vedere il focus spostarsi su diversi elementi conclusione in questo tutorial, hai imparato come implementare le scorciatoie da tastiera in un'applicazione flutter utilizzando callbackshortcuts hai integrato back4app per recuperare e visualizzare i dati, e hai migliorato l'esperienza utente consentendo agli utenti di interagire con l'app utilizzando le scorciatoie da tastiera punti chiave callbackshortcuts semplifica l'aggiunta di scorciatoie da tastiera mappando le combinazioni di tasti direttamente a funzioni di callback gestione del focus essenziale per i widget per ricevere eventi da tastiera integrazione back4app fornisce un backend scalabile per memorizzare e recuperare dati prossimi passi espandi scorciatoie aggiungi più scorciatoie da tastiera per funzionalità aggiuntive modificatori specifici della piattaforma gestisci le differenze nei tasti modificatori tra le piattaforme (ad es , control vs command) accessibilità assicurati che la tua app sia accessibile supportando la navigazione da tastiera e i lettori di schermo gestione degli errori migliora la gestione degli errori durante il recupero dei dati da back4app risorse aggiuntive documentazione back4app https //www back4app com/docs guida sdk parse per flutter https //docs parseplatform org/flutter/guide/ documentazione ufficiale flutter https //flutter dev/docs widget callbackshortcuts https //api flutter dev/flutter/widgets/callbackshortcuts class html buona programmazione!