Corso di Laboratorio di Applicazioni Mobili, A.A. 2015/2016

Corso di Laurea in Informatica per il Management (mutuato per Informatica)

Docente: Luciano Bononi

| Orario Ricevimento Studenti | Orario Lezioni | Contenuti del Corso | Esami del Corso | Materiale del Corso | FAQs |

Le informazioni sulle finestre di consegna del progetto per sostenere l'esame del corso sono pubblicate in questo link: Scadenze consegna progetto.
I file da consegnare per accedere al laboratorio Apple sono i seguenti (da compilare e consegnare firmati a lezione, insieme a una foto del documento di identità valido):Assunzione_di_Responsabilita_lab_MAC2016.pdf e liberatoria_Apple_iPhone_2016.pdf.

La lezione di Lunedi 16 Marzo riguarda la piattaforma Android. La lezione di Mercoledi 18 Marzo non viene tenuta a causa delle lauree. La lezione di Venerdi 20 riguarda la piattaforma Android.

La mailing list per le comunicazioni docente - studenti del corso di LAM 2016 é denominata LAM2016 (da non confondere con le precedenti). Gli studenti sono invitati a sottoscrivere la condivisione della mailing list LAM2016 sul portale di Ateneo di accesso alla posta per studenti:
(DSA di Ateneo)

Il materiale del corso per la parte relativa alla programmazione di dispositivi ANDROID sarà resa disponibile a breve in questa area WEB:
(Android Lessons)

L'elenco delle specifiche dei progetti di base (iOS 9.0) per il corso di Laboratorio di Applicazioni Mobili, A.A. 2015/2016 sarà pubblicato in questo link.


Orario delle lezioni del corso di Laboratorio di Applicazioni Mobili

Le informazioni sull'orario definitivo sono pubblicate sul portale del Corso di Laurea e, per quello che riguarda il corso di Laboratorio di Applicazioni Mobili anche in questa pagina. Le lezioni inizieranno regolarmente Martedi 23 Febbraio 2016, ore 16.30-18.30, Aula Ercolani 1. Il calendario provvisorio per l'A.A. 2015/2016 è il seguente:

Martedi (Tuesday), ore 16.30-18.30, Aula Ercolani 1 (E1).
Giovedi (Thursday), ore 10.30-12.30, Aula Ercolani 1 (E1).
Venerdi (Friday), ore 14.30-16.30, Aula Ercolani 1 (E1).
Le lezioni di laboratorio saranno tenute in laboratorio e nelle aule di lezione.

The lesson rooms are located in the following positions:
Ercolani Building, Mura ANteo Zamboni 7, Bologna
Aula Ercolani 1
In the building just in front of the Department of Computer Science (in the small street called Mura Anteo Zamboni, not to be confused with Via Anteo Zamboni)
in this position: Aula Ercolani 1.


Torna all'inizio pagina

Contenuti del corso di Laboratorio di Applicazioni Mobili

Il corso costituisce una novità dell'offerta formativa, da questo anno, per il terzo anno della Laurea triennale in Informatica per il Managemnt. Il corso offre l'introduzione allo sviluppo di applicazioni mobili per dispositivi basati su tecnologia iOS e Android. Dall'anno 2012 il corso di Laurea in Informatica per il Management attiva questo corso (come corso a scelta, visto che il corso entra a regime solo dal 2014, collocato al terzo anno della laurea triennale in Informatica per il Management.) Per la parte iOS, il corso prende spunto dal famoso corso creato e tenuto all'Università di Stanford e largamente diffuso su iTunes University: "Developing Applications for iOS". In questo senso, il corso offre una panoramica introduttiva dei temi di Programmazione di dispositivi iOS9 (negli anni precedenti iOS4-iOS8) iPhone, iPad, iPod Touch, ridotta nei contenuti rispetto al corso di Stanford. Tuttavia, molto materiale utilizzato é tratto dal corso di Stanford (al quale vanno tutti i crediti del materiale formativo). In questo modo si vuole favorire l'approfondimento dei temi (per le persone interessate, che possono fruire delle lezioni estese del corso di Stanford su iTunes University) e si vuole favorire la possibilità di studiare i contenuti, anche da remoto, per studenti impossibilitati alla frequenza continua del corso e del laboratorio. Da questo anno accademico si effettua la transizione al linguaggio di sviluppo Swift 2.0 (insieme a cenni su Objective-C) e alla versione più recente di XCode 7.2. La parte relativa al corso su piattaforma Android é invece prodotta in originale da parte dei docenti del corso, e realizza un'introduzione allo sviluppo di applicazioni su smartphone e tablet PC dotati del sistema operativo Android. Maggiori dettagli sul contenuto del modulo del corso su Android sono contenuti nell'area Android. Al termine del corso, lo studente conosce gli aspetti tecnologici e metodologici e gli strumenti per lo sviluppo di applicazioni per dispositivi mobili, su piattaforme iOS (iPhone, iPad, iPod Touch) e Android. Conosce inoltre la gestione di dispositivi dotati di interfacce utente innovative, multi-touch, gestione eventi, la programmazione objectiveC, Eclipse e Android SDK, design patterns, interfacciamento dati esterno, sensori e geo-localizzazione, servizi di networking, debugging e test di applicazioni. Conosce infine: - le problematiche delle applicazioni eseguite in contesto wireless mobile; - le piattaforme piĆ¹ importanti per lo sviluppo di applicazioni mobili; - le API dei device interni; - la gestione della multimedialità in contesto wireless mobile; - iPhone SDK e Android SDK; - come progettare e implementare una applicazione (in particolare con il design model Model-View-Control) nei due ambienti di sviluppo. Il corso offre agli studenti la possibilità di affrontare temi di tesi di laurea di carattere progettuale, che dovranno essere richieste e concordate con il docente.
Alcuni dei temi trattati nel corso includono:
Panoramica sugli aspetti tecnologici dei dispositivi iPhone, iPod Touch e iPad. Panoramica aspetti tecnologici dei dispositivi Android. iOS technology layers: Core OS, Core Services, Media, Cocoa Touch. iOS e iOS SDK. Strumenti di sviluppo per la piattaforma iOS: Xcode, Interface Builder, Simulator, Instruments. Componenti applicazioni Android, Applications, Activities, Activity stack, tasks, Intents. Swift 2.0 (and sketchy notes on ObjectiveC). Java e XML. Inizializzazione degli oggetti e gestione della memoria. Proprietà, Protocolli e Categorie in Objective-C e Swift. Cocoa design pattern, Model-View-Controller. Target, Action, Outlets. Singleton, Notification, Delegate. Foundation Framework e UIKit (Cocoa Touch). Interfaccia utente, UIWindow e UIView. Creazione di una UIViewController e gestione applicazioni MultiViews, controllers e views. Gestione eventi Touch e Multi-touch, gestures. Input di testo e gestione del testo. Strumenti e modelli per la persistenza dei dati su iOS. CoreData e Table Views. Interfacciamento con dati esterni (e web). Implementazione delle mappe e servizi di geo-localizzazione. Sensore di movimento e accelerometro. Interfacce ruotabili e ridimensionabili. Networking services. Debugging e Testing delle applicazioni per iOS. App Store. Torna all'inizio pagina

Esami del corso di Laboratorio di Applicazioni Mobili

Il corso prevede lo svolgimento di un progetto individuale o di gruppo (opportunamente definito e dimensionato), relativo alla realizzazione di un'applicazione iOS e/o Android, e nella discussione delle scelte progettuali e di realizzazione del progetto in un seminario aperto agli studenti. L'applicazione da sviluppare per il progetto deve essere preventivamente concordata con il docente, preferibilmente inviando una e-mail con subject "Proposta progetto esame corso LAM A.A.2015/2016" all'indirizzo luciano.bononi@unibo.it. Se il seminario viene approvato, il candidato deve produrre una presentazione di 20 minuti (supportata da circa 25 slide) oltre che una relazione in formato elettronico (pdf, ps, html) equivalente ai contenuti verbali della presentazione, e contenente tutti i riferimenti a materiale, codice realizzato e fonti documentali.
La data di consegna del progetto viene definita in una serie di finestre temporali possibili, le cui scadenze limite sono elencate in questo link (insieme ad altre informazioni utili sulle procedure di sottomissione): Scadenze consegna progetto. La discussione orale viene fissata alla prima data utile dal momento della consegna. Alla prova di esame (demo/presentazione del progetto/seminario) viene inoltre collegato un esame orale (costituito da domande e veloci esercizi) su tutto il programma del corso.
L'esito del seminario (e della discussione del progetto) e della prova orale determinano l'eventuale superamento dell'esame e la proposta di voto finale.

Ad ogni prova di esame ci si deve sempre presentare muniti di un documento valido corredato da una foto recente che permetta l'identificazione del candidato.
Torna all'inizio pagina

Materiale del corso di Laboratorio di Applicazioni Mobili

Questa sezione della pagina del corso raccoglierà le notizie e il materiale relativo al modulo di lezioni. Il materiale qui raccolto non costituisce un indice esaustivo degli argomenti trattati, ma semplicemente una raccolta di slide e strumenti usati a lezione. Alcuni dei concetti presentati a lezione vengono integrati dal materiale fornito.

Il materiale del corso per la parte relativa alla programmazione di dispositivi ANDROID si troverà in questa pagina (Android Lessons)


Di seguito trovate il materiale usato per le lezioni sulla piattaforma iOS (rimosse a un anno dalla fine del corso)

Slide di introduzione al corso LAM 2016 (pdf, 279 KB)

Prima serie di slide Introduttive (pdf, 7.6 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Prima serie di slide (MVC) (pdf, 7.6 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Esercitazione Calculator (non MVC) 20160315 (zipped XCode project, 34 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Esercitazione Calculator MVC 20160322 (zipped XCode project, 34 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Seconda serie di slide (pdf, 1.1 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Terza serie di slide (pdf, 1.7 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Esercitazione Happiness (versione solo grafica base)(zipped XCode project, 60 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Quarta serie di slide (pdf, 1.5 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Esercitazione HappinessMVC (versione MVC con modello e Controller)(zipped XCode project, 60 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Presentazione Progetti iOS 2016(pdf, 177 KB)

Esercitazione Happiness Gestures (versione MVC con Gestione Pinch e Pan Gestures)(zipped XCode project, 63 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Quinta serie di slide (pdf, 8.5 MB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)

Esercitazione Psychologist(zipped XCode project, 33 KB) (slide full credits Stanford CS193P. This work by Stanford University is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Based on a work at cs193p.stanford.edu)


In questa pagina, in continuo aggiornamento, sono raccolte le risposte alle domande frequenti che mi sono state rivolte via e-mail (Frequently Asked Questions, FAQs).

Alcuni testi consigliati (utili per approfondire temi specifici, ma non necessariamente da acquistare) per il corso sono i seguenti (maggiori informazioni saranno fornite a lezione).

  • e-book (in italian): Alessandro Carlucci, Swift 2.0: Sviluppare applicazioni per iPhone e iPad, iTunes,
    Book (in italian): A. Deitel, H. Deitel, P. Deitel, Sviluppare applicazioni iOS con Swift, Apogeo, 2015.

  • Massimo Carli, Android(tm) 4: Guida per lo sviluppatore, Apogeo 2014, pp. 688

  • altri eventuali testi e documentazione su Web sarà indicata in seguito

Torna all'inizio pagina