{{tag>museiscientifici}} {{:barra-musei-storici-small.png}} ====== Automatic message ====== {{:museiscientifici:vincenzocuoco_napoli:download.png?400}} ====== Introduzione ====== Uno dei problemi maggiori riscontrati dalla nostra generazione, e non solo, è l’utilizzo smodato dello smartphone, da cui non ci si riesce a staccare nemmeno durante la guida. Infatti, è in continuo aumento il numero degli incidenti stradali causati dalla distrazione dall’uso del cellulare. Per questo motivo abbiamo pensato ad un’app che possa limitarne l’uso, aiutando il conducente a rispondere automaticamente ai messaggi mentre è impegnato a guidare. Per realizzare quest’applicazione abbiamo utilizzato un programma chiamato MIT App Inventor. {{:museiscientifici:vincenzocuoco_napoli:1.jpg}} ===== Materiale utilizzato ===== MIT App Inventor è un ambiente di sviluppo per applicazioni Android, creato da Google, e ora di proprietà del Massachusetts Institute of Technology. È stato creato per persone che volessero programmare semplici applicazioni per Android ad uso personale, ma eventualmente possono anche essere pubblicate sullo store di Google. L’interfaccia di App-Inventor è costituita dalla** Main Bar**, che è la barra principale di gestione del progetto, dalla quale è possibile gestire gli screen (aggiungere nuove viste o eliminare viste esistenti), effettuare tutte le operazioni di project management, eseguire la build di una app ed altro ancora. Abbiamo poi due schermate principali chiamate Designed View e Block View: nella prima si sviluppa il layout dell’app, ossia si costruisce la sua interfaccia grafica, mentre nella seconda si inserisce il codice vero e proprio dove è possibile trascinare i componenti prelevati dalla Components Palette. Quest’ultima è la palette contenente i componenti che permettono la costruzione dell’interfaccia grafica e del layout, ma anche di gestire tutte le periferiche presenti sul nostro Smartphone; inoltre, consentono di eseguire operazioni avanzate, come ad esempio l’interfacciamento con i social, la gestione dello storage e della connettività. Le sue componenti sono: * **Blocks Palette**, la quale contiene nella prima parte, tutti i blocchi base, come i blocchi logico/matematici, i blocchi per il controllo di esecuzione, le varie costanti e le varie operazioni di base che sono eseguibili sui blocchi, mentre nella seconda parte, i blocchi specifici dei vari componenti del progetto e tale sezione si popola man mano che i componenti vengono aggiunti alla View lato design; * **Blocks Viewer**, questa è la sezione nella quale viene creato il codice grafico, trascinando all’interno di essa i vari blocchi presenti della Blocks Palette; per impedire errori nelle connessioni i blocchi in App Inventor sono sagomati a forma di puzzle e si possono incastrare tra di loro solo se risultano compatibili. ===== Realizzazione dell’app ===== La nostra app invia un messaggio in automatico quando ne riceve uno. La Designed View del nostro progetto è costituita da sette componenti visibili e tre non visibili. Quelle visibili sono: * **Screen** è il componente nel quale vengono visualizzate informazioni e immagini in un determinato momento. Ruotando il dispositivo, lo screen può ruotare rendendosi; * **HorizonalArrangement** è un elemento di formattazione con cui si posizionano i componenti che devono essere visualizzati orizzontalmente da sinistra a destra; * **Label** è l’elemento in cui viene visualizzato il testo, che viene specificato tramite la proprietà Text. Nel nostro caso è il messaggio automatico: “Sono occupato, ti chiamo dopo”; * **Button** è un pulsante con la capacità di rilevare il click degli utenti. Nella nostra app serve per inserire una risposta alternativa al messaggio preimpostato; * **Image** attraverso cui è possibile rappresentare immagini. Nel nostro caso abbiamo raffigurato una matita; * **CheckBox** è una casella di controllo che genera un evento quando l’utente fa click su di esso. Qui ha la funzione di abilitare la lettura vocale del messaggio ricevuto. {{:museiscientifici:vincenzocuoco_napoli:9.jpg}} Quelle non visibili sono: * **SMS1** che gestisce l’invio e la recezione dei messaggi di testo; * **TextToSpeech1** che trasforma un testo in un parlato attraverso un sintetizzatore vocale; * **TinyDB1** che memorizza (e leggere) dati all'interno di un database (estremamente semplificato) mediante un meccanismo di tags. {{:museiscientifici:vincenzocuoco_napoli:8.jpg}} La **Block View** del nostro progetto è composta da quattro blocchi: • Nel primo blocco viene detto all’applicazione che quando il Button viene cliccato deve comparire una casella di testo in cui inserire la risposta da inviare; {{:museiscientifici:vincenzocuoco_napoli:2.jpg}} • Nel secondo blocco viene detto all’applicazione di inviare il messaggio impostato ogni volta che se ne riceve uno e se spuntata la CheckBox leggere ad alta voce il messaggio; {{:museiscientifici:vincenzocuoco_napoli:3.jpg}} • Nel terzo blocco l’applicazione memorizza il messaggio scritto nella casella di testo una volta cliccato il Button invia; {{:museiscientifici:vincenzocuoco_napoli:3.jpg}} • Nel quarto blocco l’applicazione memorizza in un database il testo default, ovvero “Sono occupato, ti chiamo dopo”, in assenza di interventi. {{:museiscientifici:vincenzocuoco_napoli:4.jpg}} ===== Conclusioni ===== Questo progetto ci ha permesso di avvicinarci al mondo della programmazione. Abbiamo testato la nostra app e funziona come atteso. Iacovelli Martina - Cimbalo Federica - Nardelli Salvatore - Viscardi Carla