| The Time Machine |
Benvenuti nel mio blog, domanda a bruciapelo, ma vi piacciono i contenuti che propongo? Avete richieste , suggerimenti, consigli? Fatemelo sapere nei commenti e vi ricordo che potete interagire anche su Facebook e Instagram , se vi fa piacere seguitemi 👍
Bene dopo questa breve intro auto pubblicitaria passiamo alle cose serie. Anche questa volta lo spunto per questo tutorial viene direttamente da una vostra richiesta, non andremo a costruire una macchina del tempo ma useremo il componente clock che possiamo trovare tra i sensori disponibili. Un componente molto potente ma allo stesso tempo un po' ostico almeno per i primi approcci. Oggi useremo Kodular , che mi sembra molto ricco e promettente, per creare un codice che ci permetta di fornire un tot di "tiri" giornalieri al nostro utente, finiti i quali bloccheremo le azioni da noi scelte per attivarle il giorno dopo.
Nel caso specifico andremo a fornire al nostro utente 20 interazioni giornaliere con un button che scoprirete presto cosa attiva 😂 Let's go!Dopo il disorientamento iniziale per la nuova interfaccia sarete subito inebriati dalla miriade di componenti che sono stati aggiunti, a seguito della fusione tra AppyBuilder e Makeroid che ha dato vita a Kodular, e subito avrete voglia di sperimentare come i bimbi, proprio come ho fatto io 🙈
La parte grafica è solo a scopo didattico e lascio a voi la personalizzazione in base alle esigenze, nel nostro caso ho aggiunto un button , una label con un omino stilizzato, un distanziatore ( eh si non dobbiamo usare le label invisibili) e una label per tenere il conto. Ad ogni click del pulsante il nostro omino salterà e in alto avremo il conteggio delle evoluzioni , raggiunto il valore 20 una notifica ci avviserà che abbiamo finito i salti disponibili e di tornare il giorno seguente per altri 20 jump!
Per tenere traccia dei tentativi effettuati e anche dell'utente useremo firebase ma va bene qualsiasi db on line, vi ricordo che database come tinyDb essendo salvati su memoria interna possono essere facilmente cancellati svuotando i dati dell'app rendendo vano il nostro obiettivo di limitare l'utilizzo a 20 tentativi al giorno.
Alcuni passaggi verranno saltati per concentrarci sul problema principale ma lascerò il file .aia per vedere con calma tutto ed eventualmente vi rimando sempre ai messaggi. Iniziamo con creare le variabili che andremo ad usare, global date inizializzato testo e dove salveremo la data da verificare, global jump come numero e partiamo da zero, global user sempre testo e salverà il nome dell'utente. Per rendere la cosa più carina e per fare qualche verifica in più ho introdotto una specie di login senza password, molto semplice, when sceen1 initialize all'inizio del nostro progetto andiamo ad attivare una notifica contenente una textbox con cui possiamo impostare il nostro username. Una volta introdotto il nome verrà attivato il blocco when notifier1 After Text Input dove riceveremo l'input appena scritto e lo andremo a salvare nella variabile user, l'input ci viene fornito da response. Adesso che conosciamo il nome del nostro utente andiamo ad interpellare il nostro database chiedendo il valore salvato sotto il tag user per poi mostrarlo a video con messaggio di benvenuto tramite la label sottostante. Qui iniziamo ad entrare nel vivo perché nel caso di tag vuoto o inesistente firebase ci permette di impostare un valore da visualizzare e quindi evitare anche spiacevoli errori nella gestione di elementi vuoti. Nell'ipotesi di tag assente ho impostato il valore da salvare come una lista di due elementi contenente il giorno e lo zero, il primo è banale il secondo è il numero di tentativi effettuati che nel caso di nuovo utente sarà proprio zero. Quindi la struttura dei nostri dati sarà una lista con giorno e numero tentativi, un make a list ci permetterà di comporre la lista inserendo come primo elemento il blocco call clock1 Format Date che inserito un istante nel tempo ritorna la sua scrittura in formato MMM d, yyyy , cioè mese giorno anno all'americana, l'istante di nostro interesse è call clock1 Now .Il blocco Now in realtà fornisce molte più info (che potete visionare con do it sul blocco) ma grazie al blocco precedente andiamo a filtrare solo quello che ci serve estrapolando es. gennaio 1, 2021.
In caso contrario, quindi tag esistente, si attiverà il blocco when Firebase....Got Value restituendo il nome del tag e il suo valore (lista con : data e n. tentativi) infatti subito andremo a salvare il primo elemento della lista value nella variabile date e il secondo elemento della lista nella variabile jump, poi non ci resta che introdurre nella label jump il valore dei tentativi effettuati . Il numero dei tentativi verrà aggiornato grazie al button inserito e nel nostro caso attiverà anche l'animazione che però non spiegheremo qui , vi lascerò però il progetto per vedere il suo funzionamento e magari si potrebbe creare un tutorial solo sulla parte delle animazioni.
Per rendere il nostro intendo valido adesso dobbiamo salvare tutti questi dati nel nostro db on line per cui utilizzeremo il blocco call Store Value per salvare sotto il tag user la lista con data e n. tentativi (global date e jump). Facile no? Adesso immaginiamo che abbiamo fatto tutti i 20 tentativi della giornata , quindi la data è ancora valida ma il n. di tentativi sono finiti, ecco il nostro secondo caso possibile.
Commenti
Posta un commento