Visualizzazione post con etichetta app-inventor-2. Mostra tutti i post
Visualizzazione post con etichetta app-inventor-2. Mostra tutti i post

lunedì 1 maggio 2017

Condividere testo ed immagini (Mit App Inventor 2)

Ogni applicazione che si rispetti ha un bel tasto "condividi", che serve a condividere con i propri amici, testo, immagini, video, file, o altro.
Ovviamente tutto ciò è possibile anche tramite Mit App Inventor 2, senza dover scrivere una riga di codice.

Vediamo dunque come poter usare appinventor per alimentare anche noi il fantastico mondo dei social network (e non), tramite un componente molto semplice da utilizzare.


Come condividere testo ed immagini con Mit App Inventor 2


Per poter condividere qualcosa tramite app inventor 2, bisogna utilizzare un componente presente nella sezione Social, il cui nome è niente poco di meno che, Condivisione (Sharing).

I blocchi da utilizzare per poter condividere qualcosa da app inventor, sono 3:
  1. Esegui condivisione condividi file (Call sharing share file): condivide un file di qualsiasi formato (immagini, video, documenti, ecc...)
  2. Esegui condivisione condividi file con messaggio (Call sharing share file with message): condivide file con l'aggiunta di un messaggio di testo
  3. Esegui condivisione condividi messaggio (Call sharing share message): condivide un semplice messaggio di testo

Condividere testo ed immagini (Mit App Inventor 2)

Usando questi blocchi (blocks), si aprirà la classica finestra di condivisione di android (facebook, gmail, twitter, instagram, email, o qualsiasi altra app compatibile avete installato sul cellulare), e potrete scegliere con quale applicazione condividere i vostri contenuti appinventor 2.

Qualche altra cosa da sapere sullo share file app inventor:
  • La cartella/percorso in cui bisogna andare a pescare i file salvati da appinventor, è:
    file:///mnt/sdcard/
  • I file caricati a sistema sull'applicazione appinventor, possono essere trovati in:
    file:///mnt/sdcard/AppInventor/assets/
    o
    file:///mnt/sdcard/AppInventor/data/
    oppure
    /emulator/storage/0/AppInventor/data (o assets)

Per i file presenti a sistema quindi (quelli precaricati nella sezione media di app inventor 2), se si sta provando l'app dall'emulatore o dal companion, il percorso corretto dovrebbe essere file:///mnt/sdcard/AppInventor/assets/nomefile.estezione altrimenti il path corretto dovrebbe essere file:///android_asset/nomefile.estensione (verificate voi stessi cosa funziona sul vostro cellu).
Una volta verificato il path funzionante in produzione e quello in test, potrete gestire la cosa con qualche variabile globale, da settare ad esempio in fase di sviluppo per cambiare percorso, e poi da cambiare quando si va a generare l'apk.

Comunque alcuni componenti, tipo il selettore immagine, già sono configurati per fare in modo che se si clicca su condividi, il blocco selettore immagine selezione (selection), questo già da solo capisce dove andare a pescare l'immagine da "sharare".

Il progetto .aia che vi allego contiene un esempio di condivisione testo e file immagine (tramite selettore o immagine predefinita), in modo che possiate testare con mano come funziona il tasto condividi in app inventor 2.

Tornare all'elenco delle lezioni

sabato 29 aprile 2017

Tasto per chiudere applicazione (Mit App Inventor 2)

Di questa funzionalità in realtà ne avevo già parlato in un altro articolo, ma visto che stranamente questo tipo di opzione di Mit App Inventor 2 è posizionata in una posizione un po' difficile da trovare, meglio fare un mini tutorial che poi può esser più facilmente trovato ogni volta che non ci si ricorda più dov'è il blocco che consente di chiudere un'applicazione.

Creare un tasto chiudi applicazione può servire in tutti quei casi in cui si voglia dare la possibilità all'utente, di uscire dalla nostra app, magari compiendo anche qualche altra operazione in background, tipo salvare dei dati nel db.


Come aggiungere un tasto per chiudere applicazione in Mit App Inventor 2


Per poter aggiungere il classico bottone chiudi app in appinventor 2, andiamo subito nella sezione Blocchi (blocks).

Il blocco che ci serve si trova, stranamente, nella sezione Controllo (Control), e si chiama esattamente: Chiudi applicazione (Close application).
Ora non ci resterà altro che aggiungere ad esempio, un bottone, e poi legare l'azione onclick (al click) a questo blocco, per far chiudere la nostra app con un tocco del dito.

Tasto per chiudere applicazione (Mit App Inventor 2)

L'unico limite di questo comando app inventor, è che può essere eseguito solo con un'applicazione installata, e non in fase di sviluppo.
Se proverete infatti a chiudere il vostro programma/gioco tramite close application, appinventor2 vi riporterà un avviso a video sull'impossibilità di compiere quest'azione.

Sempre nella sezione strutture di controllo, troviamo anche il comando Chiudi schermo (Close screen), che può tornare utile nella gestione delle applicazioni multischermo.

Bene, onclick close app: done (per dirla all'inglese :p).

Tornare all'elenco delle lezioni

venerdì 28 aprile 2017

Posizione GPS (Mit App Inventor 2)

Sapere dove ci si trova non è mai stato così facile, grazie a Mit App Inventor 2.
Sto parlando ovviamente della funzione posizione / gps, ovvero della possibilità di individuare tramite applicazione, alcuni parametri come latitudine, logitudine, altezza e velocità.

Vediamo dunque come fare usare la funzione localizzazione del proprio cellulare, tramite appinventor 2.


Individuare Posizione GPS con Mit App Inventor 2


Il componente che consente di creare applicazioni per android in grado di utilizzare il gps del telefono, si chiama Sensore Posizione (Location Sensor) e si può trovare nella sezione Sensori (sensors).

Dopo aver trascinato questo componente invisibile nel visualizzatore (viewer) di app inventor, andare come al solito nella sezione blocchi (blocks), per iniziare subito ad utilizzare le funzionalità di questo componente.

C'è un blocco in particolare che fa quasi tutto ciò che serve, il suo nome è: Per sempre quando sensoreposizione posizione cambiata (when locationsensor location changed).
Questo blocco funziona in modo da individuare il cambio della posizione del proprio cellulare (cercando la vostra posizione in un intervallo di tempo modificabile), catturando 4 variabili in tempo reale: latitudine, logitudine, altezza e velocità.

Posizione GPS (Mit App Inventor 2)

Ovviamente, per poter utilizzare questo componente, bisogna aver attivato il gps.
Inoltre, appena farete partire la vostra applicazione, che quindi chiamerà la funzionalità del gps, dovrete attendere qualche secondo per essere individuati.

Allego il solito progetto .aia d'esempio, nel quale ho usato una web view che passa a google maps la longitudine e la latitudine, consentendo quindi all'applicazione di visualizzare una mappa aperta esattamente nella posizione in cui vi trovate (in buona sostanza ho emulato l'app di google maps).

Questo componente di app inventor 2 può sicuramente tornare utile per creare un tipo di applicazione in grado di usare la posizione del telefono, per uso ludico o professionale.
Potrete ad esempio condividere la vostra esatta posizione con i vostri amici, salvare i dati del gps per tracciare una sorta di percorso, e tante altre belle cose.

Tornare all'elenco delle lezioni

giovedì 27 aprile 2017

Fare e riprodurre video (Mit App Inventor 2)

Poteva mancare una fornita sezione Multimediale in Mit App Inventor 2?
Certo che no!
In questo breve tutorial vi spiegherò come fare video con app inventor 2, ma anche come riprodurli, grazie a due componenti davvero semplici da utilizzare, che sfruttano le più basilari funzionalità degli smartphone.


Come fare e riprodurre video in Mit App Inventor 2


Per poter registrare un video con app inventor 2, basta utilizzare un componente che si trova nella sezione Multimediale (Media), il cui nome è niente poco di meno che: Videocamera (Camcorder).

Fare e riprodurre video (Mit App Inventor 2)

Dopo aver trascinato la videocamera dentro il Visualizzatore (viewer), andare nei blocchi, per vedere come gestire la registrazione dei video in appinventor2.

Il comando (blocco) da utilizzare per la registrazione di un video (da associare magari ad un semplice bottone), si chiama Esegui videocamera registra video (call camcorder record video).

Esegui videocamera registra video

Il componente invece da utilizzare per poter riprodurre un video in app inventor 2, si trova sempre nella sezione multimedia, e si chiama Player Video.

I blocchi (blocks) da usare per la riproduzione di un video, sono Imposta playervideo sorgente (Set playervideo source) per poter dire quale video bisogna riprodurre, e Esegui playervideo avvia (Call playervideo start)... più eventuali altri comandi di Stop e Pausa.

Nel nostro specifico esempio, il sorgente da impostare per il lettore video, lo andiamo a prendere direttamente da una variabile valorizzata dal comando Per sempre quando videocamera termina registrazione (When cam corder after recording).

Player Video App Inventor 2

Trovate un esempio pratico di come registrare e riprodurre video app inventor, in questo progetto .aia, che come sempre è solo un assaggio (completo comunque) di ciò che è possibile fare con i componenti appinventor, giusto per capire velocemente, toccando con mano un esempio già preimpostato, le potenzialità dello strumento.

Grazie a questi semplici componenti di app inventor, potrete creare un'applicazione che registra, riproduce, e volendo, condivide dei video.

Tornare all'elenco delle lezioni

mercoledì 26 aprile 2017

Installare MIT App Inventor 2 su Windows in locale

Per poter superare tutti i limiti di MIT App Inventor 2, c'è una cosa che potete fare, anzi due: installarlo sul vostro computer in locale, e modificarlo creando nuovi componenti e/o estensioni.

Più facile a dirsi che a farsi ovviamente, ma andiamo per ordine: installare app inventor 2 in locale, sul proprio pc di casa, che magari ha su windows.
Questa operazione, richiede un po' di pazienza, per poter eseguire con successo tutti i vari passaggi, che immancabilmente vi riporteranno qualche errore e/o grattacapo da risolvere.


Come installare MIT App Inventor 2 su Windows in locale


Per far girare app inventor 2 in locale, occorre prima soddisfare una serie di requisiti:
  1. Installare l'ultima versione di Java (o guardare sul sito MIT la minima necessaria, attualmente la 7)
  2. Installare ANT per Windows (leggere qui su come fare)
  3. Installare GIT
  4. Installare ADB Android Debug Bridge (qui le istruzioni)
  5. Installare AppEngine sdk
  6. Sistemare le variabili d'ambiente (leggere qui)

Dopo aver soddisfatto questi requisiti base, forse avrete meno grane durante l'installazione di app inventor su windows (e non).

Andiamo subito a scaricare il file zip contenente tutti i file necessari per l'installazione, da questo indirizzo:

https://github.com/mit-cml/appinventor-sources

Estrarre lo zip su una cartella del proprio computer, es: c:\appinventor

Adesso, aprire il prompt dei comandi di windows, entrare dentro la cartella di appinventor, fino ad arrivare (tramite il classico comando dos cd nomecartella) a dove è presente un file chiamato build.xml, nella root di app inventor (ad esempio in: C:\appinventor\appinventor), poi digitare:
  • ant clean + INVIO: puliamo/prepariamo l'ambiente per la compilazione, passaggio necessario ogni volta che si vuole rifare il built
  • ant MakeAuthKey + INVIO: otteniamo una chiave segreta che serve al programma
  • ant + INVIO: la compilazione vera e propria

Se tutto sarà andato a buon fine, dopo diversi minuti di compilazione verrà riportato a video il messaggio: BUILD SUCCESSFUL.

Installare MIT App Inventor 2 su Windows in locale

Possibili errori di questi passaggi (es. "cannot run program git"), sono quelli dovuti all'ant path e a git, entrambi risolvibili tramite una corretta configurazione delle variabili d'ambiente.

Build fallito

variabili d'ambiente per app inventor

Git per windows lo trovate al seguente indirizzo.

Inoltre, un altro problema che ho riscontrato durante la compilazione, è che non trovava alcuni file presenti nelle cartelle blocky e closure-libray, dentro la cartella lib di app inventor.
In questo caso, dopo averci perso molto tempo, ho scoperto che il problema (temporaneo credo), era la presenza del carattere @ dentro le cartelle di github online. E' bastato riscaricare singolarmente le cartelle e rinominarle senza tutto ciò che era scritto dopo la chiocciola (e cancellare le corrispettive cartelle vuote in locale), per far funzionare il tutto.

Risolvere problema cartelle vuote

Un'altra cosa da fare è installare app inventor companion app.
Questo strumento serve per poter testare le proprie app da cellulare tramite wifi, e va ricompilato ogni volta che si modifica la piattaforma appinventor (es. aggiungendo nuovi componenti).
In realtà la prima volta forse non è necessario compilarlo, comunque il comando da lanciare (dopo aver collegato il telefono al pc con il cavo usb) da dentro la root di appinventor è:
ant installplay

Se per caso dovesse generare qualche errore, ciò potrebbe dipendere dalla mancata presenza dell'adb (Android Debug Bridge), da installare ed impostare correttamente come variabile d'ambiente.

Bene, adesso diciamo che il più quasi fatto.
Ora, per poter lanciare app inventor sul proprio pc con su windows, occorre usare l'app engine.

Trattasi di un altro componente java, che consente di lanciare app java tipo webserver, le quali consentono di far aprire il sito/applicazione dal browser, collegandosi ad un indirizzo locale della macchina.

In soldoni, dopo aver installato appengine sdk java (scaricabile da qui), occorre lanciare il comando dev_appserver.sh, indicandogli la porta, l'indirizzo del server, ed il percorso fisico dell'appengine nostra app.

Ad esempio nel mio caso, il comando da lanciare dal prompt di dos sarà una cosa del genere:
cd C:\Program Files\appengine-java-sdk-1.9.51\bin\
dev_appserver.sh  --port=8888 --address=0.0.0.0 C:\appinventor\appinventor\appengine\build\war\

Con il primo comando mi posiziono nella cartella dell'appengine java del mio pc (se non l'ho mappata come path di sistema), con il secondo comando invece, lancio app inventor per windows.
Ovviamente è consigliato crearsi un bat che fa in automatico queste ultime azioni, lanciando di fatto appinventor con un click.

Dovrebbe anche partire una finestra java che vi chiede il consenso alla connesione remota, nel caso abbiate qualche firewall, datelo senza problemi.
Ovviamente, per poter girare, serve un java aggiornato (scaricabile da qui), come dicevo sopra.

Bene, adesso basterà aprire il browser (sconsigliato fortemente internet explorer), e collegarsi al seguente indirizzo:
http://127.0.0.1:8888/

Vi verrà chiesta user e password, ma se cliccherete su "Click Here to use your Google Account to login", di fatto finirete in una pagina dove vi basterà inserire una mail per entrare senza password (dopo aver dato il consenso ai termini del servizio).
L'utente indicato servirà anche per la generazione dei pacchetti che andrete a creare con app inventor 2 per pc.

login app inventor

Accedi

Bene, ora, dopo tanta fatica, sarete finalmente dentro il vostro mit app inventor personale, e potrete iniziare subito a creare un nuovo progetto, oppure ad importare uno di quelli che avevate creato online.

App Inventor 2 in locale

Tutto finito? In realtà no.
Per poter creare applicazioni con il vostro app inventor 2 offline (o quasi), dovrete lanciare il BuildServer.
Trattasi dello strumento che consente di generare gli apk, i file che poi si installano sul vostro telefono, i file che consentono la distribuzione della vostra app sul google play store.

Per lanciare il buildserver machine, bisogna spostarsi tramite prompt di dos nella root di appinventor, e poi nella cartella buildserver, ed infine digitare il comando:
ant RunLocalBuildServer
Se il risultato sarà "Server running", allora il buildserver starà girando correttamente, e potrete generare tranquillamente gli apk.
Per testare il build server potrete digitare questo indirizzo:
http://127.0.0.1:9990/buildserver/vars
o questo:
http://127.0.0.1:9990/buildserver/health
che vi restituirà semplicemente OK, in caso positivo.
Oppure, provare direttamente a generare l'apk dalla piattaforma appinventor.

BuildServer in azione

Per comodità quindi, se create un bat che vi lancia app inventor 2 server, aggiungete anche il comando per lanciare il buildserver, così da non doverlo fare ogni volta a mano.
Se vi dimenticate di lanciare il buildserver, quando proverete a generare un apk, l'app vi darà errore.

E' tutto.
Trovate quanto scritto sopra, più dettagliatamente, ma in inglese, a questo indirizzo.

Tornare all'elenco delle lezioni

martedì 25 aprile 2017

La gestione delle notifiche (Mit App Inventor 2)

Un altro utile componente di Mit App Inventor 2 riguarda le notifiche (Notifier blocks).
Grazie a questa funzionalità infatti, sarà possibile creare delle applicazioni per android in grado di riportare a video dei brevi messaggi di notifica, oppure una sorta di popup con (ad esempio) un messaggio di informazioni, oppure ancora, con la possibilità di effettuare una scelta.

Vediamo dunque come funzionano e a cosa servono le notifiche di appinventor 2.

La gestione delle notifiche (Mit App Inventor 2)
 

La gestione delle notifiche in Mit App Inventor 2


Il componente chiamato Notifiche (Notifier) in app inventor 2, si trova nella sezione Interfaccia utente (user interface).
Questo è un componente di tipo invisibile, ovvero, una volta trascinato nel visualizzatore (viewer), non verrà mostrato a video, ma saranno però presenti i suoi effetti dopo aver lavorato nella sezione blocchi (blocks).

Tra le proprietà (properties) configurabili di questo componente di notifica, ci sono il colore di sfondo, la lunghezza notifica (corta/lunga), ed il colore testo.

Proprietà di notifica

Andando poi nei blocchi, sarà possibile vedere che tipo di notifiche app inventor 2 può gestire.

Ci sono infatti le notifiche che salvano dati nei log (info log, error log, avvertimento log), ovvero quelle notifiche che vengono memorizzate nei log del telefono.

Poi ci sono le notifiche di tipo più operativo, quelle che appaiono a video.

Abbiamo la Esegui notifiche mostra avviso (Call notifier show alert notice), che consente di far apparire a video una notifica di testo che poi sparisce dopo pochi istanti (la lunghezza dell'apparizione dipende dal parametro lunghezza notifica / notifier length).

La Esegui notifiche mostra finestra messaggio (Call notifier show message dialog), che fa apparire il classico popup informativo che l'utente deve chiudere cliccando il tasto ok (o qualsiasi altra label si voglia mettere, es. chiudi).

Poi abbiamo la Esegui notifiche Mostra finestra scelta (Call notifierShow chose dialog), interessantissima funzionalità che da all'utente la possibilità di fare delle scelte (es. si o no), poi intercettabili dall'applicazione tramite il blocco Per sempre quando notifiche dopo scelta (When notifier after choosing).

Questo tipo di scelte viene fatto tramite click su delle opzioni prestabilite.
Se invece si vuole far immettere un valore all'utente dentro una finestra di popup che appare nell'applicazione, basta usare il blocco Esegui notifiche mostra finestra testo (Call notifier Show message dialog).
Il messaggio inserito dall'utente viene poi intercettato dal blocco Per sempre quando notifiche dopo inserimento testo (When notifier after text input).

Alcuni di questi popup di notifica app inventor, possono essere chiusi anche senza effettuare alcuna scelta, dipende tutto da come impostate l'opzione di obbligatorietà Nascondibile (cancelable).

Blocchi notifiche

L'ultima funzionalità da citare nella sezione notifiche, riguarda quella della barra di caricamento dell'applicazione: Esegui notifiche Mostra barra di avanzamento (Call notifier show progress dialog).
Questo blocco serve per far apparire il classico popup / finestra modal, in cui si avvisa l'utente che l'applicazione sta caricando (loading please wait).
Attenzione a non dimenticare di utilizzare poi il blocco Esegui notifiche Dismiss progess dialog, altrimenti la barra di avanzamento precedentemente attivata, bloccherà la vostra applicazione.

Tutto quando sopra detto (o quasi), lo ritrovate in questo progetto .aia.
Buon esercizio con le notifiche di app inventor 2.

Come però avrete capito, non si tratta delle notifiche mandate dalla vostra applicazione in background al vostro cellulare, nella sua barra delle notifiche.
Questa funzionalità è un'altra cosa, e non so se appinventor la contempla (devo ancora scovarla).

Tornare all'elenco delle lezioni

lunedì 24 aprile 2017

Form e salvataggio dati (Mit App Inventor 2)

Con tutti i campi / componenti presenti in Mit App Inventor 2, è ovviamente possibile creare delle form per la raccolta dei dati.

Per chi non proviene dal mondo dell'html o della programmazione in generale, una form è una sorta di pagina/struttura, contenente diversi campi compilabili dall'utente, con la quale è possibile raccogliere/salvare/inviare varie informazioni.

Molte applicazioni utilizzano le form, più o meno complesse, per memorizzare delle opzioni di gioco o dei dati personali, quindi è molto importante sapere come creare form tramite app inventor, in modo che queste possano poi compiere varie azioni, dall'invio via email dei dati, al salvataggio su un database esterno, o addirittura nell'applicazione stessa.

Form con App Inventor 2

Creazione form e salvataggio dati con Mit App Inventor 2


Vediamo subito quali componenti è possibile utilizzare per la creazione di un form / questionario con app inventor 2.
Tutti i comandi che vi andrò a spiegare, sono presenti nella sezione Interfaccia utente (user interface), e basta trascinarli nel visualizzatore / viewer, per poterli adoperare.

Casella di scelta / Check Box
E' il classico checkbox, uno strumento usato nelle risposte a scelta multipla, ovvero quando si vuole dare la possibilità all'utente di spuntare più opzioni.

Selettore data / Data Picker
Bottone che se cliccato, fa aprire sul cellulare uno strumento popup che consente di scegliere una data (giorno / mese / anno), molto comodo per chiedere la data di nascita, ad esempio.

Selettore lista / List Picker
Bottone, al quale è possibile cambiare la grafica, sostituendolo anche con un'immagine, tramite il quale è possibile aprire una tendina prepopolata di valori, dove l'utente deve effettuare una singola scelta (es. selezionare un comune da elenco di città).

Casella di testo password / Password textbox
Se nella vostra applicazione volete far memorizzare o inserire una password, utilizzate questo componente per evitare che questa sia visibile durante la digitazione.
Ovviamente, se salvate delle password nelle vostre app, sarebbe meglio prima criptarle.

Cursore / Slider
Da usare quando si vuole far scegliere all'utente un valore numerico dentro un range (es. da 1 a 100), tramite però una barra visiva che si trascina, come se fosse un volume in un lettore mp3.

Selettore a scorrimento / Spinner
Come il selettore lista, solo che consente di far apparire già a video l'elemento selezionato.
Ovviamente anche in questo caso, è possibile popolare questo componente sia dal visualizzatore, che dai blocchi, magari pescando i dati da una lista (list).

Casella di testo / Text Box
Indubbiamente il componente form di app inventor 2 più utilizzato in assoluto.
Consente di far inserire all'utente una stringa di testo o anche un numero, oppure un testo lungo su più righe.

Selettore ora / Time Picker
Come il selettore data, con l'unica differenza che qui si impostano i campi ora e minuti.

Etichetta / label
Non serve per poter salvare dati su mit app inventor, ma è un elemento indispensabile nelle form, in quanto consente di inserire note di testo descrittive per gli utenti (es. "inserisci il tuo nome qui sotto").

Pulsante / Button
Senza un bottone che faccia il submit del form app inventor, non si va da nessuna parte.
Grazie ai pulsanti è quindi possibile inviare i dati contenuti nei form, lavorando poi ovviamente dietro le quinte tramite l'azione Per sempre quando pulsante cliccato (When button clicked).

Form e salvataggio dati (Mit App Inventor 2)

Ovviamente senza l'opportuna programmazione tramite i Blocchi (blocks) di app inventor 2, i campi dei form servono a ben poco.
Nell'esempio che potete scaricare qui (solito progetto .aia), troverete tutta una serie di esempi con i campi appena descritti.

Controlli form

Inoltre, nel mio progetto d'esempio, ho messo anche qualche controllo sui campi inseriti (se è un numero, se è stato selezionato, controllo sui campi obbligatori, ecc...), più il salvataggio su tinydb, in modo che riaprendo l'applicazione dopo aver salvato tramite apposito tasto, la form venga automaticamente ripopolata.

Quando creerete la vostra prima applicazione, non sottovalutate l'importanza dei controlli form app inventor 2 per i dati inseriti, perchè la robustezza della vostra app potrebbe essere giudicata proprio dal fatto che un utente possa mandarla in crash solo perchè ha inserito un valore inatteso/sbagliato.

Questa lezione in effetti è un po' più astratta del solito, ma il progetto che ho incluso vale più di 1000 parole, provare per credere.
A seconda della vostra dimestichezza con app inventor 2, potrete creare delle form più o meno complesse per le vostre applicazioni.

Tornare all'elenco lezioni

domenica 23 aprile 2017

Caricare e salvare immagini (Mit App Inventor 2)

Molte applicazioni per android, consentono di caricare e salvare immagini, ed ovviamente anche con Mit App Inventor 2 è possibile compiere questo genere di operazioni.

Purtroppo anche in questo caso (attualmente) ci sono dei limiti, che vi andrò subito ad elencare:
  • E' possibile salvare/gestire un numero massimo di 10 immagini alla volta
  • Non è possibile spostare il percorso del salvataggio del file

Accettati questi limiti, che comunque non sono poi così vincolanti, vediamo subito come fare l'upload di immagini in app inventor 2.


Come caricare e salvare immagini in Mit App Inventor 2


Per poter fare l'upload di foto in una propria app o gioco per cellulare, tramite appinventor, basta utilizzare il componente, presente nella sezione Multimediale (Media), chiamato Selettore immagine (Image Picker).

Caricare e salvare immagini (Mit App Inventor 2)

Grazie a questo componente, sarà possibile selezionare qualsiasi foto/immagine dal proprio telefonino, ed utilizzarla come meglio si crede nella propria app.

Il componente apparirà come una sorta di pulsante (sostituibile con una bella immagine grafica, se lo si vuole), cliccato il quale, si aprirà la classica schermata per la selezione dei file.
Una volta selezionata una foto dalla propria galleria del telefono, questa verrà automaticamente salvata in un percorso tipo:
storage/emulated/0/Pictures/_app_inventor_image_picker/pikerd_nomeimmagine.estensione.

Come si evince dal nome del file, l'immagine caricata sarà automaticamente rinominata con l'aggiunta del suffisso "piked_".

Questo componente di app inventor 2 è compatibile con i classici formati grafici d'immagine, quali jpg, png, gif.

Venendo invece al suo funzionamento, tramite il blocco Per sempre quando selezione immagine Terminata Selezione (When Image Picker Afer Picking) è possibile compiere delle azioni subito dopo il salvataggio dell'immagine sul proprio cellulare.
Ad esempio, il comando Imposta Immagine = Seleziona immagine (Set Image Picture = Image Picker Selection), serve a settare l'immagine appena caricata dentro il classico componente Immagine (Image) di app inventor, in modo da poter visualizzare in tempo reale ciò che è stato appena caricato/salvato.

Blocchi Image Picker

Questo componente è molto utile per poter ad esempio creare app dove si da la possibilità all'utente di cambiare l'immagine di sfondo di un gioco, o per caricare delle foto alle quali poi applicare qualche effetto.
Insomma, questo è solo l'inizio (cit.)

A questo indirizzo trovate il solito esempio progetto .aia da scaricare per testare con mano le potenzialità del componente per il salvataggio delle immagini con app inventor 2.
Ho usato anche il componente tinydb per salvare in una variabile l'ultima foto caricata dalla mia app di test, in modo da verificare che uscendo e rientrando nell'applicazione, il programma davvero ha salvato l'immagine e la può ripescare facilmente.

Ovviamente, potrete superare i limiti di questo componente installandovi qualche estensione creata e condivisa da qualche buon samaritano.

Tornare all'elenco delle lezioni

venerdì 21 aprile 2017

Creare l'app del tuo sito web (Mit App Inventor 2)

Un esercizio facile facile, che però potrà darti subito una bella soddisfazione personale, è quello di creare l'app per il tuo sito web, tramite ovviamente Mit App Inventor 2.

Trattasi quindi della creazione di un'applicazione per cellulari android, che sia in grado di riprodurre fedelmente il tuo sito internet.

Ma perchè fare ciò se già si ha un sito internet online?
Semplice, per aumentare le visite, grazie alla presenza del proprio sito, anche nel play store di google.

Ma vediamo subito come fare.


Come creare l'app del tuo sito web con Mit App Inventor 2


Per poter avere un'app per cellulare del proprio sito internet, occorre soddisfare due semplici requisiti:
  1. Possedere un sito web responsive: ovvero avere già un sito internet che si adatti in automatico alle varie dimensioni dei cellulari
  2. Saper usare mit app inventor 2, o semplicemente, continuare a leggere questo post :)

Andiamo subito a creare un nuovo progetto in appinventor2 e posizioniamoci nei componenti disponibili (Palette), nella sezione Interfaccia utente (User interface).

Il componente che dobbiamo trascinare nel visualizzatore è il VisualizzatoreWeb (WebViewer).

Creare l'app del tuo sito web (Mit App Inventor 2)

Possiamo lasciare i parametri di altezza e larghezza automatici, ed andare ad inserire l'indirizzo del nostro sito web nell'apposito campo chiamato UrlIniziale (HomeUrl).
Inoltre, se vogliamo che il nostro sito si apra senza ulteriori barre, andiamo a cliccare su screen e a nascondere il titolo, defleggando il campo TitoloVisibile (TitleVisible).

Web Viewer

A te poi la scelta se mettere lo screen su responsive, o se abilitare o meno la rotazione dello schermo (e quindi dell'intero sito).

Praticamente abbiamo già finito.
Prova a lanciare la tua app con l'emulatore o tramite l'app di app inventor (sembra un gioco di parole), per poter ammirare immediatamente l'app android del tuo sito internet.

Oggi è un altro post

Come dicevo all'inizio di questo post, il sito web di base dovrà essere responsive.
Se quindi il tuo sito lo è, il risultato finale sarà ottimo, e potrai navigare tranquillamente tutte le sue pagine dalla tua app per cellulare, ed addirittura vedere la pubblicità adsense, se presente (quindi non perderai niente a livello di eventuali incassi dovuti alle visite del tuo sito)... questo chiaramente non risponde all'osannata domanda "come mettere la pubblicità su app inventor 2" (magari con admob)... ma è una magra consolazione nella creazione di una propria app/sito web.

Ovviamente questo è solo un esempio basilare e banale (clicca qui se vuoi scaricare il progetto .aia).
Una vera app per un sito web ha anche delle funzionalità extra che il browser magari non ha... ma diciamo che questo è un buon inizio per avere la prima applicazione per il proprio sito internet, da distribuire sul play store o anche solo agli amici passandogli l'apk... oppure solo per uso personale.

Torna all'elenco lezioni

giovedì 20 aprile 2017

La gestione dello schermo screen (Mit App Inventor 2)

Oltre a tutti i vari comandi, i blocchi, le funzioni, le procedure, in Mit App Inventor 2 è possibile gestire anche lo schermo (screen).

Un'applicazione appinventor infatti, può avere uno o più schermi, con colori, orientamento ed impostazioni diverse, configurabili facilmente tramite interfaccia visiva in fase di progettazione, oppure tramite i blocchi (blocks)... vediamo quest'ultimo caso.


La gestione dello schermo screen in Mit App Inventor 2


Per cambiare le proprietà dello schermo in app inventor, entrare in blocchi e cliccare su screen.

In questa sezione sarà possibile, sia reperire tramite codice varie informazioni sullo schermo del cellulare in uso, come le dimensioni (altezza e larghezza), il colore di sfondo impostato nell'app, ed anche l'orientamento dello schermo.

La gestione dello schermo screen (Mit App Inventor 2)

A parte scoprire i vari parametri dello schermo ed eventualmente modificarli in base alle necessità, una funzionalità base che sicuramente userete in quasi tutte le vostre app sarà il blocco Per sempre quando screen inizializza (when screen initialize) che sostanzialmente consente di compiere azioni, come valorizzare variabili, all'apertura della vostra app parte, quando lo schermo in questione viene caricato.

Un'altra funzionalità utile è quella che consente di catturare gli errori del vostro gioco app inventor 2.
Tramite il blocco Per sempre quando screen si è verificato un errore (when screen error occurred), potrete intercettare gli errori senza far chiudere la vostra app.
Questa gestione degli errori di app invetor 2, può tornare sicuramente utile nei casi l'utente possa in qualche modo far generare all'app un errore che potrebbe in qualche modo causare un crash/interruzione del programma.
Impedendo quindi di far bloccare la vostra applicazione, potrete anche mostrare a video l'errore generato.

gestione degli errori di app invetor 2

Le altre funzionalità del blocco screen di app inventor consentono di cambiare colore di sfondo, cambiare immagine di sfondo, cambiare orientamento dello schermo, far sparire la tastiera, gestire la pressione del tasto indietro (il tasto back, ovvero quello usato per uscire dall'app), più altre utili funzioni.

Trovate un progetto .aia con qualche esempio a questo link.

Saper gestire le proprietà dello schermo, è una skill fondamentale ad esempio, per creare app responsive con app inventor 2, ovvero dei programmi che possono cambiare le dimensioni degli oggetti in essi contenuti, a seconda delle dimensioni dello schermo dell'utente.
Ma questo è solo un esempio delle tante cose che è possibile gestire con la sezione screen di appinventor, il resto lo scoprirete solo con la pratica.

Tornare all'elenco delle lezioni

mercoledì 19 aprile 2017

Convertire secondi in ore / minuti (Mit App Inventor 2)

Qui di seguito andrò a spiegare come costruire una funzione per convertire i secondi in ore e minuti, tramite Mit App Inventor 2.
Tramite questa procedura infatti, che potrete importare nei vostri progetti, potrete mostrare a video una sorta di orologio, che indica il tempo che passa convertito nel formato ore/minuti/secondi.

Vediamo dunque come si fa e cosa serve per creare questa funzione appinventor.

Convertire secondi in ore / minuti (Mit App Inventor 2)

Come convertire i secondi in ore e minuti con Mit App Inventor 2


Per poter realizzare la seguente funzione, occorre aggiungere al nostro progetto, il componente orologio (clock), presente nella sezione Sensori (sensors).

Non starò a spiegare che bottoni aggiungere e che label usare in questo esempio, perchè questa funzione può essere utilizzata per la conversione del tempo in app inventor, sia per creare un orologio che gira in tempo reale, sia per salvare il tempo totale trascorso durante una partita ad un videogioco da voi creato.

La funzione di conversione ore / minuti / secondi, consiste nella creazione di una procedura (procedure), con i seguenti parametri: secondi, minuti, ore, risultato.

Il primo controllo da fare è sicuramente se il valore passato per i secondi è un numero, tramite il blocco della sezione numeri (numbers) chiamato E' un numero? (is number?).

Successivamente andranno fatti i consueti calcoli per dividere le ore ed i minuti, e si potrà utilizzare la funzione dell'orologio chiamata Esegui orologio da millisecondi a minuti (Call clock Duration to minutes duration), alla quale andranno passati i millisecondi (1 secondo x 1000).
Andrà poi fatto lo stesso per le ore con la Esegui orologio da millisecondi a ore (Call clock duration to hours), più altri controlli che non starò qui a spiegare nel dettaglio.

Funzione ora/min/sec

Infine andrà restituito il risultato formattato nel formato desiderato (es. hh/mm/sec), da passare poi tramite la procedura app inventor alla variabile/label da valorizzare.

chiamata alla procedura app inventor

Questa funzione ora/minuti/secondi app inventor 2, chiamiamola così, può ovviamente essere adattata e migliorata per svolgere la conversione del tempo nella maniera che più vi aggrada (es. convertire solo i minuti in ore, i secondi in giorni, ecc...).
A questo link trovate il progetto .aia dove poter scaricare la funzione.

Per usare questa funzione nei vostri programmi, basta importare il progetto, copiare la funzione nel backpack, aprire la vostra app, ed inserire i blocchi copiati nel back pack dentro la vostra app.
Se necessario, rinominare qualche campo, ed ovviamente, aggiungere l'orologio al vostro progetto.

Questa funzione app inventor 2 quindi, risponde alle domande tipo: "quante ore sono 3600 secondi? quanti minuti sono 300 secondi?" ecc... e come dicevo sopra, può essere adattata ad ogni tipo di conversione temporale necessaria.

Al di là della guida in sè comunque, ora sapete come creare una funzione in app inventor, che male non fa.

L'oggetto timer/orologio, può chiaramente essere usato anche per ben altri scopi, ed è uno dei componenti più potenti ed utilizzati in appinventor2.
Quindi, la conoscenza completa di questo oggetto, prima o poi vi tornerà sicuramente utile per la realizzazione di qualche programma o gioco per cellulare android.

Tornare all'elenco lezioni

martedì 18 aprile 2017

Popolare lista da csv (Mit App Inventor 2)

Dopo aver imparato ad usare le liste (lists) in Mit App Inventor 2, sicuramente ti verrà voglia di popolarle non da codice, ma da dei file esterni, presumibilmente dei csv.

Prendi ad esempio la costruzione di un'applicazione che deve comprendere una lista con tante parole, magari catalogate per categorie. Centinaia e centinaia di parole sarebbe un suicidio gestirle all'interno di una lista app inventor, mentre tramite un file con .csv, comodamente apribile da excel, il tutto risulterebbe molto più comodo e veloce.


Come popolare una lista da un file csv in Mit App Inventor 2


Per poter caricare in una list blocks il contenuto presente in un file csv, è possibile utilizzare due specifici blocchi (blocks) di mit app inventor 2, presenti ovviamente nel blocco liste (lists):
  • Lista da riga csv (list from csv row text)
  • Lista da tabella csv (list from csv table)

Popolare lista da csv (Mit App Inventor 2)

Il primo blocco serve nei casi in cui il csv abbia una sola riga (o dei delimitatori speciali al posto dell'acapo), il secondo blocco invece, il più usato lista da tabella csv, crea una lista multipla contenente i valori presenti nelle colonne del csv.

Prendiamo ad esempio un classico csv con una colonna contenente dei nomi e nell'altra delle categorie.


Per poter caricare questo file in app inventor, dovremo usare l'oggetto chiamato File, presente nel menù Archiviazione (storage).

Una volta trascinato l'oggetto file nel visualizzatore (viewer), andiamo nei blocchi a generarne l'azione al click, con Esegui file leggi da nome file (call file read from file name), dove nel nome file scriviamo il nome del file csv (precedentemente caricato nei media della nostra app), preceduto da due barre // (es. //nomefile.csv).

Esegui file leggi da nome file

Adesso bisogna far popolare la nostra lista app inventor con il contenuto del csv, lanciando un'azione alla lettura del file caricato.
Il blocco da utilizzare è Per sempre quando file lettura completata (when file got text), al quale possiamo inserire poi tutti i comandi ed i cicli necessari per poter ripulire i dati appena caricati.

Per sempre quando file lettura completata

Purtroppo infatti, è vero che questi blocchi consentono di caricare in una lista appinventor il contenuto di un file csv, è però anche vero che senza un'accurata pulizia, questi risultano di fatto inutilizzabili.
Potrai infatti trovare dei punti e virgola di troppo, delle parentesi da far sparire con il comando sostituisci (replace), o altro.

Trovi comunque tutti gli esempi necessari dentro un file di progetto .aia scaricabile da questo link, il cui risultato finale è riassumibile in questa immagine:

Risultato finale

Potrò sembrare ripetitivo, ma anche imparare a popolare le liste app inventor tramite file csv, è un'operazione fondamentale per poter sviluppare applicazioni / giochi di un certo spessore.

Torna all'elenco delle lezioni

Stringhe di testo (Mit App Inventor 2)

Altra funzionalità base di Mit App Inventor 2 riguarda le stringhe di testo (text blocks).
Questo tipo di blocchi (blocks) infatti, consente di svolgere operazioni di vario genere sui testi presenti nelle applicazioni e nei giochi, quindi trattasi di un'altra indispensabile funzionalità di appinventor 2.


Come gestire le stringhe di testo (text blocks) in Mit App Inventor 2


Vediamo una rapida carrellata di cosa è possibile fare con i blocchi di tipo testo di app inventor:
  • Casella di testo vuota: consente semplicemente di aggiungere del testo a piacere a qualsiasi altro blocco (ad esempio sulle etichette/label)
  • Unione (join): consente di unire / concatenare più testi / variabili
  • Lunghezza (length): restituisce il valore numerico corrispondente alla lunghezza di qualsiasi variabile o testo
  • è vuoto (is empty): consente di capire se una variabile contiene o meno del testo / un valore
  • Confronta testi < = > (compare texts): ti dice se una variabile testuale è maggiore, uguale o minore di un'altra
  • Ritaglia (trim): toglie gli spazi vuoti all'inizio ed alla fine di un testo (ottima per il parsing)
  • Maiuscolo/Minuscolo (upcase/downcase): converte una stringa app inventor tutta in minuscolo o tutta in maiuscolo (uppercase/lowercase)
  • Posizione del testo nel brano (starts at text piece): indica la posizione di una stringa/parola dentro un testo più ampio (restituisce zero se non trovata)
  • Contiene testo brano (contains text piece): indica se una parola è presente in una frase
  • Dividi testo ad ogni (split text at): splitta in una lista il contenuto di una variabile contenente un particolare delimitatore. Es: la virgola, il punto e virgola (con la possibilità di specificare se si vuole operare solo sulla prima occorrenza)
  • Dividi agli spazi (split at spaces): come sopra, solo che splitta solo nel caso in cui un testo contenga degli spazi
  • Segmenta testo inizio lunghezza (segment text start legth): serve per estrapolare solo una teterminata parte di una frase, operando con dei numeri che individuano in che punto e quanto tagliare
  • Sostituisci in tutto il testo rimpiazzando segmenti con (replace all text segment replacement): praticamente è la funzione replace di app inventor 2, ovvero consente di sostituire una parola all'interno di una frase, con un'altra
  • Testo offuscato (obfuscated text): consente di criptare del testo in modo da rendere un po' più sicure le proprie app, nei casi in cui si debbano passare dei dati sensibili (es. api key)

Stringhe di testo (Mit App Inventor 2)

Ovviamente per tutte queste funzioni ho creato un progetto .aia da scaricare, per poter testare con mano quanto sopra accennato.

Le stringe di testo, o text blocks di app inventor 2, sono uno strumento molto potente, che consente di operare sui testi tramite funzioni a dir poco indispensabili in certi casi.
Sicuramente, nella creazione di un'applicazione per cellulare, si finirà prima o poi ad utilizzare le text blocks, in maniera più o meno approfondita, quindi è bene imparare a conoscerne le potenzialità.

Elenco lezioni

lunedì 17 aprile 2017

Strutture di controllo (Mit App Inventor 2)

Tra i blocchi veramente indispensabili in Mit App Inventor 2, ci sono quelli relativi alle strutture di controllo, qui banalmente chiamati Controllo (control blocks).

Se non provieni da nessun linguaggio di programmazione, questo nome forse ti dirà poco o niente, ma sappi che stiamo parlando delle famose condizioni if then else (se allora altrimenti), dei cicli for, while, ecc... elementi di cui anche app inventor non può certo fare a meno nella costruzione delle applicazioni per cellulare.

Vediamo quindi un po' più nel dettaglio di cosa si tratta.


Come usare le strutture di controllo in Mit App Inventor 2


Il blocco da cliccare per poter accingere alla programmazione tramite strutture di controllo in appinventor, si chiama controllo (control).

Strutture di controllo (Mit App Inventor 2)

La logica che sta dietro a questi blocchi è molto semplice ed intuitiva, in quanto consente di verificare delle condizioni, o svolgere dei cicli ripetuti fino ad una determinata condizione.

Ad esempio il blocco Se allora (if then), al quale è possibile aggiungere (cliccando sull'ingranaggio) altrimenti (else) e altrimenti se (else if), consente di verificare una determinata condizione e di svolgere azioni diverse a seconda che questa sia stata soddisfatta o meno.
Esempio: Se 1+1=2 allora rispondi vero, altrimenti rispondi falso.

If Then Else

C'è poi il ciclo Per ogni numero da a (for each), che consente di fare un loop / giro, per un determinato numero di volte (da usare quando si sa già quante volte si vuole far ripetere un'istruzione).

for each

Il loop Per ogni elemento della lista esegui (for each item in list) è l'ideale per mostrare/sfogliare tutti gli elementi di una lista app inventor.

for each item in list

Poi c'è Finchè test esegui (while test do) che ripete il loop fino a quando una condizione non è soddisfatta.
In questi casi, se si sbaglia a programmare, può capitare di creare loop infiniti che bloccano l'applicazione.

while test do

Poi ci sono una serie di blocchi che consentono di aprire un altro schermo app inventor (screen), e di passargli dei parametri, o di chiudere schermi ed ottenere risultati, insomma per la gestione delle applicazioni multi schermo.

Controlli per lo schermo

In questi ultimi blocchi trovi anche il comando per chiudere l'applicazione app inventor 2, con un semplice click del dito... insomma il classico tasto "chiudi applicazione" / logout / esci.

Qui a questo link puoi scaricare un progetto .aia contenente qualche esempio con le strutture di controllo di app inventor 2, giusto per prendere un po' di dimestichezza con lo strumento più importante di tutta la piattaforma, o quantomeno quello più indispensabile.

Torna all'elenco lezioni

mercoledì 12 aprile 2017

Ordinare una lista alfabeticamente (Mit App Inventor 2)

Tra i vari limiti di Mit App Inventor 2, c'è aimè il fatto che non è possibile ordinare le liste (lists).
Questo in realtà è vero in parte, dato che sì, non esiste una funzione di default che ordina una lista, tuttavia niente ci vieta di crearla, no?

Online sono presenti diverse soluzioni/esempi per ordinare alfabeticamente una lista app inventor, io ne ho trovata tempo fa una, e l'ho riadattata per farla funzionare non solo le liste con valori numerici, ma anche per quelle contenenti delle stringhe di testo.

Ordinare una lista alfabeticamente (Mit App Inventor 2)

Come ordinare una lista alfabeticamente in Mit App Inventor 2


Per poter ordinare una lista in ordine alfabetico su app inventor, occorre crearsi un'apposita funzione.
Bisognerà infatti fare diversi cicli ed utilizzare dei controlli per verificare se ogni singolo elemento della lista, è maggiore o minore (a seconda dell'ordinamento scelto) di quello presente nella posizione precedente all'elemento confrontato.
In buona sostanza, si inizia a sfogliare la lista e si verifica la prima coppia di valori, e nel caso il confronto non soddisfi l'ordinamento scelto, si va ad utilizzare la funzione sostituisci (replace) delle liste, abbinato ad alcune varibiali temporanee da valorizzare durante i vari loop della funzione.

Questa è una di quelle cose che si capisce più facilmente provandola e guardando il codice, piuttosto che spiegandola a parole, quindi fate prima a scaricare la funzione presente in questo progetto .aia, che ripeto, è un riadattamento di una funzione trovata online, applicata ad una piccola e semplice app di prova.

Ordinare lista app invetor

Nell'esempio che ho creato, ci sono due liste app inventor, una numerica ed una con dei nomi.
Si potrà scegliere quale delle due liste ordinare, e se ordinarle in ordine crescente o decrescente.

Come dicevo un po' più sopra, rispetto alla funzione originale, ho aggiunto il controllo Se è un numero (is a number), che consente di gestire delle liste sia numeriche che di testo.

I parametri da passare alla funzione ordinalista sono sostanzialmente due: la lista da ordinare, ed una variabile booleana vero o falso (true o false), dove vero rappresenta l'ordine crescente, mentre falso rappresenta l'ordine decrescente.

L'unico limite di questa funzione app inventor 2, è che, se volete ordinare delle liste con valori alfanumerici, da trattare come se fossero dei punteggi (ad esempio di un gioco), dovrete prima normalizzare questi elementi, facendoli tutti di lunghezza uguale, altrimenti l'ordinamento risulterà sfalsato a seconda della lunghezza dell'elemento analizzato (lo dico per esperienza, dopo aver dovuto ordinare delle liste contenenti i punteggi codificati di un gioco che ho creato).

Tornare all'elenco delle lezioni

martedì 11 aprile 2017

Logica (Mit App Inventor 2)

Quante volte vi è stato detto di usare la logica?
Bene, queste nozioni vi torneranno utili anche in Mit App Inventor 2, anche se non si tratta esattamento del ragionamento logico di cui tanto si parla, ma di blocchi (blocks) di tipo logic, ovvero funzionali alle applicazioni per cellulare.

Dopo questa premessa quasi no sense, ecco che vi spiego brevemente...


Come usare la logica in Mit App Inventor 2


I comandi logici utilizzabili in app inventor sono pochi e basilari, ma bastano comunque a soddisfare tutte le necessità di programmazione per le vostre app.

I blocchi di logica utilizzabili sono i seguenti:
  • Vero (true): usato per valorizzare le varibili di tipo booleano, o per controllare se una condizione è vera
  • Falso (false): come per il vero, solo che ovviamente vale il ragionamento contrario
  • Non (not): serve per le condizioni contrario, del tipo: "se non è vero, allora fai questo"
  • Uguale/Diverso (= / !=): serve per confrontare se due variabili sono uguali o differenti (se nome="pippo" allora)
  • E/O (and / or): importante per concatenare più condizioni, del tipo: se variabile=5 e varibile2=3 oppure variabile 3=4 allora... ovvero se si usa "e" restituisce vero se tutti gli argomenti sono veri, oppure se si usa "o" restituisce vero anche se solo una condizione è vera

Logica (Mit App Inventor 2)

Mi rendo conto che così spiegato forse si capisce poco, per cui ecco un file di progetto .aia nel quale potrete vedere il funzionamento della logica app inventor 2, con qualche esempio concreto.

Non ho molto altro da aggiungere su questa storia (cit.), se non che sicuramente vi troverete ad usare questo tipo di blocchi nelle vostre applicazioni, quindi imparerete ad usarli in maniera quasi naturare ed in automatico.

Tornare all'elenco delle lezioni

domenica 9 aprile 2017

Liste array (Mit App Inventor 2)

La lezione di oggi su Mit App Inventor 2 sono le liste (lists).
Per chi se ne intende di programmazione, le liste in app inventor possono essere (quasi) equiparate agli array.

Una lista è insomma una variabile che contiene altre variabili, una sorta di contenitore che consente di gestire degli elenchi e fare altre operazioni che con una semplice variabile si faticherebbe ad ottenere.

Come con gli array, le liste sono formate da una chiave primaria ed un valore.
La chiave primaria è un numero univoco che identifica il valore contenuto in una certa posizione della lista: ad esempio 1=Cane, 2=Gatto.

Purtroppo però anche questo componente di app inventor ha delle limitazioni più o meno pesanti, soprattutto rispetto ai classici array.
Infatti, le liste possono avere come chiavi primarie solo dei numeri interi, e non c'è una funzione nativa per il loro ordinamento :o

Vediamo più nel dettaglio cosa si può fare con una lista app inventor 2.


Le liste array di Mit App Inventor 2


Per poter utilizzare le liste di app inventor si va nei blocchi (blocks) e si clicca sull'omonima voce, liste (lists).

Come detto sopra, una lista è una variabile, quindi di solito si crea una variabile globale per la nostra lista.
Questa variabile globale poi può essere inizializzata nei seguenti modi:
  • Crea una lista vuota (create empty list): lo si fa quando si vuole valorizzare la lista in seguito
  • Crea lista (make a list): si aggiunge subito l'elenco dei valori alla lista
  • Aggiungi elementi alla lista (add items to list): si aggiungono dei valori/elementi ad una lista precedentemente creata

Se ad esempio volessimo creare una lista di nomi in un colpo solo, dovremmo usare il blocco crea lista ed aggiungere subito gli elementi (ovvero i nomi) scrivendoli a mano con una variabile di tipo testo (text).
Poi volendo, per aumentantare il numero di valori della lista si clicca sull'ingranaggio e trascina l'elemento (item) nella lista.

Liste array (Mit App Inventor 2)

Le possibili operazioni sulle liste di app inventor sono molteplici, vediamone qualcuna.

Sfogliare una lista

Basta utilizzare il ciclo Per ogni, da, a, a salti da, esegui (for each do) combinata con la funzione per sapere la lunghezza di una lista, ovvero: lunghezza della lista (length of list).

Sfogliare lista

Nell'esempio riportato, ho sfogliato la lista e valorizzato un'etichetta (label), separando con la virgola i vari elementi (item) della lista.

Con app inventor 2 è possibile compiere anche altre azioni sulle liste, come ad esempio:
  • estrarre un elemento casuale da una lista
  • sapere se un elemento è in lista
  • sapere se la lista è vuota
  • sapere se una variabile è una lista
  • conoscere l'indice di un elemento della lista
  • rimuovere un elemento
  • svuotare una lista
  • sostituire un elemento
  • copiare una lista in un'altra lista
  • appendere una lista ad un'altra lista
  • popolare una lista con un csv

Per la maggior parte di queste operazioni, ho fatto un esempio in questo progetto .aia, che vale certamente di più di mille parole.

Pur con i loro limiti quindi, le liste app inventor sono un'ottima funzionalità, che vi consentirà di sviluppare delle buone e funzionali applicazioni.

Tornare all'elenco lezioni