Scopo del corso è l'introduzione delle tecniche e degli strumenti più moderni per la programmazione di dispositivi mobili, stimolando lo studente ad acquisire dimestichezza con paradigmi di programmazione e con pattern di sviluppo diffusi in tale contesto.
Il corso mostra l'uso delle principali tecnologie e degli strumenti per sviluppare applicazioni per dispositivi mobili. La prima parte del corso fornirà una panoramica dei principi base su cui lo sviluppo di tali applicazioni si basa, principalmente le limitate risorse computazionali e di memoria dei dispositivi mobili, la forte interazione con l'utente e il pattern di sviluppo MVC (Model-View-Controller), degli approcci per lo sviluppo di questo tipo di applicazioni, dei sistemi operativi più comuni (Android, IOS, Windows 8), dei relativi linguaggi e framework di sviluppo. La parte fondamentale del corso si focalizzerà sulla piattaforma Android: questa parte sarà essenzialmente orientata alla programmazione, i cui costrutti base e avanzati verranno discussi con l'ausilio di molti esempi pratici.
Di seguito il programma dettagliato.
Concetti introduttivi e tecnologie di base - Introduzione all'ecosistema dei dispositivi mobili: caratteristiche dei dispositivi e problematiche tipiche della programmazione di dispositivi mobili (usabilità, consumo della batteria, eterogeneità dei dispositivi, limitate risorse computazionali e di memoria). Il pattern di sviluppo MVC (Model-View-Controller). Sistemi operativi dei dispositivi mobili (Android, IOS, Windows 8). Introduzione agli approcci, ai framework e agli strumenti per lo sviluppo di applicazioni per dispositivi mobili. Applicazioni native e applicazioni Web.
La piattaforma Android - Architettura della piattaforma. Strumenti e framework di sviluppo. Componenti di base. Principali API di Android. Programmazione concorrente. Animazioni e grafica. Strumenti per la gestione e la memorizzazione dei dati. Multimedialità. Uso dei sensori. Servizi.
Concetti introduttivi e tecnologie di base - Introduzione all'ecosistema dei dispositivi mobili: caratteristiche dei dispositivi e problematiche tipiche della programmazione di dispositivi mobili (usabilità, consumo della batteria, eterogeneità dei dispositivi, limitate risorse computazionali e di memoria). Il pattern di sviluppo MVC (Model-View-Controller). Sistemi operativi dei dispositivi mobili (Android, IOS, Windows 8). Introduzione agli approcci, ai framework e agli strumenti per lo sviluppo di applicazioni per dispositivi mobili. Applicazioni native e applicazioni Web.
La piattaforma Android - Architettura della piattaforma. Strumenti e framework di sviluppo. Componenti di base. Principali API di Android. Programmazione concorrente. Animazioni e grafica. Strumenti per la gestione e la memorizzazione dei dati. Multimedialità. Uso dei sensori. Servizi.
I lucidi presentati a lezione e gli esercizi sviluppati in aula (testi e soluzioni) verranno resi disponibili e costituiscono parte integrante del materiale didattico necessario alla preparazione. Il contenuto delle lezioni potrà essere integrato anche con materiali, tutorial, siti Web disponibili in rete (i cui link verranno suggeriti di volta in volta a lezione) e con i seguenti libri di testo suggeriti:
- J.F. Di Marzio, "Android: A PRogrammer's Guide", McGraw-Hill
- S. Conder and L. Darcey, "Android wireless application development", Addison-Wesley
- S. Hoober and E. Berkman, "Designing Mobile Interfaces", O'Reilly
- T. Mikkonen, "Programming Mobile Devices: An Introduction for Practitioners", Wiley
Il corso avrà un taglio prevalentemente orientato alle applicazioni. Il corso verrà erogato in lezioni settimanali (in cui verranno forniti i concetti e le nozioni necessarie per svolgere gli esercizi) e attività di laboratorio, in cui gli studenti potranno mettere concretamente in pratica le nozioni acquisite. Durante il corso, verranno proposti molti esempi, alcuni dei quali sviluppati con gli studenti durante le attività di laboratorio.
L'esame consiste in una prova scritta e nello sviluppo di un'applicazione per dispositivi mobili.
-