- Area di Scienze
- Corso di Laurea Triennale
- Informatica [E3102Q - E3101Q]
- Insegnamenti
- A.A. 2026-2027
- 3° anno
- Programmazione di Dispositivi Mobili
- Introduzione
Syllabus del corso
Obiettivi
Il corso ha i seguenti obiettivi specifici:
- Conoscenza e capacità di comprensione (DdD 1): Comprendere i principi di progettazione di app per dispositivi mobili, incluse le best practice architetturali, applicare tali conoscenze in ambito Andorid
- Conoscenza e capacità di comprensione applicate (DdD 2): Saper applicare principi di programmazione e progettazione di applicazioni mobili in casi reali di medie dimensioni per piattaforma Android.
Contenuti sintetici
Progettazione e sviluppo di applicazioni mobili. Sviluppo di applicazioni per dispositivi Android.
Programma esteso
1) Introduzione alla progettazione e allo sviluppo di applicazoni mobili
- Sviluppo di applicazioni mobili
- Opportunità di mercato
- Requisiti tecnici per Apple (iOS), Google (Android)
- Sfide: dimensioni limitate dello schermo, problemi di memoria e frammentazione
- Cenni a framework cross-platform (e.g., Flutter, React Native, Apache Cordoba, Sencha, Corona, Xamarin)
2) Progettazione di un'applicazione Android
- Principi di Clean Architecture: separazione in livelli (dominio, dati, presentazione), inversione delle dipendenze, modularizzazione e testabilità.
-Architettura consigliata da Google: uso di MVVM, Repository pattern, componenti Jetpack (ViewModel, LiveData, Room, Navigation), separation of concerns.
- Progettazione Mobile First e Cross-device synchronization
3) Sviluppo di applicazioni per dispositivi Android
- Introduzione alla piattaforma Android
- Ambiente di sviluppo: Android Studio, Google Software Development kit e le versioni, Genymotion e debugger
- Ciclo di vita di un'applicazione: le Activity e i Fragment
- Layout e widget di base ed avanzati
- La concorrenza: threads e task asincroni
- Oltre l'aspetto grafico: Content provider e Service
- Background Task
- Pubblicazione di un'applicazione sul Google Play Store
-Testing
Prerequisiti
Programmazioe ad oggetti con Java e programmazione distribuita
Modalità didattica
Lezioni e esercitazioni in aula. Laboratori assistiti con supporto del tutor e materiale ausiliario.
Le lezioni in classe e le attività di laboratorio prevedono una modalità erogative e interattiva.
Il corso sarà erogato in italiano.
Materiale didattico
Slide e esercizi svolti in aula
Documentazione ufficiale Android – https://developer.android.com
Periodo di erogazione dell'insegnamento
Primo semestre
Modalità di verifica del profitto e valutazione
L'esame è composto da tre elementi:
• Progetto di gruppo (peso 70%)
• Quiz individuale finale (peso 30%)
• Attività formative in aula (Bonus fino a +2 punti)
-
Progetto di gruppo (70%)
Il progetto viene svolto in gruppi e prevede:
• analisi dei requisiti;
• progettazione dell'architettura;
• implementazione dell'applicazione Android;
• tetsing della soluzione prodotta;
• documentazione tecnica;
• presentazione finale.
La valutazione considera:
• completezza della soluzione;
• qualità architetturale;
• qualità del codice;
• corretto utilizzo delle tecnologie presentate nel corso;
• esperienza utente;
• documentazione prodotta. -
Quiz individuale finale (30%)
Il quiz è svolto individualmente e ha l'obiettivo di verificare la comprensione dei concetti affrontati durante il corso e la capacità di analizzare e comprendere codice Android.
Il quiz è costituito da domande a risposta multipla e domande a completamento riguardanti gli argomenti del corso.
Per poter accedere alla valutazione del progetto è necessario ottenere almeno il 50% del punteggio disponibile nel quiz individuale.
In caso contrario, il progetto rimane valido e non deve essere ripetuto, ma lo studente dovrà sostenere nuovamente il quiz individuale in un appello successivo. -
Attività formative in aula (bonus)
Durante il semestre verranno proposte brevi attività individuali in aula (quiz, esercizi di analisi del codice, discussione di soluzioni progettuali).
La partecipazione non è obbligatoria.
I risultati ottenuti nelle attività formative possono contribuire fino a un massimo di 2 punti bonus sul voto finale.
L'assenza alle attività formative non comporta alcuna penalizzazione e non preclude il raggiungimento del punteggio massimo all'esame.
Orario di ricevimento
Su appuntamento.
Aims
The course has the following specific learning objectives:
- Knowledge and understanding (DdD 1): Understand the design principles of mobile applications, including architectural best practices, and apply this knowledge in the Android environment.
- Applying knowledge and understanding (DdD 2): Be able to apply programming and design principles to develop medium-scale real-world mobile applications for the Android platform.
Contents
Design and development of mobile applications. Development of applications for Android devices.
Detailed program
1) Introduction to the design and development of mobile applications
- Development of mobile applications
- Market Opportunities
- Technical requirements for Apple (iOS), Google (Android)
- Challenges: limited screen size, memory problems and fragmentation
- Notes to cross-platform framework (e.g., Flutter, React Native, Apache Cordoba, Sencha, Corona, Xamarin)
2)Designing an Android Application
- Principles of Clean Architecture: separation into layers (domain, data, presentation), dependency inversion, modularization, and testability.
- Google-recommended architecture: use of MVVM, Repository pattern, Jetpack components (ViewModel, LiveData, Room, Navigation), and separation of concerns.
- Mobile-First design and cross-device synchronization
3) Development of applications for Android devices
- Introduction to the Android platform
- Development Environment: Android Studio, Google Software Development kit and versions, Genymotion and debugger
- Life cycle of an application: Activities and Fragments
- Basic and advanced layouts and widgets
- The competition: asynchronous threads and tasks
- Beyond the graphic aspect: Content providers and services
- Background Task
- Publish an application on the Google Play Store
-Testing
Prerequisites
Object-oriented programming with Java and distributed programming
Teaching form
Lectures and recitations. Practice labs with tutor support and auxiliary leaning material.
The in-class lectures and practice labs follow the "modalità erogativa" and "modalità interattiva" modes.
The course will be given in Italian.
Textbook and teaching resource
Lecture slides and in-class exercises
Official Android documentation – https://developer.android.com
Semester
First semester
Assessment method
The final grade is based on three components:
- Group project (70%)
- Final individual quiz (30%)
- In-class formative activities (bonus up to +2 points)
Group Project (70%)
The project is carried out in groups and includes:
- requirements analysis;
- software architecture design;
- Android application development;
- testing of the implemented solution;
- technical documentation;
- final presentation.
The project evaluation is based on:
- completeness of the proposed solution;
- architectural quality;
- code quality;
- correct use of the technologies presented during the course;
- user experience;
- quality of the produced documentation.
-
Final Individual Quiz (30%)
The quiz is taken individually and aims to assess the student's understanding of the concepts covered during the course, as well as the ability to analyze and understand Android code.
The quiz consists of multiple-choice and code-completion questions covering the topics discussed during the course.
To be eligible for the evaluation of the group project, students must obtain at least 50% of the available points in the individual quiz.
If this threshold is not met, the project grade remains valid and does not need to be repeated; however, the student must retake the individual quiz in a subsequent exam session. -
In-Class Formative Activities (Bonus)
During the semester, short individual in-class activities (e.g., quizzes, code analysis exercises, and discussions of design solutions) will be proposed.
Participation in these activities is not mandatory.
Performance in these activities may contribute up to 2 bonus points to the final grade.
Non-participation does not result in any penalty and does not prevent students from achieving the maximum final grade.
Office hours
On appointment.
Scheda del corso
Staff
-
Daniela Micucci
-
Fabio Sartori