PROGRAMMAZIONE DI SISTEMI MOBLI
cod. 1005660

Anno accademico 2013/14
3° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Tipologia attività formativa
Altro
42 ore
di attività frontali
6 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

La finalità del corso è quella di affrontare i principi di base per lo sviluppo su piattaforme mobili di ultima generazione (smartphone e tablet)
In particolare verrà fornita allo studente la capacità di comprendere:
- i principi e gli aspetti chiave della programmazione in ambiente mobile
- le caratteristiche delle due principali piattaforme principali per smartphone e tablet: Android e iOS.
Lo studente imparerà ad applicare tali competenze e sarà capace di:
- programmare semplici applicazioni su smartphone in ambiente Android e iOS.

Prerequisiti

- - -

Contenuti dell'insegnamento

Introduzione allo sviluppo su piattoforme mobili.
Architettura delle piattaforme mobili e componenti chiave.
Introduzione alla piattaforma Android, Android SDK e tool di sviluppo.
Programmazione su Piattaforma iOS.
Programmazione cross-­platform.

Programma esteso

* Introduzione allo sviluppo su piattoforme mobili
Architettura delle piattaforme mobili e componenti chiave. Aspetti peculiari e problematiche dello
sviluppo su dispositivi mobili.

* Programmazione su Piattaforma Android
Introduzione alla piattaforma Android, Android SDK e tool di sviluppo (Eclipse IDE e Android
simulator). Struttura di un progetto Android. Introduzione ai concetti di Activity, Intent, Service e
Broadcast Receiver. Ciclo di vita delle applicazioni Android. Componenti grafici ed costruzione
di interfacce con layout. Servizi di localizzazione e mappe. Persistenza dei dati con shared
preferences, internal ed external storage, database SQLite. Programmazione concorrente in
Android: multi-­threadiing e Asynchronous Task. Android services e comunicazione
inter-­processo. Networking: i package java.net e android.net, connessioni HTTP. Gestione della
connettivita’: Connectivity Manager, WiFi Manager, Telephony Manager, comunicazioni
Bluetooth. Gestione dei sensori e i contenuti multimediali.

* Programmazione su Piattaforma iOS
Basi del linguaggio Objective-­C: classi, oggetti, properties, protocolli;; gestione della memoria:
Manual Reference Counting (MRC) e Automatic Reference Counting (ARC);; Foundation
classes e classi custom. Introduzione alla piattaforma iOS, tool di sviluppo (XCode) e design
pattern per iOS (MVC, delegation pattern). Ciclo di vita di applicazioni iOS. Views e Controllers.
Componenti grafici ed costruzione di interfacce con InterfaceBuilder. Controllori di
ViewControllers. Servizi di localizzazione e mappe. Networking: richieste sincrone ed asincrone,
connessioni HTTP, socket TCP e UDP, service discovery con Bonjour. Gestione della
connettivita’. Programmazione concorrente in iOS: multi-­threading, blocchi, Grand Dispatch
Central, Notification Service. Persistenza dei dati: file plist, preferenze, scrittura su file, database SQLite, CoreData. Gestione dei sensori e contenuti multimediali.

* Programmazione cross-­platform
Tecniche e strumenti di programmazione cross-­platform: PhoneGap e Titanium Appcelerator

Bibliografia

- - -

Metodi didattici

Lezioni frontali sulla programmazione in ambiente Android e iOS.
Esercitazioni in laboratorio informatica di base (Android).
Esercitazioni in laboratorio di reti(iOS).

Modalità verifica apprendimento

Prova scritta con tre domande aperte o prova in itinere al termine della parte relativa alla
programmazione in ambiente Android.
Progetto individuale di fine corso concordato con il docente per lo sviluppo di un’applicazione
sulla piattaforma a scelta.
Per il voto finale, sara’ eseguita una media pesata sui risultati della prova scritta e del progetto
con pesi 1/3 per la prova scritta e 2/3 per il progetto.

Altre informazioni

- - -