Mobile Applications

Relatore: Stefano Sanna


Introduzione al Mobile Computing Il Mobile Computing rappresenta uno degli ambiti applicativi piu' interessanti della computer science. Telefoni cellulari, computer palmari, navigatori satellitari, sistemi automotive e di telecontrollo racchiudono un concentrato di tecnologia di alto livello: hardware efficiente, sistemi operativi sofisticati, interfacce utente rivoluzionarie, moduli di comunicazione integrati. Il numero sorprendente di esemplari venduti (oltre un miliardo di pezzi ogni anno) e la grandissima varieta' di utenti coinvolti (qualsiasi individuo) rendono questo settore particolamente interessante per le sfide che intriduce nell'interazione uomo-macchina.

Mobile Platform e Mobile Device Lo studio dell'HMI con dispositivi mobili non puo' prescindere da una ricognizione sulle piattaforme esistenti e le famiglie di dispositivi disponibili sul mercato. L'obiettivo di questa parte del corso e' duplice: conoscere cio' che e' oggi disponibile e acquisire la competenza per scegliere piattaforma software e dispositivo piu' adatto a risolvere un problema applicativo assegnato.

HMI su dispositivi mobili La progettazione di interfacce utente dei dispositivi mobili affronta numerose specificita' non presenti nell'ambito PC. Il primo aspetto, spesso trascurato, riguarda la tipologia di utenti: non tecnici, in generale persone non necessariamente possesso di specifiche abilita' nell'uso del calcolatore. L'interazione con il dispositivo deve essere semplice ed immediata, basata su linguaggi e comportamenti universali. Vi sono poi i vincoli di dimensioni (display e tastiera, se presente), di mobilita', di utilizzo in condizioni non ottimali (ad esempio, in ambienti affollati o con illuminazione sfavorevole). L'iniziale approccio nella progettazione basato su una trasposizione dei concetti tipici dell'ambiente PC attraverso un semplice ridimensionamento/riduzione delle funzionalita' e' oggi pressoche' abbandonato e lo studio delle interfacce utente e' basato su pattern e interazioni ad hoc. Le moderne interfacce utente hanno bassa profondita' di navigazione e interazione single-hand single-finger, con un numero ridotto di passi per raggiungere la funzionalita' desiderata. In questa sezione del corso si acquisiranno i concetti fondamentali della progettazione e implementazione delle interfacce utente per le famiglie di terminali piu' diffuse (telefoni con tastierino numerico e con tastiera qwerty, dispositivi touch screen, tablet) utilizzando come riferimento i principali terminali commerciali, attraverso frammenti di codice in diversi linguaggi di programmazione.

Mobile sensor: l'evoluzione della HMI Le interfacce tradizionali basate su display, tastiera, controller rotativi e schermi tattili sono oggi affiancate da uno o piu' sensori installati sul dispositivo, che arricchiscono l'interazione con l'utente. Accelerometri, lettori RFID/NFC, GPS e sensori ambientali consentono di automatizzare operazioni tediose (input manuale) o facilitare l'accesso a periferiche e servizi. Saranno mostrati alcuni esempi applicativi su dispositivi reali.

Ambient interaction e capillary computing La disponibilita' di molteplici interfacce di comunicazione (Bluetooth, WiFi…) e di sensori a bordo ampliano i contesti di utilizzo dei terminali mobili, che diventano interfacce universali per l'accesso ai servizi interattivi di un ambiente e al tempo stesso sistemi portatili di acquisizione di dati. Il corso si chiude con una panoramica delle applicazioni di ambient interaction (domotica, automazione, sicurezza) e di capillary computing (monitoraggio ambientale, controllo del traffico, sicurezza), con esempi basati su Arduino e Sun SPOT.