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