PROGRAMMAZIONE DI SISTEMI MOBILI
cod. 1006702

Anno accademico 2024/25
3° anno di corso - Secondo semestre
Docente
Gianfranco LOMBARDO
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Tipologia attività formativa
Altro
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

La finalità del corso è quella di affrontare i principi di base per lo sviluppo su piattaforme mobili di ultima generazione.
In particolare verrà fornita allo studente la capacità di comprendere:
- i principi e gli aspetti chiave della programmazione in ambiente mobile


Lo studente imparerà ad applicare tali competenze e sarà capace di programmare semplici applicazioni su smartphone in ambiente Android.

Prerequisiti

Pre-requisiti strettamente consigliati sono:
- Object Oriented Programming
- Sistemi operativi e programmazione concorrente

Pre-requisiti consigliati per una maggiore fruizione del corso
- Basi di dati
- Ingegneria del Software

Contenuti dell'insegnamento

Il corso avrà come oggetto l'introduzione allo sviluppo di applicazioni mobile per ambienti Android, con cenni allo sviluppo Cross-platform.
In particolare nel corso verranno affrontati i seguenti temi:
- Introduzione al Mobile Computing (Architetture e Pattern)
- Object Oriented Programming in Kotlin
- Sviluppo in ambiente Android
- Database locali e remoti
- Programmazione concorrente e asincrona
- Elaborazione di dati sensorial
- Cenni di Machine learning per applicazioni mobili

Programma esteso

Il corso avrà come oggetto l'introduzione allo sviluppo di applicazioni mobile per ambienti Android.
In particolare, sarà articolato in 10 sottomoduli:
1) Introduzione al linguaggio Kotlin
Basi del linguaggio
Object Oriented Programming in Kotlin
Toy samples in Android Studio

2)Android basics
Layouts
Best practices per lo sviluppo della User Interface
Navigazione e supporto cross-device

3)Networking
Connessioni e data retrieval mediante HTTP e REST
Data retrieval utilizzando Wifi e bluetooth
Scambio di informazioni in formato JSON

4) Data persistence
Internal storage
External storage
SQLite e Android ROOM

5)Background services
Android Work Manager
Service Life Cycle
Notifiche

6) Concorrenza
Concorrenza in Kotlin
Concorrenza e UI
Concorrenza e Android

7) Sensori e multimedia (Raw data)
Accelerometro
Giroscopio
Fotocamera

8) Android Open Source Project (Software-based motion sensors)
Gravity sensor
Linear accelerometer
Rotation vector sensor
Significant motion sensor
Step counter sensor
Step detector sensor

9) Towards Artificial Intelligence
Android Speech Recognizer -> SpeechToText
Android TextToSpeech
Cenni di Natural Language Processing

10) Design pattern per lo sviluppo software
Pattern creazionali

Bibliografia

- Slide proposte a lezione dal docente
- Documentazione di libero accesso: https://developer.android.com
- Materiale fornito durante le esercitazioni di laboratorio

Metodi didattici

Lezioni frontali ed esercitazioni di laboratorio

Modalità verifica apprendimento

Le modalità d'esame prevedono
- La realizzazione di un progetto finale riguardante lo sviluppo di un'applicazione mobile su proposta dello studente o a scelta tra quelle che verranno proposte dal docente
- Stesura di una dettagliata relazione tecnica sull'attività di progetto da consegnarsi almeno 10 giorni prima dell'appello
- Esame orale con domande di teoria e presentazione power-point dell'attività di progetto

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.ingarc@unipr.it

Servizio per la qualità della didattica

Manager della didattica:
Elena Roncai
T. +39 0521033663
E. servizio dia.didattica@unipr.it 
E. del manager elena.roncai@unipr.it

Presidente del corso di studio

Gianluigi Ferrari
E. gianluigi.ferrari@unipr.it

Delegato orientamento in ingresso

Giovanna Sozzi
E. giovanna.sozzi@unipr.it

Delegato orientamento in uscita

Guido Matrella
E. guido.matrella@unipr.it

Docenti tutor

Boni Andrea
E. andrea.boni@unipr.it
Caselli Stefano
E. stefano.caselli@unipr.it
Cucinotta Annamaria
E. annamaria.cucinotta@unipr.it
Nicola Delmonte
E. nicola.delmonte@unipr.it
Mucci Domenico
E. domenico.mucci@unipr.it
Saracco Alberto
E. alberto.saracco@unipr.it
Ugolini Alessandro
E. alessandro.ugolini@unipr.it
Vannucci Armando
E. armando.vannucci@unipr.it

Delegati Erasmus

Paolo Cova
E. paolo.cova@unipr.it
Corrado Guarino
E. corrado.guarinolobianco@unipr.it
Walter Belardi
E. walter.belardi@unipr.it

Referente assicurazione qualità

Massimo Bertozzi
E. massimo.bertozzi@unipr.it

Studenti tutor

SPAGGIARI Davide E. davide.spaggiari@unipr.it
MUSETTI Alex E. alex.musetti@unipr.it
BERNUZZI Vittorio E. vittorio.bernuzzi1@studenti.unipr.it
NKEMBI Armel Asongu E. armelasongu.nkembi@unipr.it
BASSANI Marco E. marco.bassani@unipr.it
ZANIBONI Thomas E. thomas.zaniboni@unipr.it
BOCCACCINI Riccardo E. riccardo.boccaccini@unipr.it
MORINI Marco E. marco.morini@unipr.it
SHOZIB Md Sazzadul Islam E. mdsazzadulislam.shozib@studenti.unipr.it