- Area di Scienze
- Corso di Laurea Triennale
- Informatica [E3102Q - E3101Q]
- Insegnamenti
- A.A. 2025-2026
- 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
Consegna di un progetto pratico e discussione orale dello stesso.
La consegna consiste di un documento di descrizione del progetto, del software e la relativa documentazione. La discussione verterà sulla soluzione programmativa adotatta sul progetto.
Il progetto sarà valutato rispetto alla completezza della solzione proposta, alla progettazione della soluzione e alla user experience.
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
Assignment of a practical project and oral discussion of the project.
The artifacts of the project must include a project description document, the software and its documentation. The oral discussion will focus on the solution adopted on the project.
The project will be evaluated with respect to the completeness of the proposed solution, the design of the solution, and the user experience.
Office hours
On appointment.
Scheda del corso
Staff
-
Federico Bergamini
-
Elena Masserini
-
Daniela Micucci
-
Lorenzo Rovida
-
Fabio Sartori