AppInventor 2 Giuseppe Latini Scopo Mi chiamo Giuseppe Latini, sono un appassionato di software Open Source, lavoro nel settore IT di una banca, personalmente non vendo nulla, sono qui per pura passione e per il gusto di raccontarvi AppInventor in cui mi sono imbattuto casualmente qualche mese fa e da cui fui subito affascinato, ringrazio l'amico Luciano Sereni il quale mi passò il link che ci fu utile alla realizzazione di un piccolo progetto in connubio con Arduino. Ringrazio anche il collega Gianluca Bompadre che mi ha aiutato a modificare il footer della presentazione, operazione non semplicissima per chi non conosce bene Impress. La trattazione è rivolta ai principianti, quindi si cercherà di non dare nulla per scontato. Premetto che non conosco tutto sull'argomento ed anzi mi auguro di uscire dall'aula arricchito dalla discussione che avremo fatto insieme! Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 2 Che cos'è AppInventor? Si tratta di uno strumento utile alla realizzazione di App per Android in modo abbastanza intuitivo, senza dover conoscere o imparare la sintassi di alcun linguaggio di programmazione! Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 3 Cenni di storia, versione 1 Fu creato da Google come strumento di insegnamento per i programmatori alle prime armi. Ambiente molto intuitivo, grazie a blocchi di colori e forme diverse che si compongono come in un puzzle. Il 10 agosto 2011 però Google comunicò che il progetto App Inventor sarebbe stato chiuso il 31 dicembre 2011. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 4 Cenni di storia, versione 2 Fu allora che entrò in azione il MIT (Massachusetts Institute of Technology) prendendosi in carico il progetto di App Inventor e facendolo diventare App Inventor Edu, chiamato anche MIT App Inventor 2. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 5 Cosa serve per cominciare? Uno smartphone con Android; App: “MIT AI2 Companion” dal Play Store; Un computer non importa quale S.O. Purché supporti Chrome; Il browser Google Chrome; Una rete wifi (o i driver USB per lo smartphone); Un account Google (oppure Ai2LiveComplete) Connessione ad internet (oppure Ai2LiveComplete). Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 6 Allora cominciamo online! Puntiamo il browser Chrome a questo indirizzo: http://ai2.appinventor.mit.edu/ Verrà richiesto di autenticarci inserendo un account Google, per es. Gmail; Una volta eseguito il logon andremo sul menù “Project” e selezioneremo la voce “New Project” A quel punto verrà aperta la schermata web di sviluppo in modalità “Design”. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 7 GUI di sviluppo - Design Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 8 Aggiunta elementi al progetto Oltre agli elementi di input, output, sensori, presentazione, memorizzazione e comunicazione, scegliendo fra una grande varietà a seconda delle nostre necessità, avremo la possibilità di aggiungere anche diverse schermate oltre la principale che non può essere rinominata od eliminata. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 9 Elementi principali Nel menù di sinistra troveremo tutti gli elementi (visibili o no) che sarà possibile utilizzare trascinando al centro dello schermo “Drag & Drop” per aggiungere effetti e funzioni alla nostra applicazione, cercheremo di comprendere come utilizzarli e dove trovare ciò che potrà fare al nostro caso. Infine nel pannello di destra sarà possibile rinominare gli identificativi degli elementi ed impostarne le specifiche proprietà iniziali, come ad esempio colore allineamento, dimensione font, valori, etc. alcune di esse potranno all'occorrenza essere variate dall'applicazione durante il runtime Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 10 Elementi principali continua... Alla destra di ogni elemento troveremo un cerchio con all'interno un punto interrogativo, l'help! Cliccandoci avremo una breve panoramica sulle funzionalità, se non dovesse bastarci, potremo cliccare sul link “more information” per avere maggiori dettagli! Nelle prossime slides vedremo una panoramica sugli elementi che sarà possibile aggiungere. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 11 Palette: Layout Troviamo 3 elementi: HorizontalArrangement, TableArrangement. VerticalArrangement essi ci consentiranno di collocare al meglio tutti gli altri elementi visibili nel pannello della nostra app. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 12 Palette: User Interface Sono attualmente composte da 14 elementi fra i quali: bottoni, etichette, varie caselle di testo, checkbox, selezionatori di data, selezionatori di ora, notifiche, browser web, etc. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 13 Palette: Media Composta da 10 Oggetti per riprodurre file sonori e video, registrare suoni foto e video, sintetizzare effetti sonori, pronunciare testo, digitalizzare audio in testo, tradurre fra diverse lingue. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 14 Palette: Drawing and Animation Canvas Ball ImageSprite Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 15 Palette: Sensor AccelerometerSensor (misura accel) BarcodeScanner (con app esterna) Clock (timer) Location (gps) NearField (funzionalità NFC) OrientationSensor (bussola) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 16 Palette: Social ContactPicker EmailPicker PhoneCall PhoneNumberPicker Sharing (condivide su diversi ambienti) Texting (invia e riceve SMS) Twitter (condivide specificamente su Twitter) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 17 Palette: Storage File FusiontablesControl TinyDB TiniWebDB Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 18 Palette: Connectivity ActivityStarter BluetoothClient (es: per HC06) BluetoothServer Web (HTTP GET, POST, PUT, and DELETE requests) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 19 Palette: LEGO© MINDSTORM© Questo gruppo di elementi è orientato ad una specifica applicazione, contiene una serie di oggetti in grado di colloquiare con il Robot ntx della Lego© vedi progetto su: http://www.nxtprograms.com/ Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 20 Passiamo ora a collegare i blocchi! Una volta inseriti tutti gli screens e elementi dei quali pensiamo di aver bisogno, passiamo a collegare i blocchi per implementare le funzionalità della nostra APP, quindi clicchiamo sul bottone “Blocks” Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 21 Considerazioni sui blocchi Occorre tener presente che le varie schermate che andremo ad aggiungere sono “isolate” fra di loro, ovvero i blocchi e le variabili anche se definite a livello globale sono utilizzabili solo nella schermata in cui sono stati collocati! Il modo più pratico per passare informazioni fra le schermate è quello di avvalaersi di uno storage, ad esempio “File” o meglio “TinyDB”. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 22 Elementi del menù Blocks Nel menù di sinistra troviamo i vari blocchi disponibili raggruppati in 3 sezioni: Built-in (quelli forniti dal sistema) ScreenX (quelli aggiunti in precedenza alla schermata corrente X) Any component (utili per organizzare e gestire gli oggetti in liste) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 23 Blocks: Built-in Control (elementi per il controllo procedurale, ciclico e decisionale) Logic (definisce costanti True e False e le operazioni logiche di base, come NOT, OR ed AND) Math (test, operazioni e conversioni su operandi numerici) Text (varie operazioni sui testi, concatenamenti, frazionamenti, comparazioni e test) Lists (permette di creare delle liste di elementi per essere trattate in modo ciclico, un surrogato degli arrays) Colors (definisce i colori di base e permette di creare colori personalizzati) Variables (consente la gestione di variabili private e pubbliche) Procedures (consente di definire subroutine e funzioni che ritornano un valore al chiamante, per razionalizzare il progetto raggruppandovi i blocchi che vengono richiamati in più punti) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 24 Blocks: ScreenX In questo raggruppamento troveremo elencati tutti i blocchi relativi agli elementi che avremo inserito nella schermata X. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 25 Blocks: Any Component In questo raggruppamento troveremo elencate tutte le tipologie relative agli elementi che avremo inserito nella schermata X, denominate “Any Buttons, Any Labels”, utili per essere gestiti tramite le Lists. (in Built-in) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 26 Come comporre i blocchi Cliccando sul nome dell'elemento nella parte sinistra, verranno visualizzate tutte le sue funzionalità, colorate diversamente a seconda della tipologia ed aventi degli incastri per facilitarne il collocamento, se si cercherà di incastrare dei blocchi non compatibili fra di loro, l'operazione sarà rigettata, vedremo proprio il blocco allontanarsi dall'incastro, queste facilitazioni ci aiuteranno a capire come muoverci. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 27 Debugging della nostra APP Quando penseremo di aver completato tutta o una porzione della nostra app possiamo attivare la funzione di debugging per verificarne all'istante la funzionalità! Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 28 Come avviare il Debugging Dal menù Connect, selezionare “All Companion”, apparirà un qrcode, a quel punto sullo smartphone collegato in wifi, attivare l'app “MIT AI2 Companion”, quindi cliccare sul bottone “scan QR code” e far leggere il codice apparso a video in precedenza e... boom! La nostra APP sarà eseguita sullo smartphone ed avremo la possibilità di interagire sulla consolle per modificarne il funzionamento al volo e correggerne eventuali errori! Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 29 La nostra APP è pronta Una volta terminate le attività di debugging, possiamo prelevare l'APP tramite il menù “Build” tramite due funzioni: App (Provide QR code for .apk) App (Save .apk to my computer) Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 30 ● App (Provide QR code for .apk) L'installazione può essere fatta utilizzando la stessa app che abbiamo già usato per il debugging “MIT AI2 Companion”, quindi cliccando sul bottone “scan QR code” e facendo leggere il codice che apparirà a video dopo aver atteso il termine della compilazione. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 31 ● App (Save .apk to my computer) Questa funzione ci scaricherà il file .apk sul nostro computer, all'interno della cartella che sceglieremo, in questo modo potremo facilmente distribuirla su più dispositivi, pubblicarla su siti online e previo ulteriore trattamento e dopo esserci registrati, anche sul Play Store di Google. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 32 Occorre tener presente che... Nel caso in cui installeremo la nostra APP senza avvalerci del Play Store, sarà indispensabile attivare sul dispositivo, la funzionalità di accettare .apk da sorgenti sconosciute, al termine dell'installazione potremo per sicurezza disattivare tale funzionalità. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 33 Proviamo a scrivere insieme la prima app! Ora proviamo a seguire insieme la realizzazione di una semplicissima App in grado di eseguire un'operazione matematica fra due numeri inseriti in altrettante textbox alla pressione di un bottone. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 34 Lista della spesa Vediamo prima come funziona questa semplice APP, dopodiché passiamo ad analizzarne gli elementi ed i blocchi per capire in dettaglio com'è stata realizzata, partiamo dalla Procedura: “Capitalization”, per poi andare ai bottoni “Salva” e “Annulla”, il resto sarà coinvolto automaticamente. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 35 AI2 Offline E' possibile scaricare “AI2 Offline” prodotto per attivare un ambiente AppInventor “standalone”, particolarmente utile se vogliamo sviluppare un'APP e ci troviamo in una zona sprovvista di connessione ad internet, in questo caso per debuggare le app, sullo smartphone andrà installata una particolare versione della “MIT App Inventor 2 Companion Version: 2.19ai2” contenuto nel file compresso di Ai2LiveComplete), vedi links nelle slides conclusive. Nel casi si utilizzi la predetta versione dell'app Companion in ambiente online, il sistema ne proporrà l'aggiornamento, che è consigliabile evitare qualora in seguito s'intenda utilizzare di nuovo anche la componente offline. Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 36 Limitazioni La limitazione più grande al momento è la mancanza di strumenti per la creazione di un servizio, per questo motivo qualcuno parla del prodotto come di un'auto senza ruote, anche se si può in qualche modo superare il problema tramite “Tasker” vedi links nelle slides conclusive. Manca la gestione degli arrays, occorre pertanto organizzare il lavoro con criteri differenti ad esempio con le liste Anche se è possibile effettuare le operazioni “più standard”, alcune classi per implementare servizi molto particolari potrebbero non essere ancora previste Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 37 Urls utili Accesso: http://ai2.appinventor.mit.edu/ AiLiveComplete: “AppInventorOffline_02May14.zip” http://sourceforge.net/projects/ailivecomplete/files /?source=navbar Istruzioni di installazione di AiLiveComplete: http://www.youtube.com/watch?v=hu9gwjRhC2E Avvio come servizio: https://code.google.com/p/app-inventor-forandroid/issues/detail?id=32 Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 38 Buon lavoro e... GRAZIE PER L'ATTENZIONE Linux Day 2014, Perugia – 25 ottobre 2014 Giuseppe Latini – MIT App Inventor 2 39
© Copyright 2024 Paperzz