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. Verranno anche forniti dei cenni sulla piattaforma IOS e sul linguaggio di programmazione Objective-C.
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.
La piattaforma IOS (cenni) - Introduzione alla piattaforma IOS. Architettura generale. Il linguaggio Objective-C. Il framework CocoaTouch.