Screen Arrangement
Button
Label
CheckBox
CheckBox a scelta multipla
Canvas caricare e sostituire immagine
Canvas Disegnare e salvare immagini
Ball
Ball Griglia Palla Sponde
Ball Collisione e suono
Ball(Heading)
Sprite racchetta
Clock proprietà
Clock Cronometro con tempo intermedio
OrientationSensor
LocationSensor
AccelerometerSensor
BarcodeScanner
Con App Inventor 2, il programmatore sceglie componenti e implementa eventi e metodi assemblando blocchi di codice predisposti eliminando possibilità di errori sintattici.
In questa guida sono presentati gran parte dei componenti, per ognuno è presentata almeno un’App con codice commentato.
Con AI2,per la gestione di database in rempot è messo a disposizione FusionTablesControl, nella guida è descritto SQL per query, Select, Insert, Update, Delete ecc.
Vai alla pagina
App Inventor 2 con database MySQL è una guida passo-passo per scrivere applicazioni Android che utilizzano database MySQL residenti in Internet.
Il compito è svolto in sinergia fra i componenti Web, WebWevier e Sharing di App Inventor e database MySQL.
La trasmissione dati fra App Android e database MySQL è realizzata mediante interfaccia php appositamente scritta e ampiamente documentata.
Con questo metodo le App assemblate con App Inventor possono condividere un database su server remoto il cui contenuto è possibile aggiornare utilizzando un normale browser web.
Vai alla pagina
Please fill in the following form to contact us
![]() ![]() In questa App, viene utilizzato lo spazio http://usfwebservice.appspot.com/ dal titolo: Non attivo dal marzo 2014. Vedere http://appinvtinywebdb.appspot.com/ e/o http://appinventorapi.com/program-an-api-python/ App Inventor for Android: USF Tiny WebDB Service. Il servizio web è progettato per funzionare con App Inventor per Android e il componente TinyWebDB. Il sito è progettato per l'utilizzo di applicazioni in esecuzione sul telefono (tramite richieste JSON). In questa pagina per mezzo di due link è possibile provare il meccanismo.
Questa applicazione mostra l’uso del componente TinyWebDB sia in lettura che in scrittura.
I dati nello spazio web sono persistenti, ma poiché lo spazio messo a disposizione per i test è limitato e soggetto a sovrascritture, in questa applicazione TinyWebDB è stato inserito un pulsante al cui click vengono memorizzati, a nuovo, i dati di avvio. Il servizio utilizzato è utile per i test, ma essendo condiviso fra tutti gli utenti di App Inventor, alla fine i dati potranno essere sovrascritti. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Componenti e proprietà da assegnare:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Come dovrebbero presentarsi la pagina Design e l’Emulatore: ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Aprire Blocks Editor![]() Per utizzare un Tag diverso altro è sufficiente cambiarlo nel blocco text e inizializzare il programma. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All’avvio nel blocco Screen1.Initialize viene assegnato il valore Tabella_Nomi alla variabile TabellaNomi. Questo è il Tag con cui verà letto il Value. Con il blocco TinyWebDB.GetValue viene letto il Value contenuto nella variabile TabellaNomi. Normalmente verranno trovati i valori scritti in precedenza, ma potrebbero essere diversi o inesistenti perché lo spazio messo a disposizione per i test è soggetto a sovrascritture di altri. In questo caso utilizzare il pulsante ScriveTabella_Nomi per inizializzare manualmente. ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Immediatamente dopo TinyWebDB.GetValue, va in esecuzione TinyWebDB.GotValue ed i blocchi in esso contenuti. Qui ritorna il valore ricevuto in lettura. Il risultato viene messo a video nella Label lContenuto_Tabella_Nomi. Viene anche suddiviso in parti ai punti | inserendo le voci risultanti nella lista Elenco_Nomi. La lista Elenco_Nomi viene poi inserita nei due ListPicker, rispettivamente per lettura ed eliminazione. TinyWebDB.GotValue sarà sempre in esecuzione dopo ogni aggiunta e cancellazione. Programmando al suo “do” permette di tenere aggiornati ListiPicker e Label. ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Per aggiungere un nuovo nome, esso deve essere scritto nel TextBox tbAggiungi_Nome. Al click nel TextBox compare la tastiera virtuale ed è possibile digitarlo. Il carattere vietato è | perche il sistema lo scambierebbe per divisorio fra nomi. Una volta terminato di scrivere fare click sul pulsante Aggiungi_Nome. Andranno in esecuzione i blocchi che eseguono la scrittura sul server web ed aggiornano i componenti. I blocchi sono assemblati in due gruppi. 1. Pulsante bAggiungi_Nome al cui click viene lanciata l’azione. a. Chiama poi la Procedura Aggiunge_Nome che esegue materialmente l’aggiunta. b. Ritorno dalla procedura, rilegge i dati appena inseriti perché nel blocco GotValue vengano aggiornati i componenti. (ListPicker e Label). 2. Procedura Aggiunge_Nome, qui viene materialmente scritto il nuovo valore. a. StoreValue al cui Tag viene inserito il Value. b. Value viene composto in make text con il Value esistente (la lista dei nomi) a cui vengono aggiunti, il contenuto del TextBox tbAggiungi_Nome e | (divisorio fra nomi). c. Viene vuotato il TextBox tbAggiungi_Nome d. Nascosta la tastiera virtuale. ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Eliminare un nome è simile ad aggiungerlo, quello cha cambia è l’elaborazione del Value, cioè della stringa di testo che contiene la lista dei nomi. Il nome da cancellare viene fatto scegliere dalla lista del ListPicker lpElimina_Nome, con questo metodo vengono evitati errori di battitura. I blocchi sono assemblati in due gruppi. 1. ListPicker lpElimina_Nome al cui evento AfterPicking viene lanciata l’azione. a. Chiama la Procedura Elimina_Nome che esegue materialmente la cancellazione. b. Ritorno da procedura, vengono riletti i dati appena inseriti perché nel blocco GotValue vengano aggiornati i componenti. (ListPicker e Label) 2. Procedura Elimina_Nome, esegue materialmente la cancellazione. Il blocco lpElimina_Nome.Selection contiene il nome da eliminare scelto in ListPicking. a. Il nome viene messo a video nella Label lNome_Eliminato.Text b. Con replace all viene eliminato da lContenuto_Tabella_Nomi.Text il nome selezionato nel ListPicker lpElimina_Nome.Selection più | che è il divisorio fra nomi. Tutto è copiato in Nomi_DopoEliminazione.Text inserendo così il risultato a video. c. Con TinyWebDB.StoreValue viene scritto il nuovo Value. ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Con un click sul pulsante bScriveTabella_Nomi è possibile rigenerare il database ai valori di default.![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In questa App d'esempio è stato utilizzato un servizio condiviso fra tutti gli utenti di App Inventor, alla fine i dati potranno essere sovrascritti. Per la scrittura e successiva distribuzione di proprie App è necassario un servizio Web non condiviso con altri programmatori. Il database potrà essere testato anche in locale ed una applicazione Payton d'esempio rende tutto molto semplice e trasparente. Le indicazioni su come fare, possono essere ricavate dal libro "Usare App Inventor; scrivere e distribuire App per cellulari e tablet Android". ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |