MOBILE PROGRAMMING
Anno accademico 2024/2025 - Docente: Massimo Orazio SPATARisultati di apprendimento attesi
I risultati di apprendimento attesi per il presente corso di mobile programming sono articolati su diverse competenze e conoscenze che gli studenti devono acquisire al termine del corso:
Conoscenze Tecniche di Base:
- Comprendere i concetti fondamentali dello sviluppo di applicazioni mobili.
- Conoscere le differenze tra le principali piattaforme mobili (iOS e Android).
- Essere in grado di progettare, sviluppare e pubblicare un'applicazione mobile funzionale.
- Utilizzare ambienti di sviluppo integrati (IDE) come Android Studio.
- Scrivere codice in linguaggi specifici per lo sviluppo mobile, come Java/Kotlin per Android e Swift per iOS.
- Implementare interfacce utente utilizzando XML per Android e Dart.
- Utilizzare database locali (come SQLite) e remoti per la gestione dei dati nelle applicazioni mobili.
- Implementare tecniche di persistenza dei dati..
- Progettare interfacce utente intuitive e responsabili.
- Applicare principi di design UI/UX per migliorare l'esperienza dell'utente.
- Ottimizzare le applicazioni per migliorare le performance e la gestione delle risorse.
- Ridurre il consumo di batteria e migliorare l’efficienza dell’app.
- Pubblicare applicazioni sugli app store (Google Play Store e Apple App Store).
- Gestire il ciclo di vita delle applicazioni, inclusi aggiornamenti e manutenzione.
- Rimanere aggiornati sulle ultime tendenze e tecnologie emergenti nel campo della programmazione mobile.
- Valutare e integrare nuove tecnologie e strumenti che possono migliorare lo sviluppo delle applicazioni mobili.
- Implementare pratiche di sicurezza per proteggere i dati dell'utente e l'integrità dell'applicazione.
- Gestire permessi e autorizzazioni per l’accesso a funzionalità sensibili del dispositivo.
Modalità di svolgimento dell'insegnamento
Prerequisiti richiesti
Conoscenza del linguaggio di programmazione Java e della programmazione orientata agli oggetti.
Frequenza lezioni
Contenuti del corso
Il materiale del corso (esercizi e slides) sono disponibili iscrivendosi al canale Teams di Mobile Programming con il codice pdzgqm8, dentro la cartella "Materiale del corso". Per approfondire è fortemente consigliato l'uso dei testi di riferimento.
- Piattaforme per dispositivi mobili
- Un pò di storia
- Il futuro delle applicazioni mobile
- Cosa Android non è...
- Cosa allora è...
- Applicazioni Android Native e di terze parti
- Java: breve sintesi
- Android Run Time
- Architettura di Android
- Strumenti di sviluppo per Android: Android Studio
- Gradle
- Hello World
- Layout di un app Android
- Il simulatore di device Android
- Componenti di un applicazione Android
- Sviluppare per dispositivi mobili
- Esempio TO-DO List
- Android Development Tools
- Creazione di applicazioni ed attività
- Componenti di una applicazione
- Activity: foreground e background activity
- Fattori da considerare per la realizzazione di una app efficiente, reattiva e sicura
- Ciclo di vita di un Activity
- Android memory manager
- Risorse di un applicazione Android
- Esternalizzazione delle risorse
- Tipi di risorse
- Fragment
- View, ViewGroup
- Creazione di una Interfaccia Utente: i Layout
- I menù
- Oltre le Activity: gli Intents
- Services: background process
- Toast e notification
- Persistenza ed SQLite Content Provider
- Content providers
- Cursor
- Firebase
- Flutter: Introduzione
- Flutter: installazione
- Flutter: creazione di una semplice applicazione con Android Studio
- Flutter: Architettura di un applicazione
- Flutter introduzione alla programmazione in Dart
- Flutter: introduzione ai widgets
- Flutter: introduzione ai layouts
- Flutter: introduzione ai gesture
- Flutter: state management
Testi di riferimento
- Reto Meier, Ian Lake - "Professional Android" 4th Edition - Wrox - ISBN: 978-1-118-94952-8
- Massimo Carli, Android 9 – Apogeo – ISBN: 978-88-503-3472-2
- Vincenzo Giacchina, Sviluppare applicazioni con Flutter - Apogeo - ISBN: 9788850336463
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione ad Android | |
2 | Strumenti di sviluppo: Android Studio | |
3 | Componenti principali di un applicazione Android | |
4 | Activity Life cycle | |
5 | Risorse di un Applicazione Android | |
6 | Sviluppare per Android: Activity, Fragment ed Intent | |
7 | View ed interfacce utente | |
8 | Oltre le Activities: Intents ed Intent filter | |
9 | Services: background process | |
10 | Persistenza ed SQL Lite | |
11 | Firebase: Real time database | |
12 | Flutter e Dart |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale consisterà nella progettazione e realizzazione di un'app a partire da una serie di specifiche assegnate/concordate.
L'app realizzata, accompagnata da una relazione finale, sarà argomento di un colloquio orale che completerà l'esame.
La prova è strutturata in modo che ad ogni studente sia attribuito un voto secondo il seguente schema:
- Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi..
- 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
- 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.
- 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.
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.
Informazioni per studenti con Disabilità e/o DSA
A garanzia delle pari opportunità gli studenti interessati possono richiedere un colloquio personale in modo da programmare eventuali misure compensative e/o dispensative in base agli obiettivi didattici ed alle specifiche esigenze di ciascuno. Per ulteriori informazioni rivolgersi al docente referente CInAP (Centro per l’integrazione Attiva e Partecipata - Servizi per le Disabilità e/o i DSA) del DMI.
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
- "Vetrina prodotti": app che attraverso accesso ad un db come Firebase o SQLite permette di gestire la vetrina prodotti di una attività commerciale.