PROGRAMMAZIONE MOBILE

Anno accademico 2020/2021 - 3° anno - Curriculum B
Docente: Giuseppe Morelli
Crediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre:

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

 ArgomentiRiferimenti testi
1Hello Android 
2Sviluppare per Dispositivi Mobili e per Android 
3Creazione di applicazioni ed attività 
4Creazione di una Interfaccia Utente 
5Oltre le attività: Intents, Broadcast Receivers, Services 
6Memorizzazione, gestione e condivisione di dati 
7Servizi basati sulla “Location” 
8Accesso all’hardware di Android 
9Google Cloud Messaging 
10Remote and local Notification 
11Firebase: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