Sistemi Mobili e Wireless Introduction Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it
Sistemi mobili e wireless: definizione Mobili: sistemi portatili che possono essere utilizzati on the move Wireless: sistemi che non richiedono cavi per il loro funzionamento e la comunicazione con altri sistemi Nella società odierna, i sistemi mobili e wireless giocano un ruolo significativo nella vita delle persone Le persone svolgono sempre più attività in mobilità Sempre più dispositivi stanno acquisendo funzionalità wireless (telefoni, computer, macchine fotografiche, elettrodomestici, ) Molti servizi sono disponibili in modalità mobile (e-mail, web, TV, ) 2
Sistemi mobili e wireless: tipi (Telecomandi & co.) Pager Media devices Cellulari Feature phone Smartphone
Sistemi mobili e wireless: tipi Tablet Console Work-oriented devices Navigatori Smart watch (...)
Focus del corso Il corso si focalizzerà principalmente su smartphone/tablet e le relative tecnologie, applicazioni e servizi 5
Finalità del corso Il corso vuole fornire le competenze necessarie alla progettazione ed alla realizzazione di applicazioni e servizi per dispositivi mobili quali smartphone e tablet Verranno esplorati gli aspetti peculiari che caratterizzano e distinguono l'ambito mobile rispetto a quello desktop Verranno analizzate le piattaforme esistenti per lo sviluppo di applicazioni e servizi mobili Verranno studiate le tecniche utilizzate per progettare ed implementare applicazioni e servizi all'utente su dispositivi mobili, con particolare riferimento alle soluzioni web-based ed alla piattaforma Android 6
Prerequisiti Al fine di poter seguire proficuamente la parte del corso relativa allo sviluppo di applicazioni mobili, è preferibile avere conoscenza delle nozioni di base relative alle tecnologie web (parte web-based) e di programmazione ad oggetti (parte Android) Le lezioni sullo sviluppo di applicazioni saranno comunque molto pratiche (è opportuno portarsi un portatile in aula) e tratteranno i vari concetti in modalità passo-passo 7
Materiale per il corso Slide fornite a lezione (vedere anche slide del corso di tecnologie Web) Libri: Tecnologie web (generale): Jennifer Niederst Robbins, Learning Web Design, 4th Edition, O'Reilly, 2012 Android: Reto Meier, Professional Android 4 Application Development, John Wiley & Sons, 2012 Progettazione applicazioni mobili: Jakob Nielsen, Raluca Budu, Mobile Usability, New Riders, 2013 Risorse web: Android Developer's Documentation: http://developer.android.com/develop/index.html 8
Esame Progetto: ideazione/sviluppo di un'applicazione per dispositivi mobili (qualsiasi piattaforma va bene) che abbia qualche relazione con il concetto di mobilità e sfrutti possibilmente una o più tecnologie wireless (e.g., GPS, Web service, NFC, Bluetooth) Il voto finale dell'esame dipende esclusivamente dal progetto 9
Progetto (PN) Per gli studenti del corso di Pordenone ci sono le seguenti possibilità per svolgere il progetto: Implementare un'applicazione scrivendone il codice. Non è necessario che l'applicazione giri su un dispositivo mobile fisico, è sufficiente che funzioni su un emulatore (tipicamente fornito con gli strumenti di sviluppo per una data piattaforma, come Android). Implementare un'applicazione Android utilizzando strumenti di più alto livello come App Inventor o PhoneGap. Creare un prototipo di applicazione sfruttando strumenti di prototipazione rapida (non bastano le singole schermate, mi aspetto un prototipo dinamico con cui si possa interagire, anche se le funzionalità dell'applicazione sono solo simulate). 10
Progetto criteri di valutazione Attinenza al contenuto del corso: il progetto è relativo ad un'applicazione per dispositivi mobili? utilizza tecnologie wireless? Originalità: l'idea alla base dell'applicazione è interessante/originale? l'applicazione offre funzionalità non comuni? l'applicazione sfrutta tecnologie esistenti in modo diverso dal solito? Complessità: l'applicazione è ricca di funzionalità? le funzionalità sono coerenti ed integrate tra loro? quante e quali tecnologie wireless vengono utilizzate? è stato necessario implementare algoritmi/soluzioni specifiche per risolvere particolari problematiche? Usabilità: l'applicazione funziona in modo corretto? l'interfaccia è strutturata in modo da facilitare l'interazione con l'utente? il design dell'interfaccia è curato e coerente? Documentazione: il codice è adeguatamente commentato? la relazione spiega chiaramente e in dettaglio l'idea, le funzionalità del prototipo, le soluzioni tecniche adottate? 11
Progetto suggerimenti Potete sviluppare applicazioni di qualsiasi tipo (giochi, produttività personale, messaggistica, servizi informativi, guide turistiche, sistemi di pagamento, lavoro collaborativo,...) ma... non siate troppo banali (evitate la solita app che mostra i punti di interesse di una città) Potete sviluppare il progetto in gruppo (max 2 persone) L'originalità non è essenziale ai fini del progetto... ma aiuta Potete chiedermi se l'idea che volete implementare va bene (cioè non è fuori tema ) ma non vi darò una valutazione preventiva della qualità dei progetti Dopo aver esaminato il progetto vi darò una valutazione. Se la valutazione è negativa o il voto non vi va bene, avete la possibilità di effettuare una sola iterazione per correggere eventuali problemi emersi in fase di analisi del progetto o aggiungere funzionalità mancanti 12