Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze
  1. Insegnamenti

SCV0241 - PROGRAMMAZIONE DI DISPOSITIVI MOBILI

insegnamento
ID:
SCV0241
Durata (ore):
56
CFU:
6
SSD:
INFORMATICA
Anno:
2025
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone

Dati Generali

Periodo di attività

Secondo Semestre (23/02/2026 - 29/05/2026)

Syllabus

Obiettivi Formativi

Obiettivo di questo corso è presentare nel dettaglio gli aspetti relativi alla programmazione dei dispositivi mobili. Il corso parte dalla discussione delle architetture dei dispositivi mobili e delle caratteristiche peculiari della programmazione di tali dispositivi. Vengono quindi presentate le più comuni architetture software e viene discusso nel dettaglio il caso di Android. Vengono analizzati i principali framework che costituiscono il sistema Android e i servizi che possono essere integrati all’interno delle applicazioni con particolare attenzione alle API di Google. Vengono quindi presentati esempi di applicazione, sulla base dei quali viene compiuta un’analisi del processo di sviluppo delle applicazioni.
Al termine del corso lo studente
1. possiede le conoscenze necessarie alla comprensione degli aspetti più evoluti del framework di Android, all’utilizzo delle sue componenti e dei servizi. Lo studente ha inoltre le conoscenze necessarie ad affrontare individualmente lo studio di altri framework di sviluppo di applicazioni mobili.
2. è in grado di progettare, sviluppare e testare applicazioni per dispositivi mobili basate su Android e di comprendere i framework disponibili per l’integrazione di servizi.
3. è in grado di scegliere in autonomia di giudizio le soluzioni più adatte alla realizzazione di una specifica applicazione.
4. è in grado di comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un framework di programmazione per dispositivi mobili e di discutere le scelte architetturali alla base dei progetti realizzati.

Prerequisiti

Lo studente che affronta questo corso deve possedere una conoscenza dettagliata dell’architettura degli elaboratori, della programmazione in linguaggio Java e delle strutture dati fondamentali.

Metodi didattici

Il corso si articola in lezioni frontali (40 ore) che servono a capire cos'è la programmazione dei dispositivi mobili, ed esercitazioni (16 ore) per imparare la programmazione in ambito mobile.
Data la caratteristica fortemente applicativa del corso, le lezioni frontali saranno intervallate da esercitazioni svolte presso un laboratorio attrezzato. Il laboratorio permette una manipolazione concreta degli argomenti trattati a lezione attraverso la possibilità di poter scegliere e decidere la soluzione migliore ad un determinato problema.
La frequenza alle lezioni seguita dallo studio dell'argomento trattato, è fortemente consigliata per poter affrontare l'esercitazione ad essa connessa.
Alcune esercitazioni prevedono una valutazione dell’elaborato fatta dal docente attraverso la piattaforma Moodle. Le valutazioni di queste esercitazioni contribuiscono al voto finale per la prova d’esame.

Verifica Apprendimento

L’esame si svolgerà in forma scritta, con quesiti formulati in modo da verificare le conoscenze ed i risultati di apprendimento attesi, e attraverso lo sviluppo e discussione di un progetto sviluppato nel framework di Android. Lo scopo della prova è quello di verificare che lo studente abbia compreso le caratteristiche distintive della programmazione di dispositivi mobili effettuando le giuste scelte architetturali nello sviluppo del progetto. La prova scritta, tramite quiz, potrà essere sostenuta al termine del corso, durante le sessioni d’esame. Per poter superare l'esame lo studente deve: • rispondere a circa 20 quiz su argomenti trattati a lezione e resi disponibili tramite la piattaforma Moodle durante la prova d'esame in uno dei laboratori di informatica disponibili. Questa prova consente di ottenere un voto V1 tra 0 e 30 assegnato in automatico allo scadere del tempo a disposizione. La prova è superata con qualsiasi voto totalizzato. • sviluppare un progetto scelto tra l'insieme dei progetti disponibili o proposto dallo studente. Il progetto dovrà essere concordato con il docente prima di procedere con lo sviluppo. Il progetto deve essere sviluppato interamente con GIT e il link consegnato al docente prima dell'esame. Il voto totale V2 tra 0 e 30 per il progetto dipende dalla qualità del progetto consegnato, da come viene presentato e dalle risposte alle domande fatte dal docente sul progetto. La presentazione del progetto avviene attraverso l'utilizzo di un portatile o PC in cui è installato AndroidStudio e un emulatore di un dispositovo Android. È possibile presentare il progetto dopo aver completato i quiz, indipendentemente dal voto ottenuto in quest’ultima. Il voto finale è dato dalla media dei due voti V1 e V2 più un eventuale incremento/decremento di un massimo di 5 trentesimi che dipenderà dalla qualità e dal grado di conoscenza del progetto presentato. La prova è superata se il voto finale è maggiore o uguale a 18/30.

Contenuti

Le lezioni affronteranno i seguenti argomenti:
Introduzione ai dispositivi mobili (8 h, obiettivo formativo 1)
• Architettura hardware di un dispositivo mobile
• Ambienti di sviluppo e indroduzione ad AndroidStudio
• Caratteristiche distintive della programmazione di dispositivi mobili (usabilità, robustezza, …).
• Versioni Android e Kernel.
• Dalvik VM e ART VM,
• LogCat come sistema di logging
• Tipi di applicazioni in ambiente Android
Elementi di base nella programmazione di dispositivi mobile (32 h, obiettivo formativo 2 )
• Creazione di una HelloWorld App per Android
• Git come sistema di versioning per progetti di applicazioni mobile
• Creazione di una Activity e studio del suo ciclo di vita
• Configurazione e gestione di un evento di tipo onClick nella programmazione event-driven. Listener
• Componenti di una App, Processesi e Task
• Task e Backstack per la vavigazione tra le varie activity di una applicazione
• Risorse di una App Android: Color, Dimension, Internazionalizzazione, etc.
• Gestione dei contenuti di una Activity attraverso l’uso di View e ViewGroup come ad esempio ListView, GridView, RecyclerView, Adapter e Adapter personalizzati.
• Fragments e loro utilizzo.
• Creazione di app con database locale. Esempi con SQLite
• Intent espliciti ed impliciti
• Creazione e gestione di ToolBar, ActionBar, menù
Elementi avanzati nella programmazione di dispositivi mobile (16 h, obiettivi formativi 3 e 4)
• Google maps, Location Based Services, Location providers, Geocoding
• Permessi per l’uso di informazioni sensibili in un dispositivo mobile.
• Firebase per l'autenticazione, analytics, realtime database
• Thread, AsyncTask, Services
Gli argomenti verranno affrontati usando come riferimento il linguaggio di programmazione Kotlin e Java per l’ambiente Android. Ciò nondimeno, molti degli argomenti trattati nel corso sono di validità generale, e le tecniche proposte sono generalmente applicabili con linguaggi diversi.

Lingua Insegnamento

Italiano

Altre informazioni

Data la continua evoluzione del mondo della programmazione dei dispositivi mobile, non vengono proposti dei libri di testo particolari che rischiano di diventare obsoleti dopo qualche mese.
Il materiale didattico è disponibile sul sito di e-learning: Slide, dispense, esempi di applicazioni.
Esistono però diversi libri e siti web che possono proficuamente essere utilizzati dagli studenti per poter integrare il materiale fornito tramite e-learning. Ad esempio
• Per studiare la struttura dei progetti di Android studio: https://developer.android.com/training/basics/firstapp/
• Per studiare l'architettura delle app: https://developer.android.com/jetpack/docs/guide
• Libro aggiornato ad una versione recente di Android:
The Busy Coder’s Guide To Android Development (Final Version)
Author(s): Murphy Mark L.
Series: The Busy Coder’s Guide to Android Development
Publisher: CommonsWare, Year: 2019

Corsi

Corsi

INFORMATICA 
Laurea
3 anni
No Results Found

Persone

Persone

GALLO IGNAZIO
Settore INFO-01/A - Informatica
PE6_11 - Machine learning, statistical data processing and applications using signal processing (e.g. speech, image, video) - (2020)
Goal 3: Good health and well-being
Gruppo 01/INFO-01 - INFORMATICA
Goal 4: Quality education
AREA MIN. 01 - Scienze matematiche e informatiche
Goal 9: Industry, Innovation, and Infrastructure
PE6_7 - Artificial intelligence, intelligent systems, multi agent systems - (2020)
PE6_8 - Computer graphics, computer vision, multi media, computer games - (2020)
Ricercatori
No Results Found
  • Accessibilità
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 25.11.5.0