PROGRAMMAZIONE DI SISTEMI MOBILI
cod. 1006702

Anno accademico 2023/24
3° anno di corso - Secondo semestre
Docente
- Gianfranco LOMBARDO
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
"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

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): 16%
- Object Oriented Programming in Kotlin: 10%
- Sviluppo in ambiente Android: 42%
- Elaborazione di dati sensoriali: 8%
- Natural Language Processing con dispositivi mobili: 16%
- Cross-platform development: 8%

Programma esteso

Il corso avrà come oggetto l'introduzione allo sviluppo di applicazioni mobile per ambienti Android, con cenni allo sviluppo Cross-platform.
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
Material Design guidelines
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) Native development Vs Cross-platform
Cenni al framework React Native
Cenni al framework Flutter
Analisi e comparazione ai fini progettuali

Bibliografia

- Slide proposte a lezione dal docente
- Documentazione di libero accesso: https://developer.android.com
- 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

- - -