Corso di Laboratorio di Applicazioni Mobili, A.A. 2019/2020

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 2019/20. Una consegna straordinaria viene inserita a Febbraio 2020.
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 Mercoledi 27 Febbraio, in Aula Tonelli, dalle ore 13.00 alle 16.00, 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 12.0) per il corso di Laboratorio di Applicazioni Mobili, A.A. 2019/2020 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 3 Marzo 2020, ore 10.00-12.00, (in modalita' ONLINE su Teams). Il calendario provvisorio per l'A.A. 2019/2020 è il seguente:

Martedi (Tuesday), ore 10.00-12.00, Aula Ercolani 2.
Mercoledi (Wednesday), ore 11.00-13.00, Aula Ercolani 2.
Giovedi (Thursday), ore 10.00-12.00, Aula Ercolani 2.
Le lezioni di laboratorio saranno tenute in laboratorio e nelle aule di lezione.
Le lezioni ONLINE saranno fruibili su Teams, come predisposto dagli organi di Ateneo.

The lesson rooms are located in the following positions:
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)
around this position: Aule Lezioni LAM.


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 (prima come corso a scelta, poi 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 iOS11 (negli anni precedenti iOS4-iOS10) 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 5.0 (insieme a cenni su Objective-C e Swift dalla versione 2.0 in poi) e alla versione più recente di XCode (almeno 10.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 from 2.0 on, currently Swift 5.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, 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.2019/2020" all'indirizzo lam-projects@cs.unibo.it. Se il progetto viene approvato, il candidato deve produrre una presentazione di 15 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 (comunicate a breve). 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 ((comunicata a breve) 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 2020 (pdf, 1.439 KB)

Prima serie di slide: Lecture 1 Intro iOS LAM 2020 (pdf, 1.1 MB)

Esercitazione Playground2020-2 iOS LAM 2020 (Playground file, 11 KB)

Esercitazione App Contaclick iOS LAM 2020 (xcode project, 35 KB)

Esercitazione App GiocoDiCarte (non MVC) iOS LAM 2020 (xcode project, 37 KB)

Seconda serie di slide Introduttive (pdf, 5.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 App ConcentrationTest (ex GiocoDiCarte trasformata in MVC) iOS LAM 2020 (xcode project, 54 KB). Attenzione: l'app contiene sviluppi non ancora visti nella demo fatta a lezione e contiene errori che risolveremo nella futura versione.

Terza 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)

Esercitazione App ConcentrationTest (ex GiocoDiCarte trasformata in MVC+extensions+access control+assertions) iOS LAM 2020 (xcode project, 54 KB).

Quarta 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)

Quinta serie di slide (pdf, 1.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 UIView e Disegno (FaceIt) 202004 (zipped XCode project, 38 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 4.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