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
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -