Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • My Media
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home My Media
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2025-2026
  6. 3rd year
  1. Mobile Programming
  2. Summary
Insegnamento Course full name
Mobile Programming
Course ID number
2526-3-E3101Q135
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

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.

Export

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.

Enter

Key information

Field of research
INF/01
ECTS
8
Term
First semester
Activity type
Mandatory to be chosen
Course Length (Hours)
0
Degree Course Type
Degree Course
Language
Italian

Staff

    Teacher

  • FB
    Federico Bergamini
  • Elena Masserini
    Elena Masserini
  • Daniela Micucci
    Daniela Micucci
  • LR
    Lorenzo Rovida
  • FS
    Fabio Sartori

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics