66860 - LABORATORIO DI APPLICAZIONI MOBILI

Anno Accademico 2025/2026

  • Docente: Federico Montori
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Moduli: Federico Montori (Modulo 1) Federico Montori (Modulo 2)
  • Modalità didattica: Lezioni in presenza (totalmente o parzialmente) Lezioni in presenza (totalmente o parzialmente) (Modulo 1); Lezioni in presenza (totalmente o parzialmente) (Modulo 2)
  • Campus: Bologna
  • Corso: Laurea in Informatica per il management (cod. 8014)

Conoscenze e abilità da conseguire

"Il corso tratta gli aspetti tecnologici e metodologici e gli strumenti per lo sviluppo di applicazioni per dispositivi mobili, su piattaforme iOS (iPhone, iPad, iPod Touch, ecc.) e Android. Sono incluse la gestione di dispositivi dotati di interfacce utente innovative, multi-touch, gestione eventi, la programmazione Swift (iOS) e Android SDK, design patterns, interfacciamento dati esterno, sensori e geo-localizzazione, servizi di networking, debugging, problemi di privacy, context aware computing e test di applicazioni. Alla fine del corso lo studente conosce: - 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 multimedialita' in contesto wireless mobile; - iOS SDK e Android SDK - come progettare e implementare applicazioni con il design pattern Model-View-Controller, nei due ambienti di sviluppo. "

Contenuti

  • Panoramica sugli aspetti tecnologici dei dispositivi mobili

  • Differenze fra applicazioni ibride, native e WebApp.

  • Android Setup

  • Architettura e Componenti di Android

  • Kotlin per Android

  • Android Activities

  • Android Views, Layouts e Events

  • Android Resources

  • Android Intents

  • iOS Setup

  • Architettura e Componenti di iOS

  • Swift per iOS

  • iOS Storyboards e UIKit

  • iOS Target, Action e Outlets

  • Design Pattern Architetturali

  • Android Background Work

  • Android Data Management

  • Android Fragments e Navigation

  • Pervasività (mappe, sensori, …)

  • Programmatic UI e Compose

  • Programmatic UI e SwiftUI

  • Unit Tests and UI Tests

  • Flutter

  • React Native

Testi/Bibliografia

Materiale online su https://developer.apple.com/library/ios/navigation/

Materiale online su https://developer.android.com/

Metodi didattici

Il corso si svolge al secondo semestre ed è strutturato in lezioni frontali in aula, in italiano con materiale in lingua inglese. Vengono presentati innanzitutto i fondamenti degli argomenti trattati nel resto del corso. In particolare, dopo aver introdotto le nozioni di base e gli strumenti di sviluppo (iOS Xcode e Android SDK) il corso si suddivide in due filoni asimmetrici di lezioni ed esercitazioni di laboratorio, che riguardano lo sviluppo di applicazioni mobili in ambiente Android e iOS.

Ogni lezione illustra un tema specifico, con molti riferimenti alle librerie di supporto, agli strumenti e facilities per lo sviluppo e il debug, e nella maggior parte dei casi si finalizza con la messa in pratica dei concetti illustrati direttamente all'interno di esercitazioni di programmazione svolte in aula dal docente (demo). Ciò favorisce la comprensione dei principi e la loro messa in pratica, con il risultato di permettere agli studenti di realizzare le loro proto-applicazioni al di fuori dell'aula (su strumenti di sviluppo personali o nel laboratorio didattico del corso) in totale autonomia

Vengono inoltre dati alcuni elementi per orientare lo studente verso lo sviluppo di applicazioni ibride.

In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai Moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://elearning-sicurezza.unibo.it/ ] in modalità e-learning.

Modalità di verifica e valutazione dell'apprendimento

Il corso prevede lo svolgimento di un progetto tipicamente individuale (in alcuni casi si contemplano gruppi di due persone) relativo alla realizzazione di un'applicazione iOS e/o Android (se lo studente lo desidera può essere anche ibrida) e nella discussione delle scelte progettuali e di realizzazione del progetto in una sessione di esame orale (di circa 30 minuti). Prima della fine del corso vengono proposte alcune tipologie di applicazioni mobili da realizzare come progetto del corso, e possibili livelli di estensione e complessità. Se lo studente è interessato, può proporre progetti su base personale. In tal caso, l'applicazione oggetto del progetto DEVE essere preventivamente concordata con il docente e il tutor, preferibilmente inviando una e-mail con subject "Proposta progetto esame corso LAM A.A. X/Y" all'indirizzo email del tutor del corso. Definito un progetto (approvato dal docente o facente parte dell'elenco fornito), il candidato deve sviluppare l'applicazione e deve produrre una presentazione di 10 minuti (supportata da 10-15 slide) oltre che una relazione in formato elettronico (pdf) equivalente ad una versione espansa dei contenuti verbali della presentazione, contenente la descrizione dell'utilizzo dell'applicazione supportato da screenshot, scelte progettuali e tutti i riferimenti a materiale, codice realizzato e fonti documentali. Per la consegna dei progetti sono fissate di norma 6 scadenze annuali: a Giugno, Luglio, Settembre, Novembre, Gennaio e Febbraio. La consegna dei progetti deve avvenire entro le date indicate (comunicate nella mailing list del corso e sul portale VIRTUALE delle lezioni del corso), esclusivamente tramite l'applicativo VIRTUALE del corso, allegando un archivio compresso con il codice del progetto e la relazione. Una volta consegnato il progetto si viene convocati per la prova orale di norma nell'arco di una o due settimane che seguono la scadenza di consegna. La data della prova viene stabilita preventivamente su Almaesami e pubblicata sul newsgroup per consentire alle persone interessate di partecipare. La prova si tiene in presenza presso il l'ufficio del docente oppure in una delle aule seminari del Dipartimento di Informatica - Scienza e Ingegneria, in Mura Anteo Zamboni 7. Alla prova di esame (demo/presentazione del progetto) viene inoltre collegato un esame orale (costituito da domande e veloci esercizi) su tutto il programma del corso, incluse domande teoriche sulle demo svolte a lezione in entrambe le piattaforme (iOS e Android). Gli studenti sono quindi tenuti a conoscere le tecniche di sviluppo illustrate a lezione su entrambe le piattaforme.

L'esito della discussione del progetto produce un voto in trentesimi che può essere modificato in difetto o in eccesso dalla parte teorica dell'esame orale. Ciò determina la proposta di voto finale. Entrambe le parti dell'esame devono essere sufficienti per poterne determinare il superamento. Se il voto finale così determinato eguaglia o supera i 30/30 può essere prevista l'attribuzione della lode.

Strumenti a supporto della didattica

Slides elettroniche, personal computer a proiettore.

Riferimenti in rete.

Orario di ricevimento

Consulta il sito web di Federico Montori