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

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 saranno 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 prima lezione del corso si tiene Lunedi 20 Febbraio, in Aula Ercolani 2, dalle ore 9.30 alle 11.30, e riguarda la presentazione del corso e i contenuti trattati per il mondo iOS e Android.

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 10.0) per il corso di Laboratorio di Applicazioni Mobili, A.A. 2016/2017 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 Lunedi 20 Febbraio 2017, ore 9.30-11.30, Aula Ercolani 2. Il calendario provvisorio per l'A.A. 2016/2017 è il seguente:

Lunedi (Monday), ore 9.30-11.30, Aula Ercolani 2 (E2).
Giovedi (Thursday), ore 9.00-11.00, Aula Ercolani 2 (E2).
Venerdi (Friday), ore 9.00-11.00, 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 iOS10 (negli anni precedenti iOS4-iOS9) iPhone, iPad, iPod Touch, ecc. 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 3.0 (insieme a cenni su Objective-C e Swift 2.0) e alla versione più recente di XCode (8.2.1). 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 3.0 (and sketchy notes on ObjectiveC). Java e XML. Inizializzazione degli oggetti e gestione della memoria. Proprietà, Protocolli e Categorie in 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.2016/2017" 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 2017 (pdf, 439 KB)

Prima serie di slide Introduttive (pdf, 3.4 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 preCalculator (non MVC) 20170316 (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 parte 1) 20170323 (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 preCalculator (MVC parte 2 con clusures e Autolayout) 20170330 (zipped XCode project, 42 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 su Swift (pdf, 934 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)

Terza serie di slide su Swift (pdf, 1600 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 FaceView (solo disegno nella View) (zipped XCode project, 27 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).

  • SWIFT 3.0 (Web pages)
    Book (in italian): A. Deitel, H. Deitel, P. Deitel, Sviluppare applicazioni iOS con Swift, Apogeo, 2015.

  • Massimo Carli, Android(tm) (ultima versione): Guida per lo sviluppatore, Apogeo

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

Torna all'inizio pagina