| Hello World | - ✓ - 2



Tutorial semplici, come sempre, per la sezione Hello World e fatemi sapere se gradite questi mini tutorial di base e se avete altre curiosità , potete interagire nei messaggi sul blog o se preferite su Facebook o Instagram , vi ricordo sempre il gruppo telegram QUI  oppure il modulo per la richiesta dei tutorial che trovate QUI



Easy splash screen

Un semplice splash screen introduttivo , una piccola animazione di benvenuto alla nostra app.
Cosa ci servirà: una label e un clock
La label dovrà essere settata dalle impostazioni come non visibile e impostiamo il font e la grandezza del testo a nostro piacimento, non troppo grande altrimenti non potremo ricreare l'animazione , io ho messo 20.
Il clock lasciamo la spunta su always fires e interval su 1500 ( 1 secondo e mezzo) quindi togliamo la spunta da enabled.
Bene la mia idea è quella di aspettare 1,5 sec far comparire la scritta e ingrandirla gradualmente fino ad arrivare a farla sparire e aprire così l'app.
Visto che all'inizio abbiamo disabilitato il clock il primo comando da mettere su Screen Initialize è un bel set clock Enable to true, così da attivarlo, partiranno i primi 1,5 sec e vediamo cosa succede al primo tic del clock ⌚    
Qui dobbiamo differenziare due strade, l'inizio quando l'interval è uguale a 1500 e dopo che verrà velocizzato scendendo il tempo di attesa a 60 millisecondi, naturalmente voi proverete anche altri numeri per vedere effetti differenti.
Quindi , parte l'app, attesa di 1,5 sec e si attiva When Clock Timer, in questo caso verrà eseguita la prima sequenza nel then e andremo a rendere la label visibile e cambiare il tempo di attesa in 60 millisecondi. 
A questo punto l'attesa nn sarà più 1,5 sec ma 60 millisecondi e ad ogni passaggio andremo a settare la grandezza del font ( font size ) come il valore attuale più l'aggiunta di un' unità, proprio come i cartoni animati andiamo a visualizzare velocemente i vari " disegni " creando l'effetto ingrandimento.
Un piccolo controllo deciderà quando fermarsi infatti l'ultimo blocco indica che se la grandezza del font è uguale a 40 allora mi posso fermare e vado a disabilitare il clock ( Clock Enable false ).
L'unica cosa che manca è come proseguire dopo questo blocco , infatti insieme a label visible to false
che va a nascondere la label dobbiamo decidere se passare ad un altro screen ( sconsigliato, io eviterei aggiunta di screen inutili ) oppure rendere visibile l'arrangement in cui andremo a creare la nostra app usandolo come uno screen. 
All'interno del blog troverete vari esempi a riguardo con nel tutorial No Limits 
Fatemi sapere se vi è piaciuta l'intro e se questa sezione super easy vi piace , nei commenti potete anche presentare la vostra richiesta di tutorial.



 
Screen kill 
 
Eccoci con un classico senza tempo , letto per la prima volta sul sito di PuraVidaApps che non potete non conoscere o non sbirciare almeno una volta nella vita 😆
Spesso ho parlato della buona abitudine di non aggiungere screen senza senso o se non necessari ma se quando serve si può e si deve introdurre un nuovo screen. In questo caso se navighiamo tra i vari screen dobbiamo fare attenzione perché nel momento in cui ne lasciamo uno per aprirne un altro il vecchio screen rimarrà aperto in background portando problemi di ottimizzazione , utilizzo della memoria dell'app e del dispositivo nonché problematiche con alcuni componenti quali i player musicali o nel momento in cui vogliamo chiudere l'app.
Per evitare tutto ciò è consigliabile utilizzare questo blocco per chiudere lo screen abbandonato nel momento in cui andiamo ad aprire il seguente.
Sotto un esempio alla pressione di un button, andiamo ad introdurre un if che ci serve solamente per poter aggiungere due blocchi che, come potete notare dalla forma, non prevedono l'aggiunta di altri blocchi dopo di loro ( notare la base piatta ).
A questo punto ci basta verificare che vero è vero 😂😂 per poter accedere all'if e aggiungere il blocco close screen , dopo il then ecco che possiamo usare la base con il plug per introdurre anche open another screen screnName seguito dal testo con il nome dello screen che vogliamo aprire. Quindi in solo colpo abbiamo chiuso e aperto uno screen.
Facile, no? 



Save the data
 
L' importanza dei dati in un app è qualcosa di indescrivibile e più si diventa bravi più migliorano le noste app, più dati dobbiamo imparare a gestire.
Oggi vedremo un componente molto semplice ma allo stesso tempo molto utile e potente per salvare dati nella nostra app.
TinyDB è lo step successivo alle variabili, quando si inizia a sentire il bisogno di non perdere alcuni dati o usarli in modo particolare ( per esempio un login ) allora si opta per un database che non venga cancellato alla chiusura dell'app. Per il Tiny questa cosa è vera a metà perché se da un lato ci permette di recuperare dati anche dopo la chiusura dell'app ( le variabili si cancellano chiudendo l'app ) dall'altro questi dati possono essere comunque cancellati dalla memoria cancellando cache e i dati dell'app . Altra cosa positiva è che ci basta aggiungere il componente in ogni screen per avere i dati disponibili invece di passare questi valori alla chiusura dello screen, ci basterà semplicemente utilizzare gli stessi tag.
Caso studio , punteggio totalizzato da un utente. Dopo aver inizializzato la variabile punteggio a zero quando screen 2 Initialize subito andiamo a recuperare i dati del nostro utente. A questo proposito il blocco get value ha una forma particolare che permette l'incastro diretto con una variabile quindi molto comodo. Parte l'app , si richiama il valore e lo salviamo in una variabile per usarlo meglio nella nostra app. Il blocco è molto semplice e richiede solo di inserire un tag ( un identificativo ) che ci permetta poi di consultare il database e richiamare il punteggio. Nel caso il tag non esistesse firebase tornerà come valore quello scritto nell' ultimo plug, nel mio caso ho lasciato vuoto ma si potrebbe inserire un false o qualcosa che fa subito capire se il dato è assente. Per esempio NO DATA.
Vediamo il blocco per salvare delle informazioni, Store value ti permette di salvare i dati nel formato che desideri , nel nostro caso il tag è PUNTEGGIO  e il value è il punteggio effettuato. Nel momento importante , dopo un click oppure un evento particolare, andremo a salvare il tag PUNTEGGIO utilizzando come suo value il dato inserito nella variabile PUNTEGGIO. I valori possono essere diversi , da testo a numeri oppure link o semplicemente una lista , per esempio la lista di tutti i giocatori ma le liste le vedremo prossimamente.
 
 


Notifica ricorrente



Andiamo a vedere come creare una notifica ricorrente che si presenta ad ogni ingresso se non viene disabilitata dall'utente.
Per effettuare questa operazione avremo bisogno di un componente Notifier e un TinyDb per salvare i dati, vi ricordo che il Tiny salva solo in locale sullo smartphone e i dati possono essere cancellati disinstallando l'app oppure cancellando i dati dell'app.
Vediamo la dinamica di questa notifica, andando ad utilizzare il blocco When screen Initialize siamo sicuro che questi blocchi andranno in esecuzione ogni volta che lo screen viene caricato, ATTENZIONE proprio ogni volta, se infatti passiamo per esempio a screen 2 e poi nuovamente a screen 1 perché qui abbiamo organizzato la nostra HOME dell'app , tutti i blocchi Initialize verranno caricati nuovamente.
Assodato questo , quando lo screen viene caricato, il nostro controllo andrà a prelevare i dati dal TinyDb e nello specifico il tag MESSAGGIO in cui andiamo a gestire la presentazione del messaggio.
Sappiamo bene ( vero??? 😅) che il controllo if , ma anche i suoi fratelli e cugini, lavorano valutando una risposta true - false, infatti andiamo sempre ad introdurre dei confronti che generano una risposta vero o falsa. Per esempio "un numero è maggiore di un altro?" , " Questo elemento è presente nella lista?" , "Il valore del punteggio è maggiore di 100? " e così via. Questo mi fa capire anche che se io introduco nel mio if direttamente un valore true in automatico entrerò nella sezione then eseguendo il codice.
E' proprio questa caratteristica che andremo a sfruttate per il nostro caso, infatti se osserviamo bene il call Get Value del Tiny abbiamo la possibilità di specificare cosa restituire nel caso in cui il tag specifico non esista , direi ottimo.
Quindi cosa succede, parte lo screen , chiama il tag MESSAGGIO e visto che non esiste restituisce true che ci permetterà di eseguire il codice , quindi la notifica.
Questo accade alla prima installazione , se i dati vengono cancellati oppure se l'utente non clicca mai il tasto per disabilitare la notifica, infatti non vi ho detto di creare nessuna variabile per salvare il valore iniziale da salvare eventualmente nel Tiny ( e così risparmiano anche memoria 😁).
Osserviamo la notifica e compiliamo i nostri dati, con kodular ci sono veramente tante opzioni di notifica scegliete quella che più vi piace e che naturalmente abbia la possibilità di mostrare almeno 2 scelte, quindi due pulsanti da cliccare .
Impostata la notifica la magia avviene nel momento in cui si clicca , quindi facciamo la nostra scelta che infatti viene valutata dal blocco when After Choosing che parte ogni volta che clicchiamo i pulsanti nella notifica.
Non poteva mancare il nostro amato if per valutare se la risposta dell'utente , salvata in choise , è uguale a OK, NON MOSTRARE PIU' IL MESSAGGIO.
Lo so potevo mettere un nome più corto 😂 ma il blocco After Choosing restituisce il testo del pulsante che noi stiamo proprio usando per avvisare l'utente che può disabilitare la notifica, quindi sono costretto.
Nel caso in cui i due testi coincidono allora vado a modificare il valore dal tag MESSAGGIO e salvo false
Adesso nel momento in cui parte lo screen il Get Value trova il valore del tag restituendo false e quindi salteremo il nostro if senza far visualizzare la notifica.
Se l'utente cancella i dati dell'app o installa nuovamente l'app su un nuovo dispositivo il messaggio tornerà ad essere visualizzato.
Qui non abbiamo valutato come riattivare i messaggi perché ho pensato ad una comunicazione semplice, un avviso, un saluto, una piccola spiegazione, accettazione della privacy ( con le dovute aggiunte ) ma eventualmente nella sezione settings o tramite un pulsante si può andare ad agire sul valore del Tiny riportandolo a true e le notifiche compariranno nuovamente.  

Spero siano stati spunti interessanti e magari aver sciolto qualche dubbio sul funzionamento di qualche blocco .
Alla prossima 
    Raffaele




 











Commenti

Ciao, spero ti piaccia il blog. Se ti fa piacere qui puoi offrirmi un caffè!

Post popolari in questo blog

GOOGLE SCRIPT & KODULAR READ, WRITE, UPDATE, DELETE

Tu lo conosci THUNKABLE?