PROGRAMMAZIONE MOBILE
Anno accademico 2020/2021 - 3° anno - Curriculum BCrediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre: 2°
Obiettivi formativi
Obiettivo principale del corso è quello di mettere gli studenti nelle condizioni di progettare ed implementare un'applicazione nativa Android ottimizzata per dispositivi mobile, quindi, che tiene in considerazione le caratteristiche peculiari e i limiti hardware di tali dispositivi,
In particolare si cercherà di prepare gli studenti a sfruttare tutte le potenzialità che Android offre ed, utilizzando l'ambiente di sviluppo Android Studio, a costruire un app che sfrutti sia l'hardware del dispositivo che le potenzialità del framework/sistema operativo nel suo complesso
Modalità di svolgimento dell'insegnamento
Il corso consisterà di una serie di lezioni frontali partecipate durante le quali verranno presentati gli argomenti; le stesse saranno supportate dalle presentazione di applicazioni ed esempi. Gli studenti saranno chiamati, inoltre, a svolgere delle esercitazioni di laboratorio individuali e/o di gruppo.
Prerequisiti richiesti
Conoscenza del linguaggio di programmazione Java e della programmazione orientata agli oggetti.
Frequenza lezioni
La frequenza alle lezione è auspicabile. Verrano proposte ed eseguite esercitazioni pratiche utili per la risoluzione di problemi legati all'utilizzo dell'SDk, dei framework di supporto e dell'IDE.
Contenuti del corso
Hello Android.
Introduzione
Uno sguardo al passato ... e al futuro
Cosa Android non è...
Cosa allora è...
Applicazioni Android Native
Funzionalità di Android SDK
Android Software Stack
Architettura di una applicazione Android
Sviluppare per Dispositivi Mobili e per Android
Per Iniziare
Iniziamo l'installazione
Prima applicazione
Codice Hello World
Tipi di Applicazione Android
Sviluppare per dispositivi mobili
Esempio TO-DO List
Android Development Tools
Creazione di applicazioni ed attività
Componenti di una applicazione
Application Manifest
Ciclo di Vita di una applicazione
Le Activities
Ciclo di Vita di una Activity
Esternalizzazione delle Risorse
Utilizzo delle Risorse
Risorse per lingue ed hardware differenti
Creazione di una Interfaccia Utente
Progettazione Android UI
Android Widget
Layout Managers
Nuove Views
Modifica di View Esistenti
Customizzazione TODO List
Creare Controlli Compositi
Creare Controlli e View Custom
Creazione ed Utilizzo di menu
Activity menu
Principali opzioni di menu
Aggiornamento dinamico e gestione della selezione
Sottomenu e menu di contesto
Menu con file XML
Oltre le attività: Intents, Broadcast Receivers, Services
Intents
Intents per lanciare Activity
Valori di ritorno delle activity
Azioni Native Android
Intents Filter
Intent Resolution
Utilizzo dell'intent dall'interno di una activity
Altro utilizzo degli intent filter
Usare gli Intent per il broadcast di eventi
Services
Creazione di Services
Start e stop di un Service
Service e priorità
Thread e Background
Broadcast Receivers (SMS Manager)
Memorizzazione, gestione e condivisione di dati
Database ed SQLite
Content Provider
Servizi basati sulla "Location"
Accesso all'hardware di Android
Accelerometro
Giroscopio
Magnetometro
Google Cloud Messaging
Remote and local Notification
Firebase platform: Firebase cloud messaging, Firebase realtime database
Testi di riferimento
1. Reto Meier, Ian Lake - "Professional Android" 4th Edition - Wrox - ISBN: 978-1-118-94952-8
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Hello Android | |
2 | Sviluppare per Dispositivi Mobili e per Android | |
3 | Creazione di applicazioni ed attività | |
4 | Creazione di una Interfaccia Utente | |
5 | Oltre le attività: Intents, Broadcast Receivers, Services | |
6 | Memorizzazione, gestione e condivisione di dati | |
7 | Servizi basati sulla “Location” | |
8 | Accesso all’hardware di Android | |
9 | Google Cloud Messaging | |
10 | Remote and local Notification | |
11 | Firebase:FCM , Real time database |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consisterà nella progettazione e realizzazione di un'app Android a partire da una serie di specifiche assegnate/concordate. L'app dovrà utilizzare oltre a rete e sistema di persistenza almeno due "sensi" dello smartphone target. L'app realizzata, accompagnata da una relazione finale, sarà argomento di colloquio orale che completerà l'esame.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
Esempi di progetti assegnati:
- "Scaffometro": app che permette di monitorare e memorizzare lo stato delle strade geolocalizzando
- "Stream Annotation": possibilità di inserire durante le riprese video annotazioni di tipo testuale e/o di altra natura
- "Light chat": app di comunicazione tra 2 smartphone che sfrutta camera e flash per scambiare messaggi con codice morse